S
Stefano Lanzavecchia
Also it is thread-safe (but not multi-threaded, nor does it implement a
In Perst there's a "PersistentResource" (check the demo called TestConcur)
which shows how access to the storage can be made thread-safe by adding
resource locks. As I was saying, this only works as long as the access is
done in the same process by different threads. If one needs the database to
be shared from multiple processes or even separate physical machines, then
one's out of luck since Perst opens the file in exclusive mode and won't
allow other processes to access the data. To work round this limitation one
would be forced to write a server (using .NET remoting, probably).
As far as speed is concerned, I found it quite good. As a hobbist project I
am writing a web based forum which uses Perst as its storage backend and I
can tell you it easily beats everything else I tried, also considering the
fact that I don't need an intermediate O/R layer since Perst is effectively
an Object database.
particularly granular locking strategy), so there is no need to put in
locking yourself.
In Perst there's a "PersistentResource" (check the demo called TestConcur)
which shows how access to the storage can be made thread-safe by adding
resource locks. As I was saying, this only works as long as the access is
done in the same process by different threads. If one needs the database to
be shared from multiple processes or even separate physical machines, then
one's out of luck since Perst opens the file in exclusive mode and won't
allow other processes to access the data. To work round this limitation one
would be forced to write a server (using .NET remoting, probably).
As far as speed is concerned, I found it quite good. As a hobbist project I
am writing a web based forum which uses Perst as its storage backend and I
can tell you it easily beats everything else I tried, also considering the
fact that I don't need an intermediate O/R layer since Perst is effectively
an Object database.