Hi,
Does using MDB_NOSYNC when opening the MDB environment in any way affect LMDB's ability to do concurrent database access?
Regards Kristian Amlie CFEngine
Kristian Amlie wrote:
Hi,
Does using MDB_NOSYNC when opening the MDB environment in any way affect LMDB's ability to do concurrent database access?
No. Why on earth would it? Do you really believe such a crippling flaw in usability as that would go undocumented?
On 03/05/14 17:20, Howard Chu wrote:
Kristian Amlie wrote:
Hi,
Does using MDB_NOSYNC when opening the MDB environment in any way affect LMDB's ability to do concurrent database access?
No. Why on earth would it? Do you really believe such a crippling flaw in usability as that would go undocumented?
I do not. :-)
But I had a reproducible crash that would trigger quite easily (within seconds, most of the time) when trying to write concurrently to an LMDB database. However, having seen your reply I went deeper to find out how this could be.
It turns out that LMDB does not work correctly on the AUFS filesystem. Is this known?
My AUFS version is not the latest, so it's possible it has already been fixed upstream. Unless you know the state of this already, I'll try to find out more.
Regards Kristian Amlie CFEngine
Kristian Amlie wrote:
On 03/05/14 17:20, Howard Chu wrote:
Kristian Amlie wrote:
Hi,
Does using MDB_NOSYNC when opening the MDB environment in any way affect LMDB's ability to do concurrent database access?
No. Why on earth would it? Do you really believe such a crippling flaw in usability as that would go undocumented?
I do not. :-)
But I had a reproducible crash that would trigger quite easily (within seconds, most of the time) when trying to write concurrently to an LMDB database. However, having seen your reply I went deeper to find out how this could be.
It turns out that LMDB does not work correctly on the AUFS filesystem. Is this known?
No, thanks for that info. The filesystem types we tested are listed here http://symas.com/mdb/microbench/july/#sec11
My AUFS version is not the latest, so it's possible it has already been fixed upstream. Unless you know the state of this already, I'll try to find out more.
Regards Kristian Amlie CFEngine
On 04/05/14 19:00, Howard Chu wrote:
Kristian Amlie wrote:
It turns out that LMDB does not work correctly on the AUFS filesystem. Is this known?
No, thanks for that info. The filesystem types we tested are listed here http://symas.com/mdb/microbench/july/#sec11
After more investigation, I have found that it takes a very special set of circumstances to trigger the bug. Basically you have to mount the same writable directory branch onto two mount points using AUFS, and then access the database separately from each mount point. This is most likely a very uncommon setup (*), and I don't think perfect thread synchronization can be expected from it.
So in short, this is a non-issue, but at least now we know why! :-)
(*) Uncommon, but not unheard of: The "schroot" tool uses this when you use the "union-type=aufs" option.
openldap-technical@openldap.org