mirror of
https://gitflic.ru/project/erthink/libmdbx.git
synced 2025-01-10 02:06:47 +00:00
mdbx: незначительные правки README.
This commit is contained in:
parent
529b0357e8
commit
5652b360b9
47
README.md
47
README.md
@ -5,12 +5,10 @@
|
|||||||
> and pay attention to the [`C++` API](https://gitflic.ru/project/erthink/libmdbx/blob?file=mdbx.h%2B%2B#line-num-1).
|
> and pay attention to the [`C++` API](https://gitflic.ru/project/erthink/libmdbx/blob?file=mdbx.h%2B%2B#line-num-1).
|
||||||
|
|
||||||
> Questions, feedback and suggestions are welcome to the [Telegram' group](https://t.me/libmdbx).
|
> Questions, feedback and suggestions are welcome to the [Telegram' group](https://t.me/libmdbx).
|
||||||
|
> See the [ChangeLog](https://gitflic.ru/project/erthink/libmdbx/blob?file=ChangeLog.md) for `NEWS` and latest updates.
|
||||||
|
|
||||||
> For NEWS take a look to the [ChangeLog](https://gitflic.ru/project/erthink/libmdbx/blob?file=ChangeLog.md)
|
> Donations are welcome to ETH `0xD104d8f8B2dC312aaD74899F83EBf3EEBDC1EA3A`.
|
||||||
> or the [TODO](https://gitflic.ru/project/erthink/libmdbx/blob?file=TODO.md).
|
> Всё будет хорошо!
|
||||||
|
|
||||||
Donations are welcome to ETH `0xD104d8f8B2dC312aaD74899F83EBf3EEBDC1EA3A`.
|
|
||||||
Всё будет хорошо!
|
|
||||||
|
|
||||||
|
|
||||||
libmdbx
|
libmdbx
|
||||||
@ -94,15 +92,15 @@ However, _MithrilDB_ will not be available for countries unfriendly to
|
|||||||
Russia (i.e. acceded the sanctions, devil adepts and/or NATO). But it is
|
Russia (i.e. acceded the sanctions, devil adepts and/or NATO). But it is
|
||||||
not yet known whether such restriction will be implemented only through
|
not yet known whether such restriction will be implemented only through
|
||||||
a license and support, either the source code will not be open at all.
|
a license and support, either the source code will not be open at all.
|
||||||
Basically we are not inclined to allow our work to contribute to the
|
Basically I am not inclined to allow my work to contribute to the
|
||||||
profit that goes to weapons that kill our relatives and friends.
|
profit that goes to weapons that kill my relatives and friends.
|
||||||
NO OPTIONS.
|
NO OPTIONS.
|
||||||
|
|
||||||
Nonetheless, I try not to make any promises regarding _MithrilDB_ until release.
|
Nonetheless, I try not to make any promises regarding _MithrilDB_ until release.
|
||||||
|
|
||||||
Contrary to _MithrilDB_, _libmdbx_ will forever free and open source.
|
Contrary to _MithrilDB_, _libmdbx_ will forever free and open source.
|
||||||
Moreover with high-quality support whenever possible. Tu deviens
|
Moreover with high-quality support whenever possible. Tu deviens
|
||||||
responsable pour toujours de ce que tu as apprivois. So we will continue
|
responsable pour toujours de ce que tu as apprivois. So I will continue
|
||||||
to comply with the original open license and the principles of
|
to comply with the original open license and the principles of
|
||||||
constructive cooperation, in spite of outright Github sabotage and
|
constructive cooperation, in spite of outright Github sabotage and
|
||||||
sanctions. I will also try to keep (not drop) Windows support, despite
|
sanctions. I will also try to keep (not drop) Windows support, despite
|
||||||
@ -375,14 +373,13 @@ conference](http://www.highload.ru/2015/abstracts/1831.html).
|
|||||||
|
|
||||||
Since 2017 _libmdbx_ is used in [Fast Positive Tables](https://gitflic.ru/project/erthink/libfpta),
|
Since 2017 _libmdbx_ is used in [Fast Positive Tables](https://gitflic.ru/project/erthink/libfpta),
|
||||||
and until 2025 development was funded by [Positive Technologies](https://www.ptsecurity.com).
|
and until 2025 development was funded by [Positive Technologies](https://www.ptsecurity.com).
|
||||||
|
|
||||||
Since 2020 _libmdbx_ is used in Ethereum: [Erigon](https://github.com/erigontech/erigon), [Akula](https://github.com/akula-bft/akula),
|
Since 2020 _libmdbx_ is used in Ethereum: [Erigon](https://github.com/erigontech/erigon), [Akula](https://github.com/akula-bft/akula),
|
||||||
[Silkworm](https://github.com/erigontech/silkworm), [Reth](https://github.com/paradigmxyz/reth), etc.
|
[Silkworm](https://github.com/erigontech/silkworm), [Reth](https://github.com/paradigmxyz/reth), etc.
|
||||||
|
|
||||||
On 2022-04-15 the Github administration, without any warning nor
|
On 2022-04-15 the Github administration, without any warning nor
|
||||||
explanation, deleted _libmdbx_ along with a lot of other projects,
|
explanation, deleted _libmdbx_ along with a lot of other projects,
|
||||||
simultaneously blocking access for many developers. Therefore on
|
simultaneously blocking access for many developers. Therefore on
|
||||||
2022-04-21 we have migrated to a reliable trusted infrastructure.
|
2022-04-21 I have migrated to a reliable trusted infrastructure.
|
||||||
The origin for now is at [GitFlic](https://gitflic.ru/project/erthink/libmdbx)
|
The origin for now is at [GitFlic](https://gitflic.ru/project/erthink/libmdbx)
|
||||||
with backup at [ABF by ROSA Лаб](https://abf.rosalinux.ru/erthink/libmdbx).
|
with backup at [ABF by ROSA Лаб](https://abf.rosalinux.ru/erthink/libmdbx).
|
||||||
For the same reason ~~Github~~ is blacklisted forever.
|
For the same reason ~~Github~~ is blacklisted forever.
|
||||||
@ -612,16 +609,16 @@ tests. If something goes wrong, it is recommended to install
|
|||||||
|
|
||||||
To run the [long stochastic test scenario](test/stochastic.sh), you
|
To run the [long stochastic test scenario](test/stochastic.sh), you
|
||||||
will need to install the current (not outdated) version of
|
will need to install the current (not outdated) version of
|
||||||
[Bash](https://en.wikipedia.org/wiki/Bash_(Unix_shell)). To do this, we
|
[Bash](https://en.wikipedia.org/wiki/Bash_(Unix_shell)). To do this, I
|
||||||
recommend that you install [Homebrew](https://brew.sh/) and then execute
|
recommend that you install [Homebrew](https://brew.sh/) and then execute
|
||||||
`brew install bash`.
|
`brew install bash`.
|
||||||
|
|
||||||
### Android
|
### Android
|
||||||
We recommend using CMake to build _libmdbx_ for Android.
|
I recommend using CMake to build _libmdbx_ for Android.
|
||||||
Please refer to the [official guide](https://developer.android.com/studio/projects/add-native-code).
|
Please refer to the [official guide](https://developer.android.com/studio/projects/add-native-code).
|
||||||
|
|
||||||
### iOS
|
### iOS
|
||||||
To build _libmdbx_ for iOS, we recommend using CMake with the
|
To build _libmdbx_ for iOS, I recommend using CMake with the
|
||||||
["toolchain file"](https://cmake.org/cmake/help/latest/variable/CMAKE_TOOLCHAIN_FILE.html)
|
["toolchain file"](https://cmake.org/cmake/help/latest/variable/CMAKE_TOOLCHAIN_FILE.html)
|
||||||
from the [ios-cmake](https://github.com/leetal/ios-cmake) project.
|
from the [ios-cmake](https://github.com/leetal/ios-cmake) project.
|
||||||
|
|
||||||
@ -662,10 +659,17 @@ Bindings
|
|||||||
Performance comparison
|
Performance comparison
|
||||||
======================
|
======================
|
||||||
|
|
||||||
All benchmarks were done in 2015 by [IOArena](https://abf.io/erthink/ioarena)
|
Over the past 10 years, _libmdbx_ has had a lot of significant
|
||||||
|
improvements and innovations. _libmdbx_ has become a slightly faster in
|
||||||
|
simple cases and many times faster in complex scenarios, especially with
|
||||||
|
a huge transactions in gigantic databases. Therefore, on the one hand,
|
||||||
|
the results below are outdated. However, on the other hand, these simple
|
||||||
|
benchmarks are evident, easy to reproduce, and are close to the most
|
||||||
|
common use cases.
|
||||||
|
|
||||||
|
The following all benchmark results were obtained in 2015 by [IOArena](https://abf.io/erthink/ioarena)
|
||||||
and multiple [scripts](https://github.com/pmwkaa/ioarena/tree/HL%2B%2B2015)
|
and multiple [scripts](https://github.com/pmwkaa/ioarena/tree/HL%2B%2B2015)
|
||||||
runs on Lenovo Carbon-2 laptop, i7-4600U 2.1 GHz (2 physical cores, 4 HyperThreading cores), 8 Gb RAM,
|
runs on my laptop (i7-4600U 2.1 GHz, SSD MZNTD512HAGL-000L1).
|
||||||
SSD SAMSUNG MZNTD512HAGL-000L1 (DXT23L0Q) 512 Gb.
|
|
||||||
|
|
||||||
## Integral performance
|
## Integral performance
|
||||||
|
|
||||||
@ -696,7 +700,8 @@ Here showed sum of performance metrics in 3 benchmarks:
|
|||||||
## Read Scalability
|
## Read Scalability
|
||||||
|
|
||||||
Summary performance with concurrent read/search queries in 1-2-4-8
|
Summary performance with concurrent read/search queries in 1-2-4-8
|
||||||
threads on the machine with 4 logical CPUs in HyperThreading mode (i.e. actually 2 physical CPU cores).
|
threads on the machine with 4 logical CPUs in HyperThreading mode (i.e.
|
||||||
|
actually 2 physical CPU cores).
|
||||||
|
|
||||||
![Comparison #2: Read Scalability](https://libmdbx.dqdkfa.ru/img/perf-slide-2.png)
|
![Comparison #2: Read Scalability](https://libmdbx.dqdkfa.ru/img/perf-slide-2.png)
|
||||||
|
|
||||||
@ -761,10 +766,10 @@ records.
|
|||||||
execution time, cross marks standard deviation.
|
execution time, cross marks standard deviation.
|
||||||
|
|
||||||
**1,000,000 transactions in async-write mode**.
|
**1,000,000 transactions in async-write mode**.
|
||||||
In case of a crash all data is consistent and conforms to the one of last successful transactions,
|
In case of a crash all data is consistent and conforms to the one of
|
||||||
but lost transaction count is much higher than in
|
last successful transactions, but lost transaction count is much higher
|
||||||
lazy-write mode. All DB engines in this mode do as little writes as
|
than in lazy-write mode. All DB engines in this mode do as little writes
|
||||||
possible on persistent storage. _libmdbx_ uses
|
as possible on persistent storage. _libmdbx_ uses
|
||||||
[msync(MS_ASYNC)](https://linux.die.net/man/2/msync) in this mode.
|
[msync(MS_ASYNC)](https://linux.die.net/man/2/msync) in this mode.
|
||||||
|
|
||||||
In the benchmark each transaction contains combined CRUD operations (2
|
In the benchmark each transaction contains combined CRUD operations (2
|
||||||
|
Loading…
Reference in New Issue
Block a user