Thanks, this is what I feared.

Does LMDB have some ways to "lock the environment" (while still keeping MDB_NOLOCK)? This might allow me to modify that other program to "lock the environment" while it access the LMDB file.

With "lock the environment" I mean, blocking access for other processes. Something similar to MDBX_EXCLUSIVE/MDBX_BUSY in libmdbx.

(By the way, what reputation does libmdbx have in this forum? It claims to "improve" on LMDB but I thought I'd check here first... that project seems unmaintained for 2 years.)

- Zhou

Mar 11, 2024, 15:07 by hyc@symas.com:
rzhou44@tutamail.com wrote:
At work we have a program that actively reads/writes into LMDB file. This program uses MDB_NOLOCK (why, I'm not sure yet).

Can I safely read/write to this LMDB file using my own programs or mdb_ command line tools?

No.
I worry that those (which by default use lock files) could conflict
with the manual locking of the existing program and cause data corruptions.

You would have to use exactly the same locking code as the other program uses. And the mdb_ command
line tools don't support any other locking methods.

--
-- Howard Chu
CTO, Symas Corp. http://www.symas.com
Director, Highland Sun http://highlandsun.com/hyc/
Chief Architect, OpenLDAP http://www.openldap.org/project/