Леонид Юрьев (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