Skip to content

Commit

Permalink
save
Browse files Browse the repository at this point in the history
  • Loading branch information
AskAlexSharov committed Dec 23, 2024
1 parent 0127830 commit 1b75fb1
Show file tree
Hide file tree
Showing 10 changed files with 323 additions and 304 deletions.
10 changes: 9 additions & 1 deletion mdbxdist/ChangeLog.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,9 @@ and [by Yandex](https://translated.turbopages.org/proxy_u/ru-en.en/https/libmdbx

Благодарности:

- [Алексей (Keller) Костюк](https://t.me/keller18306) за сообщения об ошибках и недочетах.
- [Алексею Костюку (aka Keller)](https://t.me/keller18306) за сообщения об ошибках и недочетах.
- [Erigon](https://docs.erigon.tech/) за спонсорство.
- [Lazymio](https://github.com/wtdcode) за новые [привязки к Python](https://pypi.org/project/libmdbx/).

Новое:

Expand All @@ -18,6 +19,13 @@ and [by Yandex](https://translated.turbopages.org/proxy_u/ru-en.en/https/libmdbx

Исправления:

- Устранён регресс неразблокировки мьютекса при попытки повторного закрытия dbi-дескриптора,
в том числе при попытке явно закрыть дескриптор после удаления связанной с ним таблицы.

Вместо возврата ошибки `MDBX_BAD_DBI` происходил выход из тела функции по успешному пути,
но без освобождения захваченной блокировки.
Ошибка была внесена 2024-10-23 коммитом `3049bb87b5b14d83b16d121c186ce8fb3f21383e`.

- Устранён регресс состояния вложенного/dupsort курсора после вставки данных в `MDBX_APPEND`-режиме.

При добавлении нового ключа в append-режиме, в случае когда в текущей
Expand Down
11 changes: 7 additions & 4 deletions mdbxdist/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -190,8 +190,7 @@ and [CoW](https://en.wikipedia.org/wiki/Copy-on-write).

- Append operation for efficient bulk insertion of pre-sorted data.

- No [WAL](https://en.wikipedia.org/wiki/Write-ahead_logging) nor any
transaction journal. No crash recovery needed. No maintenance is required.
- No [WAL](https://en.wikipedia.org/wiki/Write-ahead_logging) nor any transaction journal. No crash recovery needed. No maintenance is required.

- No internal cache and/or memory management, all done by basic OS services.

Expand Down Expand Up @@ -263,7 +262,11 @@ the user's point of view.
> and up to 30% faster when _libmdbx_ compiled with specific build options
> which downgrades several runtime checks to be match with LMDB behaviour.
>
> These and other results could be easily reproduced with [ioArena](https://abf.io/erthink/ioarena) just by `make bench-quartet` command,
> However, libmdbx may be slower than LMDB on Windows, since uses native file locking API.
> These locks are really slow, but they prevent an inconsistent backup from being obtained by copying the DB file during an ongoing write transaction.
> So I think this is the right decision, and for speed, it's better to use Linux, or ask Microsoft to fix up file locks.
>
> Noted above and other results could be easily reproduced with [ioArena](https://abf.io/erthink/ioarena) just by `make bench-quartet` command,
> including comparisons with [RockDB](https://en.wikipedia.org/wiki/RocksDB)
> and [WiredTiger](https://en.wikipedia.org/wiki/WiredTiger).
Expand Down Expand Up @@ -642,7 +645,7 @@ Bindings
| Rust | [libmdbx-rs](https://github.com/vorot93/libmdbx-rs) | [Artem Vorotnikov](https://github.com/vorot93) |
| Rust | [mdbx](https://crates.io/crates/mdbx) | [gcxfd](https://github.com/gcxfd) |
| Java | [mdbxjni](https://github.com/castortech/mdbxjni) | [Castor Technologies](https://castortech.com/) |
| Python (draft) | [python-bindings](https://libmdbx.dqdkfa.ru/dead-github/commits/python-bindings) branch | [Noel Kuntze](https://github.com/Thermi)
| Python | [PyPi/libmdbx](https://pypi.org/project/libmdbx/) | [Lazymio](https://github.com/wtdcode) |
| .NET (obsolete) | [mdbx.NET](https://github.com/wangjia184/mdbx.NET) | [Jerry Wang](https://github.com/wangjia184) |

<!-- section-end -->
Expand Down
592 changes: 300 additions & 292 deletions mdbxdist/mdbx.c

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion mdbxdist/mdbx.c++
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
/// \author Леонид Юрьев aka Leonid Yuriev <[email protected]> \date 2015-2024
/* clang-format off */

#define MDBX_BUILD_SOURCERY a19148f1d73f16063f6236bdf8e1580bb4fd35e2a392ff5c058264b6fcba9149_v0_13_2_20_g462af2be
#define MDBX_BUILD_SOURCERY b16d14cb3026921fb14b9e52a75f956cd0a1d592091938703d138c32bc9d6541_v0_13_2_33_g98b28213

#define LIBMDBX_INTERNALS
#define MDBX_DEPRECATED
Expand Down
2 changes: 1 addition & 1 deletion mdbxdist/mdbx_chk.c
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
/// \copyright SPDX-License-Identifier: Apache-2.0
/// \author Леонид Юрьев aka Leonid Yuriev <[email protected]> \date 2015-2024

#define MDBX_BUILD_SOURCERY a19148f1d73f16063f6236bdf8e1580bb4fd35e2a392ff5c058264b6fcba9149_v0_13_2_20_g462af2be
#define MDBX_BUILD_SOURCERY b16d14cb3026921fb14b9e52a75f956cd0a1d592091938703d138c32bc9d6541_v0_13_2_33_g98b28213

#define LIBMDBX_INTERNALS
#define MDBX_DEPRECATED
Expand Down
2 changes: 1 addition & 1 deletion mdbxdist/mdbx_copy.c
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
/// \copyright SPDX-License-Identifier: Apache-2.0
/// \author Леонид Юрьев aka Leonid Yuriev <[email protected]> \date 2015-2024

#define MDBX_BUILD_SOURCERY a19148f1d73f16063f6236bdf8e1580bb4fd35e2a392ff5c058264b6fcba9149_v0_13_2_20_g462af2be
#define MDBX_BUILD_SOURCERY b16d14cb3026921fb14b9e52a75f956cd0a1d592091938703d138c32bc9d6541_v0_13_2_33_g98b28213

#define LIBMDBX_INTERNALS
#define MDBX_DEPRECATED
Expand Down
2 changes: 1 addition & 1 deletion mdbxdist/mdbx_drop.c
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
/// \copyright SPDX-License-Identifier: Apache-2.0
/// \author Леонид Юрьев aka Leonid Yuriev <[email protected]> \date 2015-2024

#define MDBX_BUILD_SOURCERY a19148f1d73f16063f6236bdf8e1580bb4fd35e2a392ff5c058264b6fcba9149_v0_13_2_20_g462af2be
#define MDBX_BUILD_SOURCERY b16d14cb3026921fb14b9e52a75f956cd0a1d592091938703d138c32bc9d6541_v0_13_2_33_g98b28213

#define LIBMDBX_INTERNALS
#define MDBX_DEPRECATED
Expand Down
2 changes: 1 addition & 1 deletion mdbxdist/mdbx_dump.c
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
/// \copyright SPDX-License-Identifier: Apache-2.0
/// \author Леонид Юрьев aka Leonid Yuriev <[email protected]> \date 2015-2024

#define MDBX_BUILD_SOURCERY a19148f1d73f16063f6236bdf8e1580bb4fd35e2a392ff5c058264b6fcba9149_v0_13_2_20_g462af2be
#define MDBX_BUILD_SOURCERY b16d14cb3026921fb14b9e52a75f956cd0a1d592091938703d138c32bc9d6541_v0_13_2_33_g98b28213

#define LIBMDBX_INTERNALS
#define MDBX_DEPRECATED
Expand Down
2 changes: 1 addition & 1 deletion mdbxdist/mdbx_load.c
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
/// \copyright SPDX-License-Identifier: Apache-2.0
/// \author Леонид Юрьев aka Leonid Yuriev <[email protected]> \date 2015-2024

#define MDBX_BUILD_SOURCERY a19148f1d73f16063f6236bdf8e1580bb4fd35e2a392ff5c058264b6fcba9149_v0_13_2_20_g462af2be
#define MDBX_BUILD_SOURCERY b16d14cb3026921fb14b9e52a75f956cd0a1d592091938703d138c32bc9d6541_v0_13_2_33_g98b28213

#define LIBMDBX_INTERNALS
#define MDBX_DEPRECATED
Expand Down
2 changes: 1 addition & 1 deletion mdbxdist/mdbx_stat.c
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
/// \copyright SPDX-License-Identifier: Apache-2.0
/// \author Леонид Юрьев aka Leonid Yuriev <[email protected]> \date 2015-2024

#define MDBX_BUILD_SOURCERY a19148f1d73f16063f6236bdf8e1580bb4fd35e2a392ff5c058264b6fcba9149_v0_13_2_20_g462af2be
#define MDBX_BUILD_SOURCERY b16d14cb3026921fb14b9e52a75f956cd0a1d592091938703d138c32bc9d6541_v0_13_2_33_g98b28213

#define LIBMDBX_INTERNALS
#define MDBX_DEPRECATED
Expand Down

0 comments on commit 1b75fb1

Please sign in to comment.