Π’Π΅ΠΊΡΡΠ°Ρ Π²Π΅ΡΡΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠΎΠΌΠΏΡΠΎΠΌΠΈΡΡΠΎΠΌ ΠΌΠ΅ΠΆΠ΄Ρ Π½Π°ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π²ΡΠΏΡΡΡΠΈΡΡ Π΄ΠΎΠ»Π³ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΡΡ Π²Π΅ΡΡΠΈΡ 1.0 Ρ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ C++ ΠΈ Π½Π΅ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ΠΌ ΠΎΡΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡ ΡΠ΅Π»ΠΈΠ·Ρ ΠΈΠ·-Π·Π° Π½Π΅Π³ΠΎΡΠΎΠ²Π½ΠΎΡΡΠΈ ΠΊ Π·Π°ΠΌΠΎΡΠΎΠ·ΠΊΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ C++ API. ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΠΉ ΡΠ΅Π»ΠΈΠ· ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ 9 ΠΌΠ΅ΡΡΡΠ΅Π² ΡΠ°Π±ΠΎΡΡ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΉ Π½Π° ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·Π°ΡΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΈ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΡΠ΄ΠΎΠ±ΡΡΠ²Π° Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ, Π° ΡΠ°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΡ Π²Π΅ΡΡΠΈΡ
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° libmdbx ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅ ΠΏΡΠΎΡΡΠΎ «ΡΠΎΡΠΊΠΎΠΌ», Π° ΠΊΠ°ΡΠ΄ΠΈΠ½Π°Π»ΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠΌ ΠΏΠΎΡΠΎΠΌΠΊΠΎΠΌ
libmdbx ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ
Π‘Π°ΠΌΡΠ΅ Π²Π°ΠΆΠ½ΡΠ΅ ΠΎΡΠ»ΠΈΡΠΈΡ MDBX, ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ LMDB:
- ΠΡΠΈΠ½ΡΠΈΠΏΠΈΠ°Π»ΡΠ½ΠΎ Π±ΠΎΠ»ΡΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΡ ΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ ΠΊΠ°ΡΠ΅ΡΡΠ²Ρ ΠΊΠΎΠ΄Π°, «Π½Π΅ΠΏΠ°Π΄ΡΡΠ΅ΡΡΠΈ» API, ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°ΠΌ.
- Π‘ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ Π±ΠΎΠ»ΡΡΠ΅ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ, Π½Π°ΡΠΈΠ½Π°Ρ ΠΎΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², Π΄ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ Π°ΡΠ΄ΠΈΡΠ° ΡΡΡΡΠΊΡΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ .
- ΠΠ²ΡΠΎ-ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ ΠΠ.
- ΠΠ΄ΠΈΠ½ΡΠΉ ΡΠΎΡΠΌΠ°Ρ ΠΠ Π΄Π»Ρ 32-Π±ΠΈΡΠ½ΡΡ ΠΈ 64-Π±ΠΈΡΠ½ΡΡ ΡΠ±ΠΎΡΠΎΠΊ.
- ΠΡΠ΅Π½ΠΊΠ° ΠΎΠ±ΡΡΠΌΠ° Π²ΡΠ±ΠΎΡΠΎΠΊ ΠΏΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°ΠΌ (range query estimation).
- ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΊΠ»ΡΡΠ΅ΠΉ Π²Π΄Π²ΠΎΠ΅ Π±ΠΎΠ»ΡΡΠ΅ΠΉ Π΄Π»ΠΈΠ½Ρ ΠΈ Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ ΡΠ°Π·ΠΌΠ΅Ρ ΡΡΡΠ°Π½ΠΈΡΡ ΠΠ.
- Π£ΡΠΈΠ»ΠΈΡΠ° ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΠΈ ΡΡΡΡΠΊΡΡΡΡ ΠΠ Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌΠΈ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ.
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ Π½ΠΎΠ²ΡΠ΅ΡΡΠ²Π° ΠΈ Π΄ΠΎΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΠΎΡΠ»Π΅
- ΠΠ»Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΠΈ ΠΎΡΠ²Π΅ΡΠΎΠ² Π½Π° Π²ΠΎΠΏΡΠΎΡΡ ΡΠΎΠ·Π΄Π°Π½Π° ΠΎΡΠΊΡΡΡΠ°Ρ
Π³ΡΡΠΏΠΏΠ° Π² Π’Π΅Π»Π΅Π³ΡΠ°ΠΌ . - Π£ΡΡΡΠ°Π½Π΅Π½ΠΎ Π±ΠΎΠ»Π΅Π΅ Π΄Π΅ΡΡΡΠΊΠ° ΠΎΡΠΈΠ±ΠΎΠΊ ΠΈ Π½Π΅Π΄ΠΎΡΠ΅ΡΠΎΠ² (ΡΠΌ.
ΠΆΡΡΠ½Π°Π» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ). - ΠΡΠΏΡΠ°Π²Π»Π΅Π½Π° ΠΌΠ°ΡΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΎΠΊ ΠΈ ΠΎΡΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΡΠΈΠ±ΠΎΠΊ, ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΊΠΎΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ.
- Π Π°ΡΡΠΈΡΠ΅Π½Ρ ΡΠ΅ΡΡΠΎΠ²ΡΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΠΈ.
- Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° iOS, Android,
buildroot ,Musl ,uClibc ,WSL1 ΠΈWine . - ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π° ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½Π°Ρ Π²Π΅ΡΡΠΈΡ C++ API Π²
ΠΎΠ΄Π½ΠΎΠΌ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ . - ΠΡΠΎΡΠΌΠ»Π΅Π½Π° Π²ΡΡΡΠΎΠ΅Π½Π½Π°Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ Doxygen ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ
Online Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ . - ΠΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π°ΡΡ ΠΈΠ²ΠΎΠ² Ρ Π°ΠΌΠ°Π»ΡΠ³Π°ΠΌΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌΠΈ ΡΠ΅ΠΊΡΡΠ°ΠΌΠΈ.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ ΠΈ ΠΊΡΡΡΠΎΡΠΎΠ², ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠΎΠ² Π΄Π»Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ ΠΈ ΠΊΡΡΡΠΎΡΠΎΠ².
- Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ ΡΡΡΠ»ΠΎΡΠ½ΠΎΠΉ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΠΈ Π² MVCC-ΡΠ½ΠΈΠΌΠΊΠ°Ρ B+tree.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ MVCC-ΡΠ½ΠΈΠΌΠΊΠ° ΠΠ, Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π· Π»ΡΠ±ΡΡ ΠΌΠ΅ΡΠ°-ΡΡΡΠ°Π½ΠΈΡΡ Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π΄Π»Ρ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ.
- Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΎΡΠΊΡΡΡΠΈΡ ΠΠ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° Π² ΡΠ΅Π»ΡΡ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Ρ.ΠΏ.
- Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΎΠΏΡΠΈΠΈ MDBX_NOSUBDIR ΠΏΡΠΈ ΠΎΡΠΊΡΡΡΠΈΠΈ ΠΠ.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Ρ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ ΠΈΠ· Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ ΡΠΎΡΠΊΠΈ ΠΈ «ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΡ » ΡΠΈΡΠ΅Π» JavaScript.
- Π‘ΡΠΌΠΌΠ°ΡΠ½ΠΎ Π²Π½Π΅ΡΠ΅Π½ΠΎ 430 ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π·Π°ΡΡΠΎΠ½ΡΠ²ΡΠΈΡ 93 ΡΠ°ΠΉΠ»Π°, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ Π±ΠΎΠ»Π΅Π΅ 25 ΡΡΡΡΡ ΡΡΡΠΎΠΊ, Π±ΠΎΠ»Π΅Π΅ 8.5 ΡΡΡΡΡ ΡΡΡΠΎΠΊ ΡΠ΄Π°Π»Π΅Π½ΠΎ.
ΠΠΎΡΠ»Π΅Π΄ΡΡΡΠ°Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° libmdbx Π±ΡΠ΄Π΅Ρ ΡΠΎΡΡΠ΅Π΄ΠΎΡΠΎΡΠ΅Π½Π° Π½Π° ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΡΠΈΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ C++ API, Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΉ ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·Π°ΡΠΈΠΈ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΡΠ΄ΠΎΠ±ΡΡΠ²Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Π΄Π»Ρ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ
Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²ΠΎΠ² Linux. ΠΠ· ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌΡΡ
Π΄ΠΎΡΠ°Π±ΠΎΡΠΎΠΊ ΡΡΠΎΠΈΡ ΠΎΡΠΌΠ΅ΡΠΈΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΠΊΠ»ΡΡΠ΅ΠΉ Π² ΡΠΎΡΠΌΠ°ΡΠ΅
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru