Can multiple threads access to the same MDB transaction and issue read-only calls between opening and closing the MDB_cursors? More detail, we would like to use MDB_NOTLS flag when opening the MDB environments, start read-only transaction in a single thread. Then we would like to use this transaction in the multiple threads simultaneously (opening cursors, reading, closing cursors). Only after these operations are finalized we would then commit the transaction in a single thread.

The same question applies to the read-write transaction. The only differences would be that MDB_NOTLS flag is not relevant and that we would anyway serialize the update operations and would not allow parallel read operations and update operations.

Does MDB support the above scenario? If not, what is the reason?


Petri Huovinen