Skip to content

Commit 2820983

Browse files
author
JkLondon
committed
new v0.13.8
1 parent f8885bc commit 2820983

19 files changed

Lines changed: 4102 additions & 4915 deletions

libmdbx/CMakeLists.txt

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -132,8 +132,6 @@ if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.git"
132132
AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/src/preface.h"
133133
AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/src/proto.h"
134134
AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/src/refund.c"
135-
AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/src/rkl.c"
136-
AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/src/rkl.h"
137135
AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/src/sort.h"
138136
AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/src/spill.c"
139137
AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/src/spill.h"
@@ -151,9 +149,6 @@ if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/.git"
151149
AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/src/tree-ops.c"
152150
AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/src/txl.c"
153151
AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/src/txl.h"
154-
AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/src/txn-basal.c"
155-
AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/src/txn-nested.c"
156-
AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/src/txn-ro.c"
157152
AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/src/txn.c"
158153
AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/src/unaligned.h"
159154
AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/src/utils.c"
@@ -834,8 +829,6 @@ else()
834829
"${MDBX_SOURCE_DIR}/preface.h"
835830
"${MDBX_SOURCE_DIR}/proto.h"
836831
"${MDBX_SOURCE_DIR}/refund.c"
837-
"${MDBX_SOURCE_DIR}/rkl.c"
838-
"${MDBX_SOURCE_DIR}/rkl.h"
839832
"${MDBX_SOURCE_DIR}/sort.h"
840833
"${MDBX_SOURCE_DIR}/spill.c"
841834
"${MDBX_SOURCE_DIR}/spill.h"
@@ -845,9 +838,6 @@ else()
845838
"${MDBX_SOURCE_DIR}/tree-ops.c"
846839
"${MDBX_SOURCE_DIR}/txl.c"
847840
"${MDBX_SOURCE_DIR}/txl.h"
848-
"${MDBX_SOURCE_DIR}/txn-basal.c"
849-
"${MDBX_SOURCE_DIR}/txn-nested.c"
850-
"${MDBX_SOURCE_DIR}/txn-ro.c"
851841
"${MDBX_SOURCE_DIR}/txn.c"
852842
"${MDBX_SOURCE_DIR}/unaligned.h"
853843
"${MDBX_SOURCE_DIR}/utils.c"

libmdbx/ChangeLog.md

Lines changed: 1196 additions & 331 deletions
Large diffs are not rendered by default.

libmdbx/README.md

Lines changed: 27 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,17 @@
11
<!-- Required extensions: pymdownx.betterem, pymdownx.tilde, pymdownx.emoji, pymdownx.tasklist, pymdownx.superfences -->
22

3+
> Please refer to the online [official libmdbx documentation site](https://libmdbx.dqdkfa.ru)
4+
> with [`C` API description](https://libmdbx.dqdkfa.ru/group__c__api.html)
5+
> and pay attention to the [`C++` API](https://gitflic.ru/project/erthink/libmdbx/blob?file=mdbx.h%2B%2B#line-num-1).
6+
7+
> Questions, feedback and suggestions are welcome to the [Telegram' group](https://t.me/libmdbx) (archive [1](https://libmdbx.dqdkfa.ru/tg-archive/messages1.html),
8+
> [2](https://libmdbx.dqdkfa.ru/tg-archive/messages2.html), [3](https://libmdbx.dqdkfa.ru/tg-archive/messages3.html), [4](https://libmdbx.dqdkfa.ru/tg-archive/messages4.html),
9+
> [5](https://libmdbx.dqdkfa.ru/tg-archive/messages5.html), [6](https://libmdbx.dqdkfa.ru/tg-archive/messages6.html), [7](https://libmdbx.dqdkfa.ru/tg-archive/messages7.html)).
10+
> See the [ChangeLog](https://gitflic.ru/project/erthink/libmdbx/blob?file=ChangeLog.md) for `NEWS` and latest updates.
11+
12+
> Donations are welcome to the Ethereum/ERC-20 `0xD104d8f8B2dC312aaD74899F83EBf3EEBDC1EA3A`.
13+
> Всё будет хорошо!
14+
315
libmdbx
416
========
517

@@ -26,44 +38,32 @@ tree](https://en.wikipedia.org/wiki/B%2B_tree).
2638
[WAL](https://en.wikipedia.org/wiki/Write-ahead_logging), but that might
2739
be a caveat for write-intensive workloads with durability requirements.
2840

29-
4. Enforces [serializability](https://en.wikipedia.org/wiki/Serializability) for
41+
4. **Compact and friendly for fully embedding**. Only ≈25KLOC of `C11`,
42+
≈64K x86 binary code of core, no internal threads neither server process(es),
43+
but implements a simplified variant of the [Berkeley
44+
DB](https://en.wikipedia.org/wiki/Berkeley_DB) and
45+
[dbm](https://en.wikipedia.org/wiki/DBM_(computing)) API.
46+
47+
5. Enforces [serializability](https://en.wikipedia.org/wiki/Serializability) for
3048
writers just by single
3149
[mutex](https://en.wikipedia.org/wiki/Mutual_exclusion) and affords
3250
[wait-free](https://en.wikipedia.org/wiki/Non-blocking_algorithm#Wait-freedom)
3351
for parallel readers without atomic/interlocked operations, while
3452
**writing and reading transactions do not block each other**.
3553

36-
5. **Guarantee data integrity** after crash unless this was explicitly
54+
6. **Guarantee data integrity** after crash unless this was explicitly
3755
neglected in favour of write performance.
3856

39-
6. Supports Linux, Windows, MacOS, Android, iOS, FreeBSD, DragonFly, Solaris,
57+
7. Supports Linux, Windows, MacOS, Android, iOS, FreeBSD, DragonFly, Solaris,
4058
OpenSolaris, OpenIndiana, NetBSD, OpenBSD and other systems compliant with
4159
**POSIX.1-2008**.
4260

43-
7. **Compact and friendly for fully embedding**. Only ≈25KLOC of `C11`,
44-
≈64K x86 binary code of core, no internal threads neither server process(es),
45-
but implements a simplified variant of the [Berkeley
46-
DB](https://en.wikipedia.org/wiki/Berkeley_DB) and
47-
[dbm](https://en.wikipedia.org/wiki/DBM_(computing)) API.
48-
4961
<!-- section-end -->
5062

51-
Historically, _libmdbx_ is a deeply revised and extended descendant of the legendary
63+
Historically, _libmdbx_ is a deeply revised and extended descendant of the amazing
5264
[Lightning Memory-Mapped Database](https://en.wikipedia.org/wiki/Lightning_Memory-Mapped_Database).
5365
_libmdbx_ inherits all benefits from _LMDB_, but resolves some issues and adds [a set of improvements](#improvements-beyond-lmdb).
5466

55-
[![Telergam: Support | Discussions | News](https://img.shields.io/endpoint?color=scarlet&logo=telegram&label=Support%20%7C%20Discussions%20%7C%20News&url=https%3A%2F%2Ftg.sumanjay.workers.dev%2Flibmdbx)](https://t.me/libmdbx)
56-
57-
> Please refer to the online [documentation](https://libmdbx.dqdkfa.ru)
58-
> with [`C` API description](https://libmdbx.dqdkfa.ru/group__c__api.html)
59-
> and pay attention to the [`C++` API](https://gitflic.ru/project/erthink/libmdbx/blob?file=mdbx.h%2B%2B#line-num-1).
60-
> Donations are welcome to the Ethereum/ERC-20 `0xD104d8f8B2dC312aaD74899F83EBf3EEBDC1EA3A`.
61-
> Всё будет хорошо!
62-
63-
Telegram Group archive: [1](https://libmdbx.dqdkfa.ru/tg-archive/messages1.html),
64-
[2](https://libmdbx.dqdkfa.ru/tg-archive/messages2.html), [3](https://libmdbx.dqdkfa.ru/tg-archive/messages3.html), [4](https://libmdbx.dqdkfa.ru/tg-archive/messages4.html),
65-
[5](https://libmdbx.dqdkfa.ru/tg-archive/messages5.html), [6](https://libmdbx.dqdkfa.ru/tg-archive/messages6.html), [7](https://libmdbx.dqdkfa.ru/tg-archive/messages7.html).
66-
6767
## Github
6868

6969
### на Русском (мой родной язык)
@@ -125,7 +125,8 @@ of the database. All fundamental architectural problems of libmdbx/LMDB
125125
have been solved there, but now the active development has been
126126
suspended for top-three reasons:
127127

128-
1. For now _libmdbx_ mostly enough and I’m busy for scalability.
128+
1. For now _libmdbx_ «mostly» enough for all [our products](https://www.ptsecurity.com/ww-en/products/),
129+
and I’m busy in development of replication for scalability.
129130
2. Waiting for fresh [Elbrus CPU](https://wiki.elbrus.ru/) of [e2k architecture](https://en.wikipedia.org/wiki/Elbrus_2000),
130131
especially with hardware acceleration of [Streebog](https://en.wikipedia.org/wiki/Streebog) and
131132
[Kuznyechik](https://en.wikipedia.org/wiki/Kuznyechik), which are required for Merkle tree, etc.
@@ -550,9 +551,9 @@ Of course, in addition to this, your toolchain must ensure the reproducibility o
550551
For more information please refer to [reproducible-builds.org](https://reproducible-builds.org/).
551552

552553
#### Containers
553-
There are no special traits nor quirks if you use _libmdbx_ ONLY inside
554-
the single container. But in a cross-container(s) or with a host-container(s)
555-
interoperability cases the three major things MUST be guaranteed:
554+
There are no special traits nor quirks if you use libmdbx ONLY inside the single container.
555+
But in a cross-container cases or with a host-container(s) mix the two major things MUST be
556+
guaranteed:
556557

557558
1. Coherence of memory mapping content and unified page cache inside OS
558559
kernel for host and all container(s) operated with a DB. Basically this
@@ -568,12 +569,6 @@ in the system memory.
568569
including `ERROR_ACCESS_DENIED`,
569570
but not the `ERROR_INVALID_PARAMETER` as for an invalid/non-existent PID.
570571

571-
3. The versions/builds of _libmdbx_ and `libc`/`pthreads` (`glibc`, `musl`, etc) must be be compatible.
572-
- Basically, the `options:` string in the output of `mdbx_chk -V` must be the same for host and container(s).
573-
See `MDBX_LOCKING`, `MDBX_USE_OFDLOCKS` and other build options for details.
574-
- Avoid using different versions of `libc`, especially mixing different implementations, i.e. `glibc` with `musl`, etc.
575-
Prefer to use the same LTS version, or switch to full virtualization/isolation if in doubt.
576-
577572
#### DSO/DLL unloading and destructors of Thread-Local-Storage objects
578573
When building _libmdbx_ as a shared library or use static _libmdbx_ as a
579574
part of another dynamic library, it is advisable to make sure that your

libmdbx/VERSION.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{ "git_describe": "v0.14.1-0-ga13147d1", "git_timestamp": "2025-05-06T14:15:36+03:00", "git_tree": "1c8f0e50d4b62e8e5a881a86b049d6a3e17a3edd", "git_commit": "a13147d115ff87e76046d019af5a60b42f4ad323", "semver": "0.14.1" }
1+
{ "git_describe": "v0.13.8-0-g4d58857f", "git_timestamp": "2025-08-31T14:56:32+03:00", "git_tree": "ecce9823410762bee1bfec5e72f15b7fa19713cb", "git_commit": "4d58857f8fd0aba400706610ba05ba4dd869f04e", "semver": "0.13.8" }

libmdbx/man1/mdbx_chk.1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
.\" Copyright 2015-2025 Leonid Yuriev <leo@yuriev.ru>.
22
.\" Copying restrictions apply. See COPYRIGHT/LICENSE.
3-
.TH MDBX_CHK 1 "2025-01-14" "MDBX 0.14"
3+
.TH MDBX_CHK 1 "2024-08-29" "MDBX 0.13"
44
.SH NAME
55
mdbx_chk \- MDBX checking tool
66
.SH SYNOPSIS

libmdbx/man1/mdbx_copy.1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
.\" Copyright 2015,2016 Peter-Service R&D LLC <http://billing.ru/>.
33
.\" Copyright 2012-2015 Howard Chu, Symas Corp. All Rights Reserved.
44
.\" Copying restrictions apply. See COPYRIGHT/LICENSE.
5-
.TH MDBX_COPY 1 "2025-01-14" "MDBX 0.14"
5+
.TH MDBX_COPY 1 "2024-08-29" "MDBX 0.13"
66
.SH NAME
77
mdbx_copy \- MDBX environment copy tool
88
.SH SYNOPSIS

libmdbx/man1/mdbx_drop.1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
.\" Copyright 2021-2025 Leonid Yuriev <leo@yuriev.ru>.
22
.\" Copyright 2014-2021 Howard Chu, Symas Corp. All Rights Reserved.
33
.\" Copying restrictions apply. See COPYRIGHT/LICENSE.
4-
.TH MDBX_DROP 1 "2025-01-14" "MDBX 0.14"
4+
.TH MDBX_DROP 1 "2024-08-29" "MDBX 0.13"
55
.SH NAME
66
mdbx_drop \- MDBX database delete tool
77
.SH SYNOPSIS

libmdbx/man1/mdbx_dump.1

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
.\" Copyright 2015,2016 Peter-Service R&D LLC <http://billing.ru/>.
33
.\" Copyright 2014-2015 Howard Chu, Symas Corp. All Rights Reserved.
44
.\" Copying restrictions apply. See COPYRIGHT/LICENSE.
5-
.TH MDBX_DUMP 1 "2025-01-14" "MDBX 0.14"
5+
.TH MDBX_DUMP 1 "2024-08-29" "MDBX 0.13"
66
.SH NAME
77
mdbx_dump \- MDBX environment export tool
88
.SH SYNOPSIS
@@ -12,8 +12,6 @@ mdbx_dump \- MDBX environment export tool
1212
[\c
1313
.BR \-q ]
1414
[\c
15-
.BR \-c ]
16-
[\c
1715
.BI \-f \ file\fR]
1816
[\c
1917
.BR \-l ]
@@ -43,9 +41,6 @@ Write the library version number to the standard output, and exit.
4341
.BR \-q
4442
Be quiet.
4543
.TP
46-
.BR \-c
47-
Concise mode without repeating keys in a dump, but incompatible with Berkeley DB and LMDB.
48-
.TP
4944
.BR \-f \ file
5045
Write to the specified file instead of to the standard output.
5146
.TP

libmdbx/man1/mdbx_load.1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
.\" Copyright 2015,2016 Peter-Service R&D LLC <http://billing.ru/>.
33
.\" Copyright 2014-2015 Howard Chu, Symas Corp. All Rights Reserved.
44
.\" Copying restrictions apply. See COPYRIGHT/LICENSE.
5-
.TH MDBX_LOAD 1 "2025-01-14" "MDBX 0.14"
5+
.TH MDBX_LOAD 1 "2024-08-29" "MDBX 0.13"
66
.SH NAME
77
mdbx_load \- MDBX environment import tool
88
.SH SYNOPSIS

libmdbx/man1/mdbx_stat.1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
.\" Copyright 2015,2016 Peter-Service R&D LLC <http://billing.ru/>.
33
.\" Copyright 2012-2015 Howard Chu, Symas Corp. All Rights Reserved.
44
.\" Copying restrictions apply. See COPYRIGHT/LICENSE.
5-
.TH MDBX_STAT 1 "2025-01-14" "MDBX 0.14"
5+
.TH MDBX_STAT 1 "2024-08-29" "MDBX 0.13"
66
.SH NAME
77
mdbx_stat \- MDBX environment status tool
88
.SH SYNOPSIS

0 commit comments

Comments
 (0)