If you don't want to run the provided deadlock daemon, just use database level locking. It performs very well and doesn't require any work from the developer.
if you have two sepparated processes, using BerkeleyDB, there is no easy chance to share some memory with loaded data between those processes.
Sorry, this is not correct. BerkeleyDB uses a shared memory cache, which it manages automatically. If two processes are accessing the same data, it is very likely that it will come out of the shared memory cache. You can read more about it here.
It may be that you were using it through a legacy interface like DB_File and not setting the options for using the shared memory cache. They're just some options you use when opening the database file. After that, the sharing is automatic. |