mdbx: 'runtime options' feature release.

Resolve https://github.com/erthink/libmdbx/issues/128

Change-Id: I67411f623ecb917d3be1cdc6aa78b879d8e68b4c
This commit is contained in:
Leonid Yuriev 2021-01-23 01:13:20 +03:00
parent 4ae2a107bf
commit 4e13d1239a
2 changed files with 14 additions and 2 deletions

View File

@ -25,6 +25,18 @@ New features:
- Package for FreeBSD is available now by Mahlon E. Smith. - Package for FreeBSD is available now by Mahlon E. Smith.
- New API functions to get/set various options (https://github.com/erthink/libmdbx/issues/128). - New API functions to get/set various options (https://github.com/erthink/libmdbx/issues/128).
- the maximum number of named databases for the environment;
- the maximum number of threads/reader slots;
- threshold (since the last unsteady commit) to force flush the data buffers to disk;
- relative period (since the last unsteady commit) to force flush the data buffers to disk;
- limit to grow a list of reclaimed/recycled page's numbers for finding a sequence of contiguous pages for large data items;
- limit to grow a cache of dirty pages for reuse in the current transaction;
- limit of a pre-allocated memory items for dirty pages;
- limit of dirty pages for a write transaction;
- initial allocation size for dirty pages list of a write transaction;
- maximal part of the dirty pages may be spilled when necessary;
- minimal part of the dirty pages should be spilled when necessary;
- how much of the parent transaction dirty pages will be spilled while start each child transaction;
- Unlimited/Dynamic size of retired and dirty page lists (https://github.com/erthink/libmdbx/issues/123). - Unlimited/Dynamic size of retired and dirty page lists (https://github.com/erthink/libmdbx/issues/123).
- Added `-p` option (purge subDB before loading) to `mdbx_load` tool. - Added `-p` option (purge subDB before loading) to `mdbx_load` tool.
- Reworked spilling of large transaction and committing of nested transactions. - Reworked spilling of large transaction and committing of nested transactions.

4
mdbx.h
View File

@ -1929,11 +1929,11 @@ enum MDBX_option_t {
* should be spilled when reached the condition described above. */ * should be spilled when reached the condition described above. */
MDBX_opt_spill_min_denominator, MDBX_opt_spill_min_denominator,
/** \brief Controls the in-process how part of the parent transaction dirty /** \brief Controls the in-process how much of the parent transaction dirty
* pages will be spilled while start each child transaction. * pages will be spilled while start each child transaction.
* *
* \details The `MDBX_opt_spill_parent4child_denominator` defines the * \details The `MDBX_opt_spill_parent4child_denominator` defines the
* denominator to determine how part of parent transaction dirty pages will be * denominator to determine how much of parent transaction dirty pages will be
* spilled explicitly while start each child transaction. * spilled explicitly while start each child transaction.
* Exactly `pages_to_spill = dirty_pages / N`, * Exactly `pages_to_spill = dirty_pages / N`,
* where `N` is the value set by `MDBX_opt_spill_parent4child_denominator`. * where `N` is the value set by `MDBX_opt_spill_parent4child_denominator`.