mirror of
https://github.com/isar/libmdbx.git
synced 2025-10-06 13:12:19 +08:00
mdbx: rework API and Docs around Handle-Slow-Readers (no algorithmic changes).
Change-Id: I5b76a8400ce6f5f241f8e4a7f53d746fe39f8e1e
This commit is contained in:
@@ -147,9 +147,9 @@ or debugging of a client application while retaining an active read
|
||||
transaction. LMDB this results in `MDB_MAP_FULL` error and subsequent write
|
||||
performance degradation.
|
||||
|
||||
MDBX mostly solve "long-lived" readers issue by the lack-of-space callback
|
||||
which allow to aborts long readers, and by the `MDBX_LIFORECLAIM` mode which
|
||||
addresses subsequent performance degradation.
|
||||
MDBX mostly solve "long-lived" readers issue by using the Handle-Slow-Readers
|
||||
\ref MDBX_hsr_func callback which allows to abort long-lived read transactions,
|
||||
and using the \ref MDBX_LIFORECLAIM mode which addresses subsequent performance degradation.
|
||||
The "next" version of libmdbx (MithrilDB) will completely solve this.
|
||||
|
||||
- Avoid suspending a process with active transactions. These would then be
|
||||
|
@@ -236,6 +236,7 @@ The full \ref c_api documentation lists further details below, like how to:
|
||||
- Sstimate size of range query result: \ref c_rqest.
|
||||
- Double performance by LIFO reclaiming on storages with write-back: \ref MDBX_LIFORECLAIM.
|
||||
- Use sequences and canary markers: \ref mdbx_dbi_sequence(), \ref MDBX_canary.
|
||||
- Use lack-of-space callback (aka OOM-KICK): \ref mdbx_env_set_oomfunc().
|
||||
- Use Handle-Slow-Readers callback to resolve a database full/overflow issues
|
||||
due to long-lived read transactions: \ref mdbx_env_set_hsr().
|
||||
- Use exclusive mode: \ref MDBX_EXCLUSIVE.
|
||||
- Define custom sort orders (but this is recommended to be avoided).
|
||||
|
Reference in New Issue
Block a user