Commit Graph

126 Commits

Author SHA1 Message Date
Леонид Юрьев (Leonid Yuriev)
25015c54e1 mdbx: обещанное "doubtless" API для позиционирования курсоров. 2023-12-05 15:32:18 +03:00
Леонид Юрьев (Leonid Yuriev)
ed59ad22c6 mdbx: добавление mdbx_cursor_on_first/last_dup() в API. 2023-12-05 15:32:18 +03:00
Леонид Юрьев (Leonid Yuriev)
eee3e6eb6b mdbx++: добавление compare_positions() для курсоров. 2023-12-05 15:32:18 +03:00
Леонид Юрьев (Leonid Yuriev)
225f548339 mdbx++: добавление get_/set_context для транзакций и курсоров. 2023-12-05 15:32:13 +03:00
Леонид Юрьев (Leonid Yuriev)
992eee4f0f mdbx++: добавление cursor::clone(). 2023-11-26 16:56:34 +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)
6facd20b2b mdbx++: добавление buffer::as_uint64() и т.д. 2023-11-26 16:56:34 +03:00
Леонид Юрьев (Leonid Yuriev)
e66df2c21b mdbx++: добавление методов buffer::hex_decode(), base64_decode(), base58_decode(). 2023-11-26 16:56:34 +03:00
Леонид Юрьев (Leonid Yuriev)
649bbb9d90 mdbx++: добавление типа mdbx::comparator и функций mdbx::default_comparator(). 2023-11-26 16:56:34 +03:00
Леонид Юрьев (Leonid Yuriev)
c8319aabe7 mdbx++: добавление статических методов buffer::hex(), base64(), base58(). 2023-11-26 16:56:19 +03:00
Леонид Юрьев (Leonid Yuriev)
6cef39c32f mdbx++: добавление cursor::estimation_result и переделка cursor::estimate(). 2023-11-12 20:37:57 +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)
04511a7a99 mdbx: использование const MDBX_txn где это возможно в API. 2023-10-23 20:25:03 +03:00
Леонид Юрьев (Leonid Yuriev)
4d3f7e1edc mdbx: добавление mdbx_txn_release_all_cursors() в API. 2023-10-23 20:25:03 +03:00
Леонид Юрьев (Leonid Yuriev)
d28a397b2d mdbx: добавление mdbx_cursor_unbind() в API. 2023-10-23 20:25:03 +03:00
Леонид Юрьев (Leonid Yuriev)
311a6e5d10 mdbx++: добавление забытого исключения mdbx::duplicated_lck_file. 2023-10-23 16:33:34 +03:00
Леонид Юрьев (Leonid Yuriev)
e9b10db255 mdbx++: доработка использования filesystem для старых компиляторов. 2023-10-09 07:34:01 +03:00
Леонид Юрьев (Leonid Yuriev)
e195f5bcf7 mdbx++: перегрузка txn::put_multiple() и добавление контроля POD. 2023-10-06 21:56:21 +03:00
Леонид Юрьев (Leonid Yuriev)
c256e8358c mdbx++: добавление slice::as_pod<typename>(). 2023-10-06 12:07:38 +03:00
Леонид Юрьев (Leonid Yuriev)
7aaae2ecd5 mdbx-doc: исправление ссылок на mdbx_canary_put(). 2023-06-01 08:48:38 +03:00
Леонид Юрьев (Leonid Yuriev)
e8d2a5bd09 mdbx++: добавление пары перекрестных ссылок в doxygen-документацию. 2023-05-23 15:35:36 +03:00
Леонид Юрьев (Leonid Yuriev)
60b483025c mdbx++: устранение ложно-позитивного предупреждения новых версий GCC. 2023-05-14 01:23:48 +03:00
Леонид Юрьев (Leonid Yuriev)
99c9bc2411 mdbx: использование clang-format-16. 2023-04-19 11:02:53 +03:00
Леонид Юрьев (Leonid Yuriev)
3ace3c27b8 mdbx++: добавление typename mdbx::default_allocator. 2023-04-01 11:10:40 +03:00
Леонид Юрьев (Leonid Yuriev)
8a44d57fab mdbx++: добавление вариантов buffer::key_from() с явным именованием по типу данных. 2023-03-31 00:56:05 +03:00
Леонид Юрьев (Leonid Yuriev)
7db014c4fc mdbx++: добавление в C++ API поддержки расширенных опций времени выполнения enum MDBX_option_t.
https://gitflic.ru/project/erthink/libmdbx/issue/4
2023-03-01 23:22:50 +03:00
Леонид Юрьев (Leonid Yuriev)
e51140fe48 mdbx-doc: корректировка doxygen-описания C++ API, в особенности C++20 concepts. 2023-02-11 00:26:06 +03:00
Леонид Юрьев (Leonid Yuriev)
2a41b24876 mdbx++: уточнение const и noexcept для нескольких методов. 2023-02-09 15:14:39 +03:00
Леонид Юрьев (Leonid Yuriev)
c01f025bfa mdbx: обновление года на 2023. 2023-01-16 16:32:02 +03:00
Леонид Юрьев (Leonid Yuriev)
525c4a55a4 mdbx: fix English typos.
Thanks to Dimitris Apostolou <dimitris.apostolou@icloud.com>
2023-01-10 14:16:08 +03:00
Леонид Юрьев (Leonid Yuriev)
61eafe80c1 mdbx: использование https://libmdbx.dqdkfa.ru/dead-github для удаленных issues. 2022-11-23 01:18:25 +03:00
Леонид Юрьев (Leonid Yuriev)
70e8006776 mdbx-docs: перенаправление github-ссылок на web-archive. 2022-11-10 15:54:31 +03:00
Леонид Юрьев (Leonid Yuriev)
25ab65b470 mdbx++: добавление env::limits::pairsize4page_max() и env::limits::valsize4page_max(). 2022-10-10 16:37:59 +03:00
Леонид Юрьев (Leonid Yuriev)
bee7431f76 mdbx++: добавлена фиксация транзакции с получением информации о задержках. 2022-10-10 13:56:57 +03:00
Леонид Юрьев (Leonid Yuriev)
2ff8d3c4f2 mdbx: native wchar_t pathname for Windows. 2022-08-09 18:27:43 +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)
8ef3bfcc95 mdbx++: refine descriptions for compare_fast() and compare_lexicographically(). 2022-06-18 12:08:34 +03:00
Леонид Юрьев (Leonid Yuriev)
280fa99831 mdbx++: use C++20 concepts only when __cpp_lib_concepts >= 202002. 2022-06-12 20:20:23 +03:00
Леонид Юрьев (Leonid Yuriev)
9b9fe22669 mdbx++: refine descriptions for constexpr-enabled str-functions. 2022-06-12 20:17:40 +03:00
Леонид Юрьев (Leonid Yuriev)
a5a112796c mdbx++: push/pop warnings for lcc 1.26 2022-06-12 20:11:15 +03:00
Леонид Юрьев (Leonid Yuriev)
c8cad3704e mdbx-docs: minor refine Doxygen config and comments. 2022-04-26 01:02:07 +03:00
Леонид Юрьев (Leonid Yuriev)
ce229c7500 mdbx-docs: more refine/clarify Doxygen descriptions. 2022-04-23 23:23:15 +03:00
Леонид Юрьев (Leonid Yuriev)
9c569b41ed mdbx-docs: fix/refine C++ API docs by Doxygen. 2022-04-23 23:23:15 +03:00
Леонид Юрьев (Leonid Yuriev)
bdf5fb7a72 mdbx++: avoid clang++ minor/extra warnings. 2022-04-21 21:53:46 +03:00
Леонид Юрьев (Leonid Yuriev)
e00f827de7 mdbx++: fix/refine detection of C++20 concepts accessibility. 2022-04-21 21:53:29 +03:00
Леонид Юрьев (Leonid Yuriev)
2921711638 mdbx: minor refine note about migration from dead github. 2022-04-21 15:34:56 +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)
39a4a89650 mdbx++: declare mdbx::filesystem if available. 2022-04-07 18:00:23 +03:00
Леонид Юрьев (Leonid Yuriev)
7b95720f59 mdbx++: add support for legacy experimental/filesystem. 2022-04-05 22:20:39 +03:00