The frontward release with new major features and internal refactoring. 609 commits, 209 files changed, 29521 insertions(+), 15701 deletions(-) For more information please see [ChangeLog](https://sourcecraft.dev/dqdkfa/libmdbx/browse/ChangeLog.md). Signed-off-by: Леонид Юрьев (Leonid Yuriev) <leo@yuriev.ru>
4.4 KiB
TODO
- preserve/restore cursors state during
mdbx_txn_checkpoint(),mdbx_txn_amend()andmdbx_txn_commit_embark_read(). - man-page for
mdbx_defrag. - Предоставление информации о размере рагруженной/кешируемой в ОЗУ части БД и её использование для управления упреждающим чтением.
- SWIG.
- Интеграция c DTrace и аналогами.
- LTTng for tracing.
- Новый стиль обработки ошибок с записью "трассы" и причин.
- Формирование отладочной информации посредством gdb.
- Поддержка WASM.
- Автоматическая уплотнение/дефрагментация.
- Нелинейная обработка GC.
- Перевести курсоры на двусвязный список вместо односвязного.
- Migration guide from LMDB to MDBX.
- Support for RAW devices.
- Support MessagePack for Keys & Values.
- Packages for Astra Linux, ALT Linux, ROSA Linux, etc.
- Extended example of using the C++ API, which can also be used as a simple smoke-test.
In development
- none
Done
- v0.14.2 milestone
- Ultra-fast deletion of consecutive elements by cutting off b-tree branches.
- split ASSERT() to CHECK{0,1,2} and basal
assert(). - Refine/simplify assertion-like errors handling.
- CLI-options to mdbx_defrag and mdbx_load.
- Optional page-get operation statistics for transactions.
- digging/refactoring/optimizing page splitting and tree rebalance.
- Явная уплотнение/дефрагментация и mdbx_defrag.
- get-cached API.
- Cloning read transactions.
- Параллельная lto-сборка с устранением предупреждений.
- HarmonyOS support.
- Ранняя/не-отложенная очистка GC.
- Рефакторинг gc-get/gc-put c переходом на "интервальные" списки.
- Engage new terminology.
- More flexible support of asynchronous runtime/framework(s).
- Move most of
mdbx_chkfunctional to the library API. - Simple careful mode for working with corrupted DB.
- Engage an "overlapped I/O" on Windows.
- Large/Overflow pages accounting for dirty-room.
- Get rid of dirty-pages list in MDBX_WRITEMAP mode.
Cancelled
-
Внутри
txn_renew()вынести проверку когерентности mmap за/после изменение размера. Потеряло смысл в результате рефакторинга. -
Replace SRW-lock on Windows to allow shrink DB with
MDBX_NOSTICKYTHREADSoption. Доработка не может быть реализована, так как замена SRW-блокировки лишает лишь предварительную проблему, но не главную. На Windows уменьшение размера отображенного в память файла не поддерживается ядром ОС. Для этого необходимо снять отображение, изменить размер файла и затем отобразить обратно. В свою очередь, для это необходимо приостановить работающие с БД потоки выполняющие транзакции чтения, либо готовые к такому выполнению. Но в режиме MDBX_NOSTICKYTHREADS нет возможности отслеживать работающие с БД потоки, а приостановка всех потоков неприемлема для большинства приложений.