https://bugs.openldap.org/show_bug.cgi?id=10138
--- Comment #2 from kero renault.cle@gmail.com --- Sorry, my explanation was not clear enough. What [the documentation says][1] is that having multiple transactions on the same thread is forbidden and that a transaction must only be used on a single thread.
A transaction and its cursors must only be used by a single thread, and a thread may only have a single transaction at a time. If #MDB_NOTLS is in use, this does not apply to read-only transactions.
I want to create multiple read transactions on different threads to read the uncommitted changes in parallel. I will not modify the entries while reading them. I want to read in parallel, like I can on the committed changes but on the uncommitted changes.
Once all the read transactions are done, I close them and insert new entries into the database using the original, still uncommitted, write transaction. Then, commit it, and the changes will be visible from an external point of view.
I understand that the read transactions start with the committed root node and can't see the uncommitted new root. Is it an issue to use the uncommitted root as the baseline of the reads?
[1]: https://github.com/LMDB/lmdb/blob/mdb.master/libraries/liblmdb/lmdb.h#L982-L...