444 Commits

Author SHA1 Message Date
Леонид Юрьев (Leonid Yuriev)
661372d66d mdbx: отладка всплесков GC в Erigon. 2024-04-16 08:47:45 +03:00
Леонид Юрьев (Leonid Yuriev)
7c69493473 mdbx: добавление MDBX_opt_prefer_waf_insteadof_balance. 2024-04-05 00:19:08 +03:00
Леонид Юрьев (Leonid Yuriev)
4dccc4ab6d mdbx-doc: исправление опечаток в doxygen-комментариях. 2024-04-04 17:32:49 +03:00
Леонид Юрьев (Leonid Yuriev)
b9fd42b9b3 mdbx: объявление опции MDBX_COALESCE устаревшей. 2024-04-04 15:00:27 +03:00
Леонид Юрьев (Leonid Yuriev)
ae5d541efb mdbx: исправление условий для MDBX_DEPRECATED. 2024-04-04 15:00:27 +03:00
Леонид Юрьев (Leonid Yuriev)
e56c73b4e6 mdbx: добавление режима MDBX_NOSTICKYTHREADS вместо MDBX_NOTLS. 2024-04-04 12:52:50 +03:00
Леонид Юрьев (Leonid Yuriev)
3670a30c00 mdbx-doc: доработка doxygen комментариев. 2024-04-01 16:06:09 +03:00
Леонид Юрьев (Leonid Yuriev)
01458065c4 mdbx-doc: базовое/минимальное описание mdbx_env_chk() и связанных элементов API. 2024-04-01 16:06:09 +03:00
Леонид Юрьев (Leonid Yuriev)
639ba8b7a5 mdbx: переименование mdbx_env_chk_encount_problem(). 2024-04-01 16:06:09 +03:00
Леонид Юрьев (Leonid Yuriev)
5c84c405ac mdbx: добавление mdbx_setup_debug_nofmt() и возможности установки логера без функционала printf(). 2024-03-30 18:01:44 +03:00
Леонид Юрьев (Leonid Yuriev)
dedcdd4c94 mdbx: документирование mdbx_preopen_snapinfo(). 2024-03-24 11:15:12 +03:00
Леонид Юрьев (Leonid Yuriev)
d0799fd373 mdbx-doc: документирование mdbx_cursor_on_first_dup() и mdbx_cursor_on_last_dup(). 2024-03-23 02:18:06 +03:00
Леонид Юрьев (Leonid Yuriev)
fb17e8877c mdbx-doc: документирование mdbx_cursor_scan(). 2024-03-22 17:57:32 +03:00
Леонид Юрьев (Leonid Yuriev)
1d0ee509c2 mdbx-doc: исправление опечатки в MDBX_ENV_JUST_DELETE. 2024-03-22 16:36:13 +03:00
Леонид Юрьев (Leonid Yuriev)
27893f52f1 mdbx-doc: документирование mdbx_dbi_rename(). 2024-03-22 01:01:09 +03:00
Леонид Юрьев (Leonid Yuriev)
f8836aefa0 mdbx-doc: документирование mdbx_cursor_compare(). 2024-03-22 01:01:06 +03:00
Леонид Юрьев (Leonid Yuriev)
94a6bc140d mdbx-doc: документирование mdbx_env_resurrect_after_fork(). 2024-03-21 10:48:47 +03:00
Леонид Юрьев (Leonid Yuriev)
5fc3965f5b
mdbx: вливание ветки master в devel. 2024-03-21 01:54:20 +03:00
Леонид Юрьев (Leonid Yuriev)
aea40fb79f
mdbx: выпуск 0.12.10 "СЭМ"
Поддерживающий выпуск с исправлением обнаруженных ошибок и устранением недочетов
в память Героя России гвардии майора Дмитрия Семёнова с позывным "СЭМ".

Значимые исправления и доработки:
---------------------------------

 - Устранение унаследованной от LMDB ошибки приводящей к повреждению БД при использовании `MDBX_DUPFIXED`.

 - Исправление ложной ошибки `MDBX_CORRUPTED (-30796)` в сценарии работы
   в режиме `MDBX_DUPFIXED` и нечетной длинной мульти-значений.

 - Исправление недочета корректировки сопутствующих курсоров при разделении страницы
   по сценарию добавления пустой страницы слева.

 - Доработка `rebalance()` ради уменьшения WAF.

 - Исправление assert-проверки внутри `check_txn()` для случая завершенных транзакций в режиме `MDBX_NO_TLS`.
   Последствий ошибки, кроме срабатывания assert-проверки в отладочных сборках, нет.

 - Устранение ошибки при открытии БД на файловой системе только-для-чтения.

 - Удалены излишне строгие проверки в утилите `mdbx_chk`, которые
   приводили к ложно-позитивным ошибкам при проверке БД после серии
   последних доработок.

Более подробная информация в [ChangeLog](https://libmdbx.dqdkfa.ru/md__change_log.html).

git diff' stat: 19 commits, 57 files changed, 751 insertions(+), 331 deletions(-)
Signed-off-by: Леонид Юрьев (Leonid Yuriev) <leo@yuriev.ru>
2024-03-13 14:57:38 +03:00
Леонид Юрьев (Leonid Yuriev)
1c174e84c4 mdbx: добавление mdbx_preopen_snapinfo() в API.
https://gitflic.ru/project/erthink/libmdbx/issue/15
2024-03-05 13:10:29 +03:00
Леонид Юрьев (Leonid Yuriev)
826441741d mdbx: добавление keysize_min() и valsize_min() в API. 2024-03-03 17:38:41 +03:00
Леонид Юрьев (Leonid Yuriev)
f16c4303bf mdbx: исправление опечатки в комментарии. 2023-12-08 16:47:40 +03:00
Леонид Юрьев (Leonid Yuriev)
eeec44f56d mdbx: добавление MDBX_opt_gc_time_limit. 2023-12-05 15:32:18 +03:00
Леонид Юрьев (Leonid Yuriev)
eb90ec6192 mdbx: новый размер MDBX_opt_rp_augment_limit по умолчанию в 1/3 от текущего кол-ва страниц в БД. 2023-12-05 15:32:18 +03:00
Леонид Юрьев (Leonid Yuriev)
25015c54e1 mdbx: обещанное "doubtless" API для позиционирования курсоров. 2023-12-05 15:32:18 +03:00
Леонид Юрьев (Leonid Yuriev)
5cf6542fa0 mdbx: добавление mdbx_cursor_scan_from() в API. 2023-12-05 15:32:18 +03:00
Леонид Юрьев (Leonid Yuriev)
bc562d5c06 mdbx: добавление mdbx_cursor_scan() в API. 2023-12-05 15:32:18 +03:00
Леонид Юрьев (Leonid Yuriev)
ed59ad22c6 mdbx: добавление mdbx_cursor_on_first/last_dup() в API. 2023-12-05 15:32:18 +03:00
Леонид Юрьев (Leonid Yuriev)
adcbb39379 mdbx: добавление mdbx_cursor_compare() в API. 2023-12-05 15:32:18 +03:00
Леонид Юрьев (Leonid Yuriev)
4a7a2034c0 mdbx: новый размер MDBX_opt_rp_augment_limit по умолчанию в 1/3 от текущего кол-ва страниц в БД. 2023-11-28 21:45:21 +03:00
Леонид Юрьев (Leonid Yuriev)
5abb6a9bbf mdbx-doc: удаление устаревшего упоминания MDBX_EAGAIN. 2023-11-17 21:18:21 +03:00
Леонид Юрьев (Leonid Yuriev)
b905a6a391 mdbx: const для начала и конца диапазона в аргументах mdbx_estimate_range() (backport). 2023-11-12 21:30:09 +03:00
Леонид Юрьев (Leonid Yuriev)
44beae00ec mdbx: const для начала и конца диапазона в аргументах mdbx_estimate_range(). 2023-11-12 20:37:57 +03:00
Леонид Юрьев (Leonid Yuriev)
7eb2f4130e mdbx: использование const MDBX_txn где это возможно в API (backport). 2023-11-12 19:33:27 +03:00
Леонид Юрьев (Leonid Yuriev)
af4dfe541b mdbx: добавление mdbx_env_resurrect_after_fork() в API. 2023-11-12 01:49:53 +03:00
Леонид Юрьев (Leonid Yuriev)
c9c02dddfb mdbx: добавление mdbx_dbi_rename() в API. 2023-11-11 12:29:10 +03:00
Леонид Юрьев (Leonid Yuriev)
e6af7d7c53 mdbx: переработка инициализации, проверки и импорта dbi-хендлов в транзакциях.
Ранее инициализация в транзакциях структур данных, связанных с
dbi-хендлами и subDb, выполнялась непосредственно при запуске
транзакций. Что в сценариях с большим кол-вом dbi-дексприторов (например
libfpta) порождало заметные накладные расходы, которые расли линейно от
общего кол-ва открытых subDb, а не от реально используемых в транзакции.
При использовании одной-двух сотен хендлов, при старте каждой транзакции
могли копироваться и/или обнуляться десятки килобайт. Теперь этот
недостаток устранен.

Изменена схема инициализации, валидации и импорта хендлов открытых после
старта транзакции:

1) Инициализация теперь выполняется отложенна, а при старте транзации
   обнуляется только массив с однобайтовыми статустами dbi-хендлов.
   При этом доступнва опция сборки `MDBX_ENABLE_DBI_SPARSE`, при активации
   которой используется битовая карты, что снижает объем инициализации
   при старте транзакции в 8 раз (CHAR_BIT).

2) Переработана валидация dbi-хендлов на входах API, с уменьшением кол-ва
   проверок и ветвлений до теоретического минимума.

3) Переработ импорт dbi-хендов открытых после старта транзакци, теперь
   при этом не захватывается мьютекс.
2023-11-11 12:29:10 +03:00
Леонид Юрьев (Leonid Yuriev)
796e56b9b9 mdbx: добавление кода системной ошибки MDBX_EDEADLK. 2023-11-11 12:29:10 +03:00
Леонид Юрьев (Leonid Yuriev)
04511a7a99 mdbx: использование const MDBX_txn где это возможно в API. 2023-10-23 20:25:03 +03:00
Леонид Юрьев (Leonid Yuriev)
4d3f7e1edc mdbx: добавление mdbx_txn_release_all_cursors() в API. 2023-10-23 20:25:03 +03:00
Леонид Юрьев (Leonid Yuriev)
d28a397b2d mdbx: добавление mdbx_cursor_unbind() в API. 2023-10-23 20:25:03 +03:00
Леонид Юрьев (Leonid Yuriev)
224f26813e mdbx: возвращение MDBX_TXN_INVALID (INT32_MIN) из mdbx_txn_flags() при передаче невалидной транзакции. 2023-10-23 20:25:03 +03:00
Леонид Юрьев (Leonid Yuriev)
253a56206b mdbx: переработка и перенос функционала утилиты mdbx_chk внутрь библиотеки. 2023-10-23 20:25:03 +03:00
Леонид Юрьев (Leonid Yuriev)
f0d523c507 mdbx: дополнение API функциями lock/unlock/upgrade/downgrade основной блокировки. 2023-10-23 20:25:03 +03:00
Леонид Юрьев (Leonid Yuriev)
dd9fc963d2 mdbx: изменение и расширение API функционалом проверки целостности структуры БД. 2023-10-23 20:25:03 +03:00
Леонид Юрьев (Leonid Yuriev)
e9ad618b58 mdbx: начало ветки 0.13, с новым функционалом и изменением API.
Планируется очистка от функций и возможностей ранее объявленных
устаревшими. В частности, будет удалена поддержка пользовательских
функций сравнения, которые были обьявлены устаревшими начиная с версии
0.9, более 33 месяцев назад.
2023-10-23 20:24:59 +03:00
Леонид Юрьев (Leonid Yuriev)
e58b582639 mdbx: исправление MDBX_LAST_ADDED_ERRCODE. 2023-10-23 16:33:30 +03:00
Леонид Юрьев (Leonid Yuriev)
25ec8e253f mdbx-doc: уточнение формулировок в описании API. 2023-10-14 14:16:49 +03:00
Леонид Юрьев (Leonid Yuriev)
e21e91ad1f mdbx-doc: уточнение формулировок о SIGSEGV и недопустимости прямого изменения данных. 2023-10-08 11:55:30 +03:00
Леонид Юрьев (Leonid Yuriev)
7aaae2ecd5 mdbx-doc: исправление ссылок на mdbx_canary_put(). 2023-06-01 08:48:38 +03:00