Thanks for the reply.

That's what it says on its own, but the doc also says:

* The database handle will be private to the current transaction until
* the transaction is successfully committed. If the transaction is
* aborted the handle will be closed automatically.
* After a successful commit the handle will reside in the shared
* environment, and may be used by other transactions.

That suggests I have to wait for a transaction to finish before I can reuse the 
same db handle for other transactions.

How would you in practice perform multiple transactions at the same time? I 
don't see it yet. I'm missing something basic.


Feb 11, 2019, 5:50 AM by [email protected]:

> Sam Dave wrote:
>
>> Hello,
>>
>> The doc for mdb_dbi_open says:
>>
>> * This function must not be called from multiple concurrent
>> * transactions in the same process. A transaction that uses
>> * this function must finish (either commit or abort) before
>> * any other transaction in the process may use this function.
>>
>> This indicates that each process can only perform one transaction at the 
>> same time.
>>
>
> No, it only says you may only call mdb_dbi_open from one transaction at a 
> time.
>
>> This makes sense for write transactions, but wasn't LMDB supposed to support 
>> multiple read transactions at the same time?
>>
>> I'm a bit confused now. Can you assist?
>>
>> Thanks,
>> Sam
>>
>
>
> -- 
>  -- Howard Chu
>  CTO, Symas Corp. > http://www.symas.com <http://www.symas.com>
>  Director, Highland Sun > http://highlandsun.com/hyc 
> <http://highlandsun.com/hyc/>
>  Chief Architect, OpenLDAP > http://www.openldap.org/project 
> <http://www.openldap.org/project/>
>

Reply via email to