Леонид Юрьев (Leonid Yuriev)
dd9780606b
mdbx-test: небольшие правки скрипта long_stochastic.sh
для работы в Windows.
2022-10-10 21:59:51 +03:00
Леонид Юрьев (Leonid Yuriev)
5242c5bfdc
mdbx: улучшение эвристики включения авто-слияния записей GC.
2022-10-10 21:06:33 +03:00
Леонид Юрьев (Leonid Yuriev)
f5a6e0c04f
mdbx-make: добавление gcc-riscv64-linux-gnu
в список для цели cross-gcc
.
2022-10-10 19:27:34 +03:00
Леонид Юрьев (Leonid Yuriev)
329af93436
mdbx: уменьшение в 42 раза значения по-умолчанию для me_options.dp_limit
в отладочных сборках.
2022-10-10 19:26:38 +03:00
Леонид Юрьев (Leonid Yuriev)
22a84d656b
mdbx: проверка атомарности C11-операций c 32/64-битными данными.
2022-10-10 19:24:14 +03:00
Леонид Юрьев (Leonid Yuriev)
e46ca81abd
mdbx: обновление ChangeLog.
2022-10-10 17:03:07 +03:00
Леонид Юрьев (Leonid Yuriev)
25ab65b470
mdbx++: добавление env::limits::pairsize4page_max()
и env::limits::valsize4page_max()
.
2022-10-10 16:37:59 +03:00
Леонид Юрьев (Leonid Yuriev)
c3dd60fcb6
mdbx: добавление mdbx_env_get_pairsize4page_max()
и mdbx_env_get_valsize4page_max()
.
2022-10-10 16:33:51 +03:00
Леонид Юрьев (Leonid Yuriev)
9cdee2adb5
mdbx-cmake: добавлена поддержка опции MDBX_AVOID_MSYNC
.
2022-10-10 15:55:20 +03:00
Леонид Юрьев (Leonid Yuriev)
98e29fe628
mdbx-windows: UNICODE-зависимое определение макросов MDBX_DATANAME, MDBX_LOCKNAME и MDBX_LOCK_SUFFIX.
2022-10-10 13:56:57 +03:00
Леонид Юрьев (Leonid Yuriev)
98a2bd785a
mdbx-windows: перемещена декларация osal_mb2w()
для ликвидации предупреждений.
2022-10-10 13:56:57 +03:00
Леонид Юрьев (Leonid Yuriev)
138a83c2be
mdbx: добавлена несколько MDBX_MAYBE_UNUSED
для ликвидации предупреждений.
2022-10-10 13:56:57 +03:00
Леонид Юрьев (Leonid Yuriev)
92d203a12c
mdbx: исправление ложного срабатывания контроля "invalid page-address" в page_check()
.
...
При проверке использовалось глобальное значение me_dxb_mmap.current,
к которому не должны обращаться читающие транзакции. В результате,
в сложных много-поточных сценариях с изменением размера БД и её
переполнением, проверка могла выдавать ложно-положительный результат.
С точки зрения пользователя, ошибка могла проявляться как возврат
`MDBX_CORRUPTED` из читающей транзакции, когда включен "безопасный
режим" (дополнительный контроль), а в параллельной пишущей транзакции
происходит увеличение размера БД с последующим переполнением и откатом
этой транзакции. При этом никакого повреждения структуры БД нет.
2022-10-10 13:56:57 +03:00
Леонид Юрьев (Leonid Yuriev)
63b4d2289d
mdbx: удаление utf8bom для устранения проблем амальгамации кода.
2022-10-10 13:56:57 +03:00
Леонид Юрьев (Leonid Yuriev)
688ec3e85c
mdbx-test: добавление исключений Valgrind для нового кода.
2022-10-10 13:56:57 +03:00
Леонид Юрьев (Leonid Yuriev)
ae8e373143
mdbx-test: больше winnt-статусов как coredump.
2022-10-10 13:56:57 +03:00
Леонид Юрьев (Leonid Yuriev)
14eda2cd17
mdbx-windows: использование _CrtDbgReport() в отладочных сборках.
2022-10-10 13:56:57 +03:00
Леонид Юрьев (Leonid Yuriev)
ad09164604
mdbx: минорное исправление для устранения срабатывания проверочного утверждения в отладочных сборках.
...
Ассерт мог срабатывать из-за отсутствия бита P_LEAF2 в передаваемом проверочном значении.
На что-либо другое не влияло, но не следует понять почему этот недочет ны был выявлен тестами раньше.
2022-10-10 13:56:57 +03:00
Леонид Юрьев (Leonid Yuriev)
db72763de0
mdbx: отключение учета грязных страниц в не требующих этого режимах.
...
В режиме MDBX_WRITEMAP с опцией сборки MDBX_AVOID_MSYNC=0 отслеживание грязных страниц не требуется.
Эта доработка устраняет еще одну из недоделок (пункт в TODO).
2022-10-10 13:56:57 +03:00
Леонид Юрьев (Leonid Yuriev)
940ef30659
mdbx: спиллинг грязных страниц с учетом их суммарного размера.
2022-10-10 13:56:57 +03:00
Леонид Юрьев (Leonid Yuriev)
f6eec7195b
mdbx: защита от нуля только общей задержки в метриках транзакции.
...
Ранее, при конвертации очень коротких интервалов в формат фиксированной
точки 16-точка-16, всегда выполнялось замещение нуля единицей. Т.е. если
интервал был не нулевым, но меньше 15.259 микросекунд (1/65536 секунды),
то вместо 0 возвращалось 1.
Это приводило к тому, что сумма длительности отдельных стадий нередко
была больше чем общее время фиксации транзакции. Проблема усугублялась,
если получаемые значения аккумулировались по серии транзакций.
Теперь такая защита от нуля выполняется только для общего времени,
но не для отдельных стадий.
Было:
latency(ms): preparation=72.69 gc=72.69 write=73.04 sync=141.40 ending=72.69 whole=142.14
Аккумулированная сумма длительности этапов ВТРОЕ(!) больше общей длительности.
Стало:
latency(ms): preparation=0.00 gc=0.02 write=0.79 sync=67.98 ending=0.00 whole=140.81
Аккумулированная сумма длительности этапов меньше общей длительности,
так как для каждой транзакции общая длительность возвращается не менее 15.259 микросекунд.
2022-10-10 13:56:57 +03:00
Леонид Юрьев (Leonid Yuriev)
92dabe1ad1
mdbx: исправление лишнего сброса данных на диск в режиме MDBX_SAFE_NOSYNC
при обновлении GC.
2022-10-10 13:56:57 +03:00
Leonid Yuriev
0f7e5073db
mdbx: поправлен сбор информации о задержках, чтобы включенный аудит не искажал затраты на GC.
2022-10-10 13:56:57 +03:00
Леонид Юрьев (Leonid Yuriev)
bee7431f76
mdbx++: добавлена фиксация транзакции с получением информации о задержках.
2022-10-10 13:56:57 +03:00
Леонид Юрьев (Leonid Yuriev)
3579496945
mdbx: отключение MDBX_HAVE_BUILTIN_CPU_SUPPORTS
для e2k.
2022-10-10 13:56:57 +03:00
Леонид Юрьев (Leonid Yuriev)
24d7a4d605
mdbx: добавлено описание использования файловых дескрипторов в различных режимах.
2022-10-10 13:56:57 +03:00
Леонид Юрьев (Leonid Yuriev)
559f3005ca
mdbx-test: чуть больше логирования ошибок.
2022-10-10 13:56:57 +03:00
Леонид Юрьев (Leonid Yuriev)
a95ee8daa3
mdbx: минорная доработка mdbx_env_create()
.
2022-10-10 13:56:57 +03:00
Леонид Юрьев (Leonid Yuriev)
c17617b816
mdbx: облегченная assert_fail()
для не-отладочных сборок.
2022-10-10 13:56:57 +03:00
Леонид Юрьев (Leonid Yuriev)
6eeb08de46
mdbx: использование mdbx_panic()
вместо __assert_fail()
в ряде внутренних проверок.
2022-10-10 13:56:57 +03:00
Леонид Юрьев (Leonid Yuriev)
66f2e3d596
mdbx: добавление в API функций mdbx_limits_pairsize4page_max()
и mdbx_limits_valsize4page_max()
с сопутствующими доработками.
2022-10-10 13:56:57 +03:00
Леонид Юрьев (Leonid Yuriev)
143e3dfb77
mdbx: преимущественное использование size_t
для уменьшения накладных расходов на платформе Эльбрус.
2022-10-10 13:56:57 +03:00
Леонид Юрьев (Leonid Yuriev)
bcd5bad74a
mdbx: добавлено MDBX_NORETURN
к mdbx_panic()
и mdbx_assert_fail()
.
2022-10-10 13:56:57 +03:00
Леонид Юрьев (Leonid Yuriev)
375fa3a225
mdbx: небольшая чистка dlist_free()
.
2022-10-10 13:56:57 +03:00
Леонид Юрьев (Leonid Yuriev)
2236b90567
mdbx: добавлена опция сборки MDBX_AVOID_MSYNC
(объединённые коммиты и исправления).
2022-10-10 13:56:42 +03:00
Леонид Юрьев (Leonid Yuriev)
8aeb22b8bf
mdbx: логирование ошибок при подготовке/записи/фиксации транзакций.
2022-10-06 20:35:26 +03:00
Леонид Юрьев (Leonid Yuriev)
474391c83c
mdbx: поддержка асинхронного ввода-вывода для Windows и подготовка к io_ring
(объединённые коммиты и исправления).
2022-10-06 20:35:07 +03:00
Леонид Юрьев (Leonid Yuriev)
9f64e2a10c
mdbx: правка спилинга для устранения срабатывания проверочных утверждений в отладочных сборках.
2022-10-01 01:38:08 +03:00
Леонид Юрьев (Leonid Yuriev)
41b918f1fc
mdbx: исправление проверочного утверждения внутри mdbx_txn_abort()
для ошибочных транзакций.
2022-10-01 01:35:08 +03:00
Леонид Юрьев (Leonid Yuriev)
00515d50a9
mdbx: исправление проверочного утверждения в page_retire_ex()
.
2022-10-01 01:33:48 +03:00
Леонид Юрьев (Leonid Yuriev)
32a3674dc8
mdbx: return MDBX_PROBLEM
insted of MDBX_CORRUPTED
on coherence troubles.
2022-09-22 19:48:44 +03:00
Леонид Юрьев (Leonid Yuriev)
f51ace3db8
mdbx-windows: always call debugger if it present when assertion check failed.
2022-09-22 18:27:28 +03:00
Леонид Юрьев (Leonid Yuriev)
beda291692
mdbx-windows: fix nasty clz()
(i.e. using _BitScanReverse()
bug.
2022-09-22 18:27:28 +03:00
Леонид Юрьев (Leonid Yuriev)
fe20de136c
mdbx: require linux >= 4.0
2022-09-22 18:27:23 +03:00
Леонид Юрьев (Leonid Yuriev)
cf8540d84e
mdbx: minor refine mdbx_env_create()
.
2022-09-22 18:26:28 +03:00
Леонид Юрьев (Leonid Yuriev)
bec9312df5
mdbx: more off/on for clang-format.
2022-09-22 17:06:32 +03:00
Леонид Юрьев (Leonid Yuriev)
a089f73002
mdbx: fix minor MinGW warning.
2022-09-13 11:39:55 +03:00
Леонид Юрьев (Leonid Yuriev)
c4efa8dce8
mdbx: update ChangeLog.
2022-09-09 19:01:59 +03:00
Леонид Юрьев (Leonid Yuriev)
2d5438d2c2
mdbx: fix regression ASAN/Valgring-enabled builds.
2022-09-06 13:03:04 +03:00
Леонид Юрьев (Leonid Yuriev)
29da09328e
mdbx: removed description of deprecated usage of MDBX_NODUPDATA
.
2022-09-06 13:03:04 +03:00