One of the fastest embeddable key-value ACID database without WAL. libmdbx surpasses the legendary LMDB in terms of reliability, features and performance.
More flexible support of asynchronous runtimes/frameworks:
Add an API-flag that explicitly allows use a write transaction from other threads, not only from which transaction was started.
Add an API-function that returns a boolean value indicating that the IPC method used allows the lock to be released from another thread.
Enhance the logic of checking the transaction owner thread:
when (1) is false: full restrictions (current behaviour), i.e. always check for the transaction owner;
when both (1) and (2) are true: no restrictions, i.e. no checking for the transaction owner;
otherwise when (1) is true, but (2) is false: a get/put functions without checking, but abort/commit still with full checking, i.e. a write transaction must be completed only by the thread that started it.
More flexible support of asynchronous runtimes/frameworks:
false
: full restrictions (current behaviour), i.e. always check for the transaction owner;true
: no restrictions, i.e. no checking for the transaction owner;true
, but (2) isfalse
: a get/put functions without checking, but abort/commit still with full checking, i.e. a write transaction must be completed only by the thread that started it.