Леонид Юрьев (Leonid Yuriev)
55142d8d6f
mdbx++: добавление txn::commit_embark_read()
.
2023-12-05 15:32:18 +03:00
Леонид Юрьев (Leonid Yuriev)
eee3e6eb6b
mdbx++: добавление compare_positions()
для курсоров.
2023-12-05 15:32:18 +03:00
Леонид Юрьев (Leonid Yuriev)
d6a79a9c5f
mdbx++: переименование slice::as_intXX()
в slice::as_intXX_adapt()
и добавление slice::as_intXX()
.
2023-11-26 16:56:34 +03:00
Леонид Юрьев (Leonid Yuriev)
e6af7d7c53
mdbx: переработка инициализации, проверки и импорта dbi-хендлов в транзакциях.
...
Ранее инициализация в транзакциях структур данных, связанных с
dbi-хендлами и subDb, выполнялась непосредственно при запуске
транзакций. Что в сценариях с большим кол-вом dbi-дексприторов (например
libfpta) порождало заметные накладные расходы, которые расли линейно от
общего кол-ва открытых subDb, а не от реально используемых в транзакции.
При использовании одной-двух сотен хендлов, при старте каждой транзакции
могли копироваться и/или обнуляться десятки килобайт. Теперь этот
недостаток устранен.
Изменена схема инициализации, валидации и импорта хендлов открытых после
старта транзакции:
1) Инициализация теперь выполняется отложенна, а при старте транзации
обнуляется только массив с однобайтовыми статустами dbi-хендлов.
При этом доступнва опция сборки `MDBX_ENABLE_DBI_SPARSE`, при активации
которой используется битовая карты, что снижает объем инициализации
при старте транзакции в 8 раз (CHAR_BIT).
2) Переработана валидация dbi-хендлов на входах API, с уменьшением кол-ва
проверок и ветвлений до теоретического минимума.
3) Переработ импорт dbi-хендов открытых после старта транзакци, теперь
при этом не захватывается мьютекс.
2023-11-11 12:29:10 +03:00
Леонид Юрьев (Leonid Yuriev)
311a6e5d10
mdbx++: добавление забытого исключения mdbx::duplicated_lck_file
.
2023-10-23 16:33:34 +03:00
Леонид Юрьев (Leonid Yuriev)
c256e8358c
mdbx++: добавление slice::as_pod<typename>()
.
2023-10-06 12:07:38 +03:00
Leonid Yuriev
6d74b10db1
mdbx: поддержка ASAN (Address Sanitizer) при сборке посредством MSVC.
2023-02-28 00:50:30 +03:00
Леонид Юрьев (Leonid Yuriev)
c01f025bfa
mdbx: обновление года на 2023.
2023-01-16 16:32:02 +03:00
Леонид Юрьев (Leonid Yuriev)
c270306580
mdbx-windows: уточнение проверок макросов MinGW и устранение предупреждений.
2022-11-08 20:39:44 +03:00
Леонид Юрьев (Leonid Yuriev)
bee7431f76
mdbx++: добавлена фиксация транзакции с получением информации о задержках.
2022-10-10 13:56:57 +03:00
Леонид Юрьев (Leonid Yuriev)
3c28619562
mdbx: merge branch master
into devel
.
2022-08-09 19:04:27 +03:00
Леонид Юрьев (Leonid Yuriev)
0287a00ee3
mdbx++: refine/simplify wchar_t
support for pathnames.
2022-08-09 18:54:22 +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)
69b495d559
mdbx++: add to mdbx::env
overloads with const char*
pathname parameter.
2022-07-13 21:45:23 +03:00
Леонид Юрьев (Leonid Yuriev)
b6138c39f0
mdbx: reorganize internal includes.
2022-06-02 20:35:40 +03:00
Леонид Юрьев (Leonid Yuriev)
7b95720f59
mdbx++: add support for legacy experimental/filesystem
.
2022-04-05 22:20:39 +03:00
Леонид Юрьев (Leonid Yuriev)
6f37c8e57f
mdbx: resolve all warnings from MinGW.
2022-03-30 18:13:08 +03:00
Леонид Юрьев (Leonid Yuriev)
96c93ac2f1
mdbx++: refine mdbx::env::operate_parameters()
and related.
2022-03-03 14:13:10 +03:00
Леонид Юрьев (Leonid Yuriev)
72bc655ece
mdbx++: fix env::is_empty()
to check leaf-pages instead of branch ones.
...
Seems like an auto-completion mistake.
Thanks to https://igor@t.me/libmdbx for reporing.
2022-02-15 18:11:31 +03:00
Leonid Yuriev
52552ebfe3
mdbx++: fix MSVC warnings/errors.
2022-01-19 21:08:01 +03:00
Leonid Yuriev
a6acc9d1a3
mdbx++: fix minor comment typo.
...
Change-Id: Ic169523218b366be0688ab92b76c4120df829ba3
2022-01-17 11:06:27 +03:00
Leonid Yuriev
c588af6aca
mdbx: update Copyright year.
...
Change-Id: Ib3e4c0ac94882c4b2a1e167dd98e6e26dbdf48a4
2022-01-17 11:06:14 +03:00
Leonid Yuriev
f2995ac75b
mdbx++: add assertions for destination-overflow to from/to hex/base58/base64::write_bytes().
...
Change-Id: I5a1f23dcb1dc1942f9d72966a78080eacfacf546
2022-01-15 18:52:12 +03:00
Leonid Yuriev
b5b0a9a284
mdbx++: add to_hex/to_base58/to_base64::output(std::ostream&)
without using temporary objects/buffers/strings.
...
Change-Id: Ideffd0e7f450307e14d780dcdeb2458c1c7e4c18
2022-01-15 18:52:12 +03:00
Leonid Yuriev
b139d8165b
mdbx++: refine line splitting inside to_hex/to_base58/to_base64 to avoid \n
at the end.
...
Change-Id: I53fb1f31ac5fc41567826a9035b0080fd62c8ade
2022-01-15 18:51:56 +03:00
Leonid Yuriev
ef2e390b10
mdbx++: fix from_base64::write_bytes()
.
...
Change-Id: I6c90997bffab45019a77edcf2a9dd35ae80069d3
2022-01-15 18:51:56 +03:00
Leonid Yuriev
51e6d4645c
mdbx++: fix to_base64::write_bytes()
for tail bytes.
...
Change-Id: I60defa11b7e44dcf2ac840160ab0c833484c9d39
2022-01-15 17:22:18 +03:00
Leonid Yuriev
0265c847b8
mdbx++: remove preliminary
label from C++ API.
2021-12-09 02:10:08 +03:00
Леонид Юрьев (Leonid Yuriev)
c2cab7a6a8
mdbx: using clang-format-13
(cosmetics).
2021-12-02 20:22:31 +03:00
sasgas
74d5a42578
mdbx: fix compilation with devtoolset-9 on CentOS/RHEL 7.
...
devtoolset is always using the old ABI
https://bugzilla.redhat.com/show_bug.cgi?id=1546704
https://stackoverflow.com/questions/49393888/how-can-i-use-the-new-c-11-abi-with-devtoolset-7-on-centos-rhel
2021-11-09 13:29:23 +03:00
Leonid Yuriev
5babf0872e
mdbx++: add ifndef-guard for _CRT_SECURE_NO_WARNINGS
.
2021-10-22 20:14:12 +03:00
Leonid Yuriev
65fa0cf8ed
mdbx++: revive encode/decode to hex/base58/base64 (squashed).
2021-07-26 03:53:11 +03:00
Leonid Yuriev
046dc02f73
mdbx: make MDBX_STRINGIFY
macro public.
2021-07-26 03:53:11 +03:00
Leonid Yuriev
bd2bb51f0f
mdbx++: rework buffer::silo
to avoid use std::string
.
2021-07-06 13:45:26 +03:00
Leonid Yuriev
cf5f31c577
mdbx: make __cold
attribute first (cosmetic).
2021-07-03 01:51:04 +03:00
Leonid Yuriev
fa49e5a57b
mdbx++: rename slice::from/to_FOO_bytes()
to `slice::envisage_from/to_FOO_length()'.
2021-07-02 21:20:04 +03:00
Leonid Yuriev
ebab75642e
mdbx: add public MDBX_MAYBE_UNUSED
.
...
This also should fix C++ mdbx API build by MSVC 2015.
2021-05-11 21:07:40 +03:00
Leonid Yuriev
ed58ff9f81
mdbx++: add [[maybe_unused]]
to internal functions which depends on platform and compiler features.
2021-05-11 16:53:47 +03:00
Leonid Yuriev
ab1fc94a5b
mdbx-windows: fix build for Windows XP/2000 (_WIN32_WINNT
< 0x0600).
...
Related to https://github.com/erthink/libmdbx/issues/155
Change-Id: Ibd795817e05b6da39ef270ce7b55b31d963d07b0
2021-05-08 18:38:26 +03:00
Leonid Yuriev
f698f07ff9
mdbx: fix operation for unusual small/large system page size.
...
More for https://github.com/erthink/libmdbx/issues/157
Change-Id: I4f2ed54b50653d0375538b82c48590d1037cd93b
2021-01-29 21:19:58 +03:00
Leonid Yuriev
251eda6fb8
mdbx: HNY!
...
Change-Id: I86c7028001b349e3d06b837dc8e2f7e60fb3b1a2
2021-01-26 07:27:13 +03:00
Leonid Yuriev
a987301204
mdbx++: refine abort/commit.
...
More for https://github.com/erthink/libmdbx/pull/143
Change-Id: I07de4c43d039f904495f0f4caf586d8764174dcf
2020-12-03 09:32:25 +03:00
sasgas
5c693ccd96
mdbx++: fix missing null assignment.
...
Resolves https://github.com/erthink/libmdbx/pull/143
Change-Id: Ifb88cebe2f07297a2f6cf70e31ae6abe61a0c0b2
2020-12-03 09:17:36 +03:00
Leonid Yuriev
4cb8067dce
mdbx++: always provide implementation for mdbx::path == std::string
.
...
Change-Id: I8ef5c1531dc378b4141637ec4ddae3bbc67f1570
2020-10-31 23:24:05 +03:00
Leonid Yuriev
586e25c48c
mdbx++: add operator<<(ostream, pair_result)
.
...
Change-Id: I44cc28f7f4f7d65225239d62f5bb8a15a8de16a8
2020-10-31 23:23:46 +03:00
Leonid Yuriev
e3f32ec6b4
mdbx++: refine operator<<(ostream, pair)
.
...
Change-Id: I0f42c17a241cf4e2ed6ae8f18e84a13ba5500a3b
2020-10-31 23:23:30 +03:00
Leonid Yuriev
4e198915f2
mdbx++: fix slice::is_printable()
.
...
Change-Id: I7f572f8e2179313e3cd312a58e46d445b920ba3e
2020-10-31 23:22:31 +03:00
Leonid Yuriev
1d71c677f6
mdbx++: add env::remove()
method.
...
Change-Id: If0396d38738df88d054eb8fb752c7bd3afbd8487
2020-10-10 18:31:15 +03:00
Leonid Yuriev
5627521f16
mdbx++: more spelling.
...
Change-Id: I3f33e695fb918c6a57c39047bba54a72ecb9bc5b
2020-09-27 17:01:59 +03:00