Леонид Юрьев (Leonid Yuriev)
9cee1ff799
mdbx: определение ior_WriteFile_flag
для ясности кода.
2022-11-28 23:56:42 +03:00
Леонид Юрьев (Leonid Yuriev)
61eafe80c1
mdbx: использование https://libmdbx.dqdkfa.ru/dead-github для удаленных issues.
2022-11-23 01:18:25 +03:00
Леонид Юрьев (Leonid Yuriev)
c46c03e7c8
mdbx: fix nasty typo/rebase/merge bug with calling msync()
on Linux.
2022-11-19 23:19:30 +03:00
Леонид Юрьев (Leonid Yuriev)
70e8006776
mdbx-docs: перенаправление github-ссылок на web-archive.
2022-11-10 15:54:31 +03:00
Леонид Юрьев (Leonid Yuriev)
652ca2b5cb
mdbx-windows: исправление минорных предупреждений MingGW.
2022-11-08 20:39:44 +03:00
Леонид Юрьев (Leonid Yuriev)
f680c99116
mdbx: переделка page_alloc_slowpath()
с добавлением профилирования GC.
2022-11-07 00:44:37 +03:00
Леонид Юрьев (Leonid Yuriev)
28e2e31949
mdbx: выделение специфической инициализации в osal_ctor()
.
2022-11-02 11:09:32 +03:00
Леонид Юрьев (Leonid Yuriev)
80f9f73a5e
mdbx: чуть больше контроля и паранойи для страховки от дефектов mremap()
.
...
Есть основание полагать, что mremap() может возвращать MAP_FAILED, но НЕ
устанавливать errno в некоторых пограничных ситуациях. Например, когда
системных ресурсов не хватает на актуализацию/копирование/клонирование
состояния отображения на финальной стадии, в том числе из-за раскраски
исходного отображения разными флагами через madvise().
2022-10-14 00:20:37 +03:00
Леонид Юрьев (Leonid Yuriev)
138a83c2be
mdbx: добавлена несколько MDBX_MAYBE_UNUSED
для ликвидации предупреждений.
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)
14eda2cd17
mdbx-windows: использование _CrtDbgReport() в отладочных сборках.
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)
c17617b816
mdbx: облегченная assert_fail()
для не-отладочных сборок.
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)
2236b90567
mdbx: добавлена опция сборки MDBX_AVOID_MSYNC
(объединённые коммиты и исправления).
2022-10-10 13:56:42 +03:00
Леонид Юрьев (Leonid Yuriev)
474391c83c
mdbx: поддержка асинхронного ввода-вывода для Windows и подготовка к io_ring
(объединённые коммиты и исправления).
2022-10-06 20:35:07 +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)
fe20de136c
mdbx: require linux >= 4.0
2022-09-22 18:27:23 +03:00
Леонид Юрьев (Leonid Yuriev)
18e557c6e8
mdbx: rename internal functions, types and macros (to be closer to MithrilDB).
2022-08-11 12:33:56 +03:00
Леонид Юрьев (Leonid Yuriev)
096d6a9bd6
mdbx: some micro-optimizations.
2022-08-10 22:09:42 +03:00
Леонид Юрьев (Leonid Yuriev)
3c28619562
mdbx: merge branch master
into devel
.
2022-08-09 19:04:27 +03:00
Леонид Юрьев (Leonid Yuriev)
2ff8d3c4f2
mdbx: native wchar_t
pathname for Windows.
2022-08-09 18:27:43 +03:00
Леонид Юрьев (Leonid Yuriev)
c8b1392cbe
mdbx: use MultiByteToWideChar(CP_THREAD_ACP)
instead of mbstowcs()
.
2022-08-09 16:12:24 +03:00
Леонид Юрьев (Leonid Yuriev)
77f56541d0
mdbx-windows: refine/fix mdbx_check_fs_local()
for CDROM case.
2022-06-04 02:08:24 +03:00
Леонид Юрьев (Leonid Yuriev)
d1e67645a2
mdbx: refine handling EACCESS
while trying create LCK-file on a read-only filesystem.
2022-06-04 02:04:55 +03:00
Леонид Юрьев (Leonid Yuriev)
106f39327e
mdbx: add mdbx_assert_fail()
to public API.
2022-06-02 20:35:40 +03:00
Леонид Юрьев (Leonid Yuriev)
501691a3c0
mdbx: add __assert_fail()
macro for Android.
2022-06-02 20:35:40 +03:00
Леонид Юрьев (Leonid Yuriev)
f341129afa
mdbx-windows: fix for non-x86 with MDBX_WITHOUT_MSVC_CRT=ON
and MDBX_BUILD_SHARED_LIBRARY=ON
.
2022-04-22 18:31:49 +03:00
Леонид Юрьев (Leonid Yuriev)
bb377fd20e
mdbx: merge branch master
into devel
.
2022-04-21 15:44:23 +03:00
Леонид Юрьев (Leonid Yuriev)
a2aa6667e1
mdbx: avoid 32-bit Bionic/Android hang within pthread_mutex_lock()
.
2022-04-21 15:41:25 +03:00
Леонид Юрьев (Leonid Yuriev)
6d15836171
mdbx: use todo4recovery://erased_by_github/
for dead (or temporarily lost) resources.
2022-04-21 15:34:53 +03:00
Леонид Юрьев (Leonid Yuriev)
ed23956e11
mdbx: basic cleanup from dead github and another corrupted services.
2022-04-20 06:42:16 +03:00
Леонид Юрьев (Leonid Yuriev)
33a9395afe
mdbx: use MDBX_EPERM
to indicate that the geometry cannot be updated instead of `MDBX_RESULT_TRUE'.
2022-03-29 18:57:26 +03:00
Leonid Yuriev
c588af6aca
mdbx: update Copyright year.
...
Change-Id: Ib3e4c0ac94882c4b2a1e167dd98e6e26dbdf48a4
2022-01-17 11:06:14 +03:00
Леонид Юрьев (Leonid Yuriev)
c2cab7a6a8
mdbx: using clang-format-13
(cosmetics).
2021-12-02 20:22:31 +03:00
Leonid Yuriev
99b75b5004
mdbx: fix/model minor Coverity issues.
2021-08-16 23:45:56 +03:00
Leonid Yuriev
7759e52850
mdbx-windows: use MachineGuid
of any size for bootid
generation.
2021-07-19 12:07:45 +03:00
Leonid Yuriev
0b120b8fa9
mdbx-windows: fix bootid
generation for case of change system' time.
2021-07-19 12:05:55 +03:00
Leonid Yuriev
6034985686
mdbx: add MDBX_ASAN_(UN)POISON_MEMORY_REGION()
macros.
2021-07-16 16:03:49 +03:00
Leonid Yuriev
728e7f92b2
mdbx: minor fix mdbx_mresize()
to preserve result code for read-only cases.
2021-07-11 02:25:39 +03:00
Leonid Yuriev
1740043678
mdbx: minimize the size of poisoned/unpoisoned regions to avoid ASAN hangs.
...
More for second case of https://github.com/erthink/libmdbx/issues/217
2021-07-11 02:25:26 +03:00
Leonid Yuriev
891d68838a
mdbx: return MDBX_TOO_LARGE
under Valgrind/ASAN if being opened DB is 100 larger than RAM.
...
More for second case of https://github.com/erthink/libmdbx/issues/217
2021-07-11 02:25:07 +03:00
Leonid Yuriev
c30c3def8b
mdbx: the filesize
field of mdbx_mmap_t
now is not specific for Windows.
2021-07-10 16:10:30 +03:00
Leonid Yuriev
cf5f31c577
mdbx: make __cold
attribute first (cosmetic).
2021-07-03 01:51:04 +03:00
Leonid Yuriev
d7c06b1337
mdbx: partial fix for recursive SRW-lock with MDBX_NOTLS
on Windows.
...
Here are some changes to avoid recursive acquisition of SRW-lock,
which is still in use:
- Read transactions don't acquire the shared SRW-lock with `MDBX_NOTLS.
- Memory-mapping of DB is always kept while DB opened,
therefore following limitations are:
- DB file can't be shrinked while it used,
including auto-shrink due to auto-compactification with corresponding geometry settings.
- The upper limit of DB size can't be changed while DB is used.
- The DB can grow within the upper size limit defined while opening by a first process,
but this does not work under Wine since there is no `NtExtendSection()` function.
Partially fix https://github.com/erthink/libmdbx/issues/203
2021-06-10 13:42:30 +03:00
Leonid Yuriev
a7167ce715
mdbx: allow open DB on 9P/WSL2 filesystem in exclusive mode.
...
Related to https://github.com/erthink/libmdbx/issues/97
2021-05-26 21:08:37 +03:00
Leonid Yuriev
b0830db25a
mdbx: add 9P
(WSL2 DrvFs) to blacklist of remote filesystems.
...
Related to https://github.com/erthink/libmdbx/issues/97
2021-05-26 20:33:08 +03:00
Leonid Yuriev
9c7c709b3e
mdbx: avoid underflow during monotime/16dot16 conversion.
2021-05-12 17:44:18 +03:00