4524 Commits

Author SHA1 Message Date
Леонид Юрьев (Leonid Yuriev)
781c04f6e2 mdbx: корректировка излишне строгого условия в assert-проверке внутри recalculate_subpage_thresholds(). 2025-01-29 12:15: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)
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)
f6d91b3c5b mdbx-doc: исправление опечатки в упоминании mdbx_env_resurrect_after_fork(). 2025-01-26 17:36: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)
f39542a9f0 mdbx-doc: дополнение TODO. 2025-01-21 16:26:47 +03:00
Леонид Юрьев (Leonid Yuriev)
d89670bcea mdbx-doc: исправление орфографии/опечатки в ChangeLog. 2025-01-21 15:40:26 +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)
1b9ad144ea mdbx: исправление верстки README. 2025-01-18 18:15:51 +03:00
Леонид Юрьев (Leonid Yuriev)
0233eda949 mdbx-doc: добавление в README ссылки на архив сообщений телеграмм-группы 2020-2024 годов. 2025-01-17 22:41:26 +03:00
Леонид Юрьев (Leonid Yuriev)
78552a5c84 mdbx-doc: разделение актуальных и устаревших/неподдерживаемых привязок в README. 2025-01-17 20:39:25 +03:00
Леонид Юрьев (Leonid Yuriev)
beb5a81d12 mdbx-doc: обновление номера версии и даты в заголовках man-страниц. 2025-01-17 18:29:15 +03:00
Леонид Юрьев (Leonid Yuriev)
56d1dbef45 mdbx: обновление года в ©. 2025-01-15 19:36:07 +03:00
Леонид Юрьев (Leonid Yuriev)
761248cc21 mdbx-doc: дополнение описания mdbx_txn_commit(). 2025-01-15 14:56:26 +03:00
Леонид Юрьев (Leonid Yuriev)
72fb45e13d mdbx: дополнение ChangeLog. 2025-01-15 14:24:43 +03:00
Леонид Юрьев (Leonid Yuriev)
e529cd7d19 mdbx: корректировка ChangeLog. 2025-01-15 00:50:57 +03:00
Леонид Юрьев (Leonid Yuriev)
2c3b36da64 mdbx: рефакторинг txn_renew() транзакций с вычленением txn_basal_start(). 2025-01-15 00:50:57 +03:00
Леонид Юрьев (Leonid Yuriev)
314b8ce1f0 mdbx: переименование (косметика). 2025-01-15 00:50:57 +03:00
Леонид Юрьев (Leonid Yuriev)
7e772114bc mdbx: рефакторинг читающих транзакций в вычленением txn_ro_start(), txn_ro_seize(), txn_ro_slot(). 2025-01-15 00:50:36 +03:00
Леонид Юрьев (Leonid Yuriev)
0accf98ff7 mdbx: добавление опции сборки MDBX_ENABLE_NON_READONLY_EXPORT и логирование соответствующих ситуаций.
Закрывает [запрос](https://gitflic.ru/project/erthink/libmdbx/issue/16).
2025-01-14 13:26:54 +03:00
Леонид Юрьев (Leonid Yuriev)
e4054b56c3 mdbx: использование при наличии EREMOTEIO вместо ENOTBLK в качестве MDBX_EREMOTE. 2025-01-14 13:26:54 +03:00
Леонид Юрьев (Leonid Yuriev)
950db52fe8 mdbx: выделение basal/ro/nested txn-функций в отдельные файлы (без изменений кода). 2025-01-14 13:26:54 +03:00
Леонид Юрьев (Leonid Yuriev)
380385c1db mdbx: упрощение выхода по not-found пути из cursor_seek(). 2025-01-14 13:26:54 +03:00
Леонид Юрьев (Leonid Yuriev)
10e7e5c899 mdbx: рефакторинг mdbx_txn_commit_ex() 5/5 (вычленение txn_basal_end()). 2025-01-14 13:26:54 +03:00
Леонид Юрьев (Leonid Yuriev)
6d92a778a5 mdbx: оформление опции сборки MDBX_NOSUCCESS_PURE_COMMIT (выключено по умолчанию). 2025-01-14 13:26:54 +03:00
Леонид Юрьев (Leonid Yuriev)
c60f6afe5f mdbx: упрощение/выпрямление/рефакторинг txn_end() и затронутых зависимостей. 2025-01-14 13:26:54 +03:00
Леонид Юрьев (Leonid Yuriev)
a5bb555db3 mdbx: рефакторинг mdbx_txn_commit_ex() 4/5 (вычленение txn_basal_commit()). 2025-01-14 13:26:54 +03:00
Леонид Юрьев (Leonid Yuriev)
b9b784c18e mdbx: рефакторинг mdbx_txn_commit_ex() 3/5 (вычленение txn_nested_join()). 2025-01-14 13:26:54 +03:00
Леонид Юрьев (Leonid Yuriev)
c6cd482ea0 mdbx: рефакторинг mdbx_txn_commit_ex() 2/5 (struct commit_timestamp, latency_init/gcprof/done()). 2025-01-14 13:26:54 +03:00
Леонид Юрьев (Leonid Yuriev)
2b9401e372 mdbx: рефакторинг mdbx_txn_commit_ex() 1/5 (переменование локальных timestamp-переменных). 2025-01-14 13:26:54 +03:00
Леонид Юрьев (Leonid Yuriev)
6fe7baa1b8 mdbx: упрощение mdbx_txn_break(). 2025-01-14 13:26:54 +03:00
Леонид Юрьев (Leonid Yuriev)
1e5fef2c76 mdbx: рефакторинг txn-api с выносом отдельных txn-функций. 2025-01-14 13:26:54 +03:00
Леонид Юрьев (Leonid Yuriev)
0a4156fe6f mdbx: перенос check_env() из txn_end() в функции txn-api. 2025-01-14 13:26:54 +03:00
Леонид Юрьев (Leonid Yuriev)
a89d418c91 mdbx: рефакторинг mdbx_txn_straggler() с добавлением проверки env. 2025-01-14 13:26:54 +03:00
Леонид Юрьев (Leonid Yuriev)
585ccdf716 mdbx: изменение TXN_END_NAMES. 2025-01-14 13:26:54 +03:00
Леонид Юрьев (Leonid Yuriev)
81e2623a54 mdbx: рефакторинг затенения и завершения курсоров, с удалением TXN_END_EOTDONE и добавлением txn_may_have_cursors. 2025-01-14 13:26:54 +03:00
Леонид Юрьев (Leonid Yuriev)
b681b59434 mdbx: рефакторинг/вычленение txn_basal_create/destroy(). 2025-01-14 13:26:54 +03:00
Леонид Юрьев (Leonid Yuriev)
67460dd0fd mdbx: обновление патча для старых версий buildroot. 2025-01-14 13:04:25 +03:00
Леонид Юрьев (Leonid Yuriev)
3a1ac35009 mdbx: дополнение ChangeLog. 2025-01-13 16:55:41 +03:00