αααααΆααα libmdbx 0.10.4 (MDBX) ααααΌαβααΆαβαααα ααβαααβααΆαβα’αα»ααααβααΌαααααΆαβαα·ααααααβαααααβαααααΉαβαααβααΆαβααααααβααααα½αβαααβααΆαβααααα·αααααΆαβααααα αα·αβαααααΆααα libfpta 0.3.9 (FPTA) αααβααΆαααααααβαααβα’αα»ααααβααΆααΆαβααααΆαβααβαα·ααααααβααΆαα½αβααΉαβαααααααααβαααααΆαααααααβαα·αβαααΆαααΆαα» αα ααΎ MDBX α αααααΆαααααΆααααΈαααααΌαααΆαα ααα αΆααααααα’αΆααααΆααααααααα’αα»αααααα OSI α ααααααααααααα·ααααα·ααΆα αα·αααααΆαααααααααα αα α»ααααααααΆααα’ααααααΌαααΆαααΆαααα ααααΌα ααΆ Russian Elbrus 2000 αααααα
ααΆαααααααα·ααΆααααα libmdbx ααΊααΆααααΎαααΆαα‘αΎααα·ααααΆααααΈααααα αα LMDB DBMS α αΎααααααΎαααΆααα»ααααα»αααααααααα½ααααα»αααΆαααΏααΆαα αααα»ααααααααα·ααα αα·αααΆαα’αα»ααααα ααΎαααααααααα ααΉα LMDB, libmdbx αααααααΎαα»αααΆαααΌα αααααααΆα API ααΆαααααΎααααα αα·αααΆααααα½ααα·αα·ααααααααααααααααααα·α α§αααααααααΎααααΆαααααααΆαααα·αα·αααααΎαααΆααα»α αα·ααααα ααΆααααααααααΌαααααΆααα·αααααααααααΆααααααααΆααααααααααα½αα ααα½αααααΌαααΆαααααααααααα
ααΆααα αα αααα·ααααΆ libmdbx αααααααΌα ACID ααΆαααααΆααααααΌαααααΉαααΆα serialization αα·αααΆαα’αΆαααααα·ααααααααΆααααΆαα½αααΉαααΆαααααΎααΆαααααααΆαααΈααα’αααααααααΆααααααΌααααΈααΈααΌα ααΆαααααα½ααααααααααααααααα· ααΆααααααααααααα αααΌαααααΆααα·αααααααααααααααααααααα· αα·αααΆααααΆαααααααΆααααα½ααα½αααααΌαααΆαααΆααααα α αΆααααΆααααΈααααΆα 2016 αα ααααααααΆααΆααααΌαααΆααααααααΌααα·αα·ααα Positive Technologies α αΎαα αΆααααΆααααΈααααΆα 2017 ααααΌαααΆαααααΎααααΆαααα αααα»αααα·ααααααααααα½αα
libmdbx αααααααΌα C++ API ααααΌα ααΆααΆαα αααΆααΆαααααΆαααααααα’αααα αΌαα α·ααααααααΆαα Rust, Haskell, Python, NodeJS, Ruby, Go αα·α Nim α αααααΆαα libfpta ααΆαααααΆααα·αααααΆ API ααα»ααααααααααΆαααΆααΆααΆααααααα»αααααααααΆα―αααΆαααααααΆ C/C++ α
ααΆαα αααααααα·α ααΆααααααα’ αα·αααΆααααααααΌαααααΆαααααΆαααααααα αΆααααΆααααΈααααααΆααα»ααα ααααααΈ 9 ααα§αααΆα
- ααΎαααααΎαααΆααααααΎαα‘αΎααα·αα
- ααΆααα½ααα»αααα α»ααα½α αααααΆααααα»αααΆαααααααααααα ααααα·ααα»α/ααΆααααααα’αΆα ααΎαα‘αΎαααα‘α»ααααααααα·ααααα·ααΆαα αααα αΆβαααβααααΌαβααΆαβααβααΎαβαααβα’αααβα―ααααβαα αα αααα·ααααΆβαα·αααααΆαβαααα»αβα’αα‘α»αβαααβααΆαβααααΎβαααααβααααβαααα»αβααβααα·αααβααααΆααβαααα½αα
- ααΆαααααΎαααααααααΌαααΆααααααα’ α αΎαααααΆααΈαααΌααΆαααααααααΌαααΆααααααΈα ααΎααααΈαα·αα·αααααΎαααααΆαααΆαααααα·ααααααΆ isomorphic αααα’αΆα αα αααααΆαααΆααα’ααααααααααααααΆα αα·αααΆαα·ααΆ GC αα αααα»αααΌαααααΆααα·ααααααα
- αα αααα»α C++ API, "noexcept" ααααααααααΌαααΆααα½ααα»α ααΆααααα»αααΎαααααααααααααααααΌαααΆααααααααααααΆαα "cursor::erase()" method ααΆαα’αα»αααααα buffers ααααΌαααΆααα»αα αααααα»αααΆαααααΎααααΆαα "std::string" ααΎααααΈααΆααΆααΆααααααΉα (ααΆααααααααααααΆαα CLANG libstdc++)α
- ααΆαααααααααααα αααα»ααααα½ααααααααΆαααΆααααααααααααααααα (ααΆαα αααΆαα ααααΆαααααΎαααΎααααααααΌαααααΆααα·αααααααααααΆαααααΆααααααΌα) αααααααΌαααΆααααα αΆααααααα α»α MDBX_PROBLEM ααααααααα·αααΆαααααΉααα»ααα αααααααΆααααααΌααα·αααααααααα»αααααα·ααααα·ααΆαααααααααΌαααΆααα»αα ααα
- ααΆαααααΎαααααααααΆααααΆαααααΌαααΆαα’αα»ααααααΆαα½αααΉαααΆαααααααααΆααααα½ααα·αα·ααααα½αα ααα½αααΎααααΈααΆααΆα±ααααΆααααααααΆααααα»αααααΈααΆαααΆαααΌα ααΆααααα ααααΆαααααΌαααααΆααα·ααααααα
- ααΆααα½ααα»αααΆααααααΆαααΌα ααΆα UndefinedBehaviorSanitizer αα·α Coverity Scan αααα αΆα
- αα½ααα»αααΆααα·αα·αααααΎαααΆαα α½ααααα αα·ααααααααΎαααααΆααααα»α βP_DIRTYβ αα αααα»αααααααααααΆαααα αααα»αααΌαααΆαααΌαααααΆααα·ααααααααααααααΎαα‘αΎααααααααα αΆαααααααααΆαααα
- αα αααα»αααααααΈα CMake ααΆαααααααααααΆαααΆαα»α ααααααααααααΌαααΆααααααΆαα LTO (ααΆααααααΎαααααα·αααααΆααααααααΆααααΆαα) ααααΌαααΆαααααΎα±αααααααΎαα‘αΎαα
- α ααα½αα’αα·ααααΆααα’αααα’αΆααααα»ααααααααΆαααααΆααααΌαααΆαααΎαα‘αΎαααα 32767α
- ααααΎαααΆααααααΎαα‘αΎααα αααααααΎ Valgrind αα·α AddressSanitizer α
- αα ααΎ Windows ααΆαααααΎααααΆαα SRW-lock ααααααα αααααααΎααΆααααα»ααααα MDBX_NOTLS (ααααα·αααααΎααΆααααα»ααααα»αααααα) ααααΌαααΆααα»αα αα ααααΆαα bootid ααααΌαααΆααα½ααα»α ααααα·αααΎααααααααααααααΆαααααΆααααααΌα ααΆαααααΎα WSL1 αα·α WSL2 ααααΌαααΆαααααΎα±αααααααΎαα‘αΎα α αΎααααααααΆααααα»αααΆα ααΎαααΌαααααΆααα·αααααααα ααΎαααααΆα 9 αααααΆαααααααΆαααα DrvFS ααααΌαααΆαααααααα
- ααα»ααα ααΆαααααΆααααααΌαα αααΎαααΆα 160 ααααΌαααΆαααααΎα‘αΎαα αααα 57 α―αααΆα ~ 5000 αααααΆααααααΌαααΆααααααα ~ 2500 ααααΌαααΆααα»αα
αααα»αααΌαα’ααα»αααΆαα·αααααααααα»ααααααα Erigon (ααααααααα’αααΌ Ethereum) αααααΆαααααα½ααααααα½ααααααα»αααΆαααααΎααααααα
αααα»αααααΆααΈαααΌααααΆαααααΎααααΆααααααΆααα ααΆαα½αα±ααααααααααΆααααΆαααα»ααααααα 0.10.0 ααα
αΆααααΆααααΈααΆαα
ααααααΆα libmdbx v1 ααΆαα½αααΉαααα·ααΆαααΌαααααΆααα·αααααα 2-7 TB αααα»αααΆαααα‘αΎα Erigon ααΈαα½αα (ααααΎααΎ XNUMX% ααααααΆαα Ethereum) ααΆααααααΆαααΆαααα
ααα½αααΈααα’αααΎαα»αααα½αααααΌαααααΆααα·ααααααααα»ααααααααααααΌαααΆαααα½αα αααααΎαα‘αΎααααααΆαα ααα»ααααΆααααα
αα·ααα·ααααααα α»αααααααααα αααα»αααααΈααΈαααΌαα ααα»ααΊ RAM αααΆααα α αΎαααΈααΈααΆαααα α»ααααα»αααΆαααααααα·ααααααα‘αΎααα·ααααα»αααΆαααααααα
ααΆααααααααααΆααααΆααααααααααααααααΆααααα»ααααααααΎ BTRFS α
ααααα: opennet.ru