3
0
mirror of https://github.com/isar/libmdbx.git synced 2025-04-02 03:02:58 +08:00

4706 Commits

Author SHA1 Message Date
Леонид Юрьев (Leonid Yuriev)
66c747e4a9 mdbx-cmake: корректировка форматирования (косметика). 2025-02-20 23:11:28 +03:00
Леонид Юрьев (Leonid Yuriev)
54d8c0d290 mdbx: переработка проверка размера файла БД при открытии.
Переработка 05cdf9d202b14ac09c801c7893e65271fa27f378. У предыдущего
варианта был недостаток, при необходимости выдачи предупреждения
и открытии БД с изменением геометрии, предупреждение не выдавалось,
что может затруднять анализ/разбор проблемных ситуаций.
2025-02-20 23:11:28 +03:00
Леонид Юрьев (Leonid Yuriev)
26cd5ebc43 mdbx: дополнение ChangeLog. 2025-02-20 00:13:21 +03:00
Леонид Юрьев (Leonid Yuriev)
806f819bae mdbx-tests: дополнение extra-open. 2025-02-20 00:09:58 +03:00
Леонид Юрьев (Leonid Yuriev)
0ef0f49e2e mdbx: устранение излишнего предупреждения при смене размера БД во время открытия (backport).
Изменение геометрии (увеличение размера) больших БД может быть не
возможно после их открытия вследствие системных ограничений (отсутствия
свободного адресного пространства).

Поэтому API предусматривает возможность запросить изменение
геометрии/размера БД перед её открытием. В этом сценарии ранее могло
выдаваться лишнее/ненужное предупреждение о несоответствии файла БД
новому размеру. Теперь этот недостаток исправлен.

Спасибо Илье Михееву (Erigon) за сообщение об этом недочете.
2025-02-19 23:38:15 +03:00
Леонид Юрьев (Leonid Yuriev)
05cdf9d202 mdbx: устранение излишнего предупреждения при смене размера БД во время открытия.
Изменение геометрии (увеличение размера) больших БД может быть не
возможно после их открытия вследствие системных ограничений (отсутствия
свободного адресного пространства).

Поэтому API предусматривает возможность запросить изменение
геометрии/размера БД перед её открытием. В этом сценарии ранее могло
выдаваться лишнее/ненужное предупреждение о несоответствии файла БД
новому размеру. Теперь этот недостаток исправлен.

Спасибо Илье Михееву (Erigon) за сообщение об этом недочете.
2025-02-19 23:22:18 +03:00
Леонид Юрьев (Leonid Yuriev)
818740976b mdbx-doc: добавление ссылки на привязку к Zig. 2025-02-17 15:01:57 +03:00
Леонид Юрьев (Leonid Yuriev)
287bab36a1 mdbx-doc: обновление конфигурации doxygen. 2025-02-17 14:43:20 +03:00
Леонид Юрьев (Leonid Yuriev)
80de77b1ee mdbx-doc: опечатки в README (backport). 2025-02-16 22:15:32 +03:00
Леонид Юрьев (Leonid Yuriev)
5388d2273b mdbx-doc: опечатки в README. 2025-02-16 16:52:53 +03:00
Леонид Юрьев (Leonid Yuriev)
d2864029da
mdbx: информация о статусе Github. 2025-02-15 15:47:33 +03:00
Леонид Юрьев (Leonid Yuriev)
822213f75d
mdbx: информация о статусе Github (backport). 2025-02-15 15:46:44 +03:00
Леонид Юрьев (Leonid Yuriev)
b63ca3c12e mdbx: обновление патча для старых версий buildroot. 2025-02-14 21:39:39 +03:00
Леонид Юрьев (Leonid Yuriev)
aa2ff20faf mdbx: обновление патча для старых версий buildroot (backport). 2025-02-14 21:37:47 +03:00
Леонид Юрьев (Leonid Yuriev)
fcdd2e2db3 mdbx: обновление ChangeLog. 2025-02-14 15:23:28 +03:00
Леонид Юрьев (Leonid Yuriev)
75122b311d
mdbx: выпуск 0.13.4 "Sigma Boy".
Поддерживающий выпуск стабильной ветки с исправлением обнаруженных ошибок и устранением недочётов.

За перечнем доработок и изменений обращайтесь к [ChangeLog](https://libmdbx.dqdkfa.ru/md__change_log.html).

git diff' stat: 139 files changed, 391 insertions(+), 208 deletions(-)
Signed-off-by: Леонид Юрьев (Leonid Yuriev) <leo@yuriev.ru>
v0.13.4
2025-02-14 12:56:12 +03:00
Леонид Юрьев (Leonid Yuriev)
79572b4850 mdbx: корректировка излишне строгого условия в assert-проверке внутри recalculate_subpage_thresholds() (backport). 2025-02-11 14:03:13 +03:00
Леонид Юрьев (Leonid Yuriev)
4730abe3e5 mdbx: корректировка излишне строгого условия в assert-проверке внутри recalculate_subpage_thresholds(). 2025-02-11 14:01:10 +03:00
Леонид Юрьев (Leonid Yuriev)
24f2b9b099 mdbx-conan: исправление опечатки в имени переменной version_json_pathname в verbose-выводе.
Спасибо Виктору Логунову (https://t.me/vl_username) за сообщение о проблеме.
2025-02-03 18:46:53 +03:00
Леонид Юрьев (Leonid Yuriev)
401454dadf mdbx-conan: исправление опечатки в имени переменной version_json_pathname в verbose-выводе.
Спасибо Виктору Логунову (https://t.me/vl_username) за сообщение о проблеме.
2025-02-03 18:46:01 +03:00
Леонид Юрьев (Leonid Yuriev)
b7206c68a5 mdbx: дополнение ChangeLog. 2025-01-27 22:41:24 +03:00
Леонид Юрьев (Leonid Yuriev)
3a0b857e1d mdbx-cmake: используем -flto=auto для GCC >= 11.4
При сборке посредством GCC >= 11.4 больше не возникает предупреждений:
  lto-wrapper: warning: using serial compilation of # LTRANS jobs
  lto-wrapper: note: see the ‘-flto’ option documentation for more information

Однако, использование auto-режима не является оптимальным решением, так
как при параллельной сборке посредством make или ninja, каждая уже
запущенная ветвь компиляции породит потоки ещё для каждого ядра ЦПУ.

Таким образом реальная нагрузка может расти квадратично, т.е. чем больше
у вас ядер -- тем хуже и при 96 ядрах может работать 9216 потоков сборки.

Тем не менее, использование `job-server` в CMake пока не возможно, а при
сборке libmdbx не так много работы чтобы чтобы обрушить систему нагрузкой.
2025-01-27 21:30:01 +03:00
Леонид Юрьев (Leonid Yuriev)
6ccbce9afc mdbx-cmake: избегаем двойной работы compiler.cmake без необходимости. 2025-01-27 21:11:57 +03:00
Леонид Юрьев (Leonid Yuriev)
9d7495fa09 mdbx-cmake: расслабление условий для использования LTO с CLANG на Linux. 2025-01-27 20:41:44 +03:00
Леонид Юрьев (Leonid Yuriev)
c8f6d90e18 mdbx-cmake: расширение поиска LLVMgold.so в относительных lib-директориях. 2025-01-27 20:32:02 +03:00
Леонид Юрьев (Leonid Yuriev)
b46d2def80 mdbx: дополнение ChangeLog. 2025-01-27 12:12:38 +03:00
Леонид Юрьев (Leonid Yuriev)
21630ea115 mdbx: устранение регресса вероятности SIGSEGV при вытеснении/spilling страниц (backport).
Ошибка внесена коммитом `a6f7d74a32a3cbcc310916a624a31302dbebfa07` от
2024-03-07 и присутствует в выпусках v0.13.1, v0.13.2, v0.13.3. Проблема
оставалась незамеченной из-за специфических условий и низкой вероятности
проявления.

Суть ошибки:

- функция cursor_touch() подготавливает стек страниц курсора к внесению
  изменений, при этом все страницы в стеке (от корневой до листовой
  в текущей позиции курсора) должны стать доступными для модификации.

- микрооптимизация добавленная коммитом пропускала обход стека, если
  корневая страница уже доступна для модификации, но это
  допустимо/корректно только при отсутствии в стеке вытесненных/spilled
  страниц.

- если же складывалась ситуация когда в стека была вытесненная
  некорневая страница, то она так и оставалась недоступной для записи и
  при попытке её изменения возникал SIGSEGV.
2025-01-27 11:18:50 +03:00
Леонид Юрьев (Leonid Yuriev)
6d346d8630 mdbx-cmake: поддержка MacOS universal binaries (backport).
Thank Alain Picard (Castor Technologies) so much for this patch and supporting the Java bindings!
2025-01-27 11:18:50 +03:00
Леонид Юрьев (Leonid Yuriev)
778aee25fe mdbx: дополнение ChangeLog. 2025-01-27 11:01:10 +03:00
Леонид Юрьев (Leonid Yuriev)
cb8eec6d11 mdbx: устранение регресса вероятности SIGSEGV при вытеснении/spilling страниц.
Ошибка внесена коммитом `a6f7d74a32a3cbcc310916a624a31302dbebfa07` от
2024-03-07 и присутствует в выпусках v0.13.1, v0.13.2, v0.13.3. Проблема
оставалась незамеченной из-за специфических условий и низкой вероятности
проявления.

Суть ошибки:

- функция cursor_touch() подготавливает стек страниц курсора к внесению
  изменений, при этом все страницы в стеке (от корневой до листовой
  в текущей позиции курсора) должны стать доступными для модификации.

- микрооптимизация добавленная коммитом пропускала обход стека, если
  корневая страница уже доступна для модификации, но это
  допустимо/корректно только при отсутствии в стеке вытесненных/spilled
  страниц.

- если же складывалась ситуация когда в стека была вытесненная
  некорневая страница, то она так и оставалась недоступной для записи и
  при попытке её изменения возникал SIGSEGV.
2025-01-27 10:09:04 +03:00
Леонид Юрьев (Leonid Yuriev)
b59937adb8 mdbx-doc: исправление опечатки в упоминании mdbx_env_resurrect_after_fork() (backport). 2025-01-26 17:38:37 +03:00
Леонид Юрьев (Leonid Yuriev)
f6d91b3c5b mdbx-doc: исправление опечатки в упоминании mdbx_env_resurrect_after_fork(). 2025-01-26 17:36:40 +03:00
Леонид Юрьев (Leonid Yuriev)
11e1346f9d mdbx: исправление опечатки в cursor_touch() (backport).
При переделке курсоров было пропущено отрицание в условии, при оценке
кол-ва страниц, которые могут потребоваться для выполнения операции.

В текущем понимании ошибка не приводила к каким-либо проблемам, ибо
оценка делает по верхней границе с существенным запасом, а в худшем
случае это могло приводить к прерыванию транзакции из-за достижения
ограничения на кол-во грязных страниц.
2025-01-26 17:05:40 +03:00
Леонид Юрьев (Leonid Yuriev)
750fab2427 mdbx: дополнение ChangeLog. 2025-01-26 16:57:17 +03:00
Леонид Юрьев (Leonid Yuriev)
fffa78d912 mdbx: дополнение TODO. 2025-01-26 16:49:33 +03:00
Леонид Юрьев (Leonid Yuriev)
fc85d1c61f mdbx-cmake: поддержка MacOS universal binaries.
Thank Alain Picard (Castor Technologies) so much for this patch and supporting the Java bindings!
2025-01-26 16:37:34 +03:00
Леонид Юрьев (Leonid Yuriev)
340bd080c9 mdbx: исправление опечатки в cursor_touch().
При переделке курсоров было пропущено отрицание в условии, при оценке
кол-ва страниц, которые могут потребоваться для выполнения операции.

В текущем понимании ошибка не приводила к каким-либо проблемам, ибо
оценка делает по верхней границе с существенным запасом, а в худшем
случае это могло приводить к прерыванию транзакции из-за достижения
ограничения на кол-во грязных страниц.
2025-01-26 16:37:00 +03:00
Леонид Юрьев (Leonid Yuriev)
7074b94b2e mdbx: упрощение gcu_loose(). 2025-01-26 16:36:55 +03:00
Леонид Юрьев (Leonid Yuriev)
a59c5f9316 mdbx: упрощение gcu_loose() (backport). 2025-01-26 10:16:02 +03:00
Леонид Юрьев (Leonid Yuriev)
f39542a9f0 mdbx-doc: дополнение TODO. 2025-01-21 16:26:47 +03:00
Леонид Юрьев (Leonid Yuriev)
27a2166be7 mdbx-doc: исправление орфографии/опечатки в ChangeLog (backport). 2025-01-21 15:41:21 +03:00
Леонид Юрьев (Leonid Yuriev)
d89670bcea mdbx-doc: исправление орфографии/опечатки в ChangeLog. 2025-01-21 15:40:26 +03:00
Леонид Юрьев (Leonid Yuriev)
c615e4d0a6 mdbx-doc: доработка/актуализация раздела "Restrictions & Caveats" (backport). 2025-01-19 02:30:35 +03:00
Леонид Юрьев (Leonid Yuriev)
fce40169bd mdbx-doc: доработка/актуализация раздела "Restrictions & Caveats". 2025-01-19 02:14:19 +03:00
Леонид Юрьев (Leonid Yuriev)
560aa72f3d mdbx-doc: добавление в doxygen-документацию ссылки на архив сообщений телеграмм-группы 2020-2024 годов. 2025-01-19 01:23:31 +03:00
Леонид Юрьев (Leonid Yuriev)
cb7ba6b53f mdbx-doc: favicon для сайта с документацией. 2025-01-19 00:51:37 +03:00
Леонид Юрьев (Leonid Yuriev)
03685aba5a mdbx-doc: разделение актуальных и устаревших/неподдерживаемых привязок в README (backport). 2025-01-18 19:03:14 +03:00
Леонид Юрьев (Leonid Yuriev)
4a0a32a54b mdbx-doc: добавление в README ссылки на архив сообщений телеграмм-группы 2020-2024 годов (backport). 2025-01-18 19:03:11 +03:00
Леонид Юрьев (Leonid Yuriev)
1b9ad144ea mdbx: исправление верстки README. 2025-01-18 18:15:51 +03:00
Леонид Юрьев (Leonid Yuriev)
36abcc57f0 mdbx: обновление года в © (backport). 2025-01-18 10:58:31 +03:00