ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° MDBX ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΠ΅ΡΠ΅ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠΌ ΠΎΡΠ²Π΅ΡΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΎΡ
Umehluko obaluleke kakhulu phakathi kwe-MDBX ne-LMDB:
- Ngokuyisisekelo, ukunakwa okwengeziwe kukhokhelwa ikhwalithi yekhodi, ukuhlolwa nokuhlola okuzenzakalelayo.
- Ukulawula okuphawulekayo ngesikhathi sokusebenza, kusukela ekuhloleni imingcele kuya ekucwaningweni kwangaphakathi kwezakhiwo zesizindalwazi.
- Ukuhlanganisa okuzenzakalelayo kanye nokuphathwa kosayizi wesizindalwazi okuzenzakalelayo.
- Ifomethi yesizindalwazi esisodwa sama-32-bit kanye namabhithi angama-64.
- Isilinganiso samavolumu esampula ngobubanzi (isilinganiso sombuzo wobubanzi).
- Ukusekela okhiye abakhulu ngokuphindwe kabili kunamakhekhe kanye nosayizi wekhasi lesizindalwazi elingakhethwa umsebenzisi.
ΠΡΠΏΡΡΠ΅Π½Π½ΡΠΉ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ Π² ΡΠ΅Π»ΠΈΠ·Ρ libmdbx ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ ΠΏΡΠΈΠ½ΡΡΠΎΠ³ΠΎ Π² Π°Π²Π³ΡΡΡΠ΅ 2019 ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΎ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² MDBX ΠΈ MithrilDB. ΠΡΠΈ ΡΡΠΎΠΌ Π² libmdbx Π±ΡΠ»ΠΎ ΡΠ΅ΡΠ΅Π½ΠΎ ΡΡΡΡΠ°Π½ΠΈΡΡ (ΡΠ°ΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ) ΠΌΠ°ΠΊΡΠΈΠΌΡΠΌ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π΄ΠΎΠ»Π³Π° ΠΈ ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ. ΠΠΎ ΡΠ°ΠΊΡΡ Π² ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½Π½ΠΎΠΌ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ ΡΠ΄Π΅Π»Π°Π½ΠΎ Π² 2-3 ΡΠ°Π·Π° Π±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ ΠΎΡΠ΅Π½ΠΈΠ²Π°Π»ΠΎΡΡ ΠΈ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π»ΠΎΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎ:
- Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° macOS ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌ Β«Π²ΡΠΎΡΠΎΠ³ΠΎ ΡΡΠ΅Π»ΠΎΠ½Π°Β»: FreeBSD, Solaris, DragonFly BSD, OpenBSD, NetBSD. ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° AIX ΠΈ HP-UX ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ.
- ΠΡΠΎΠ²Π΅Π΄Π΅Π½Π° ΡΠ°Π½Π°ΡΠΈΡ ΠΊΠΎΠ΄Π° ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Undefined Behavior Sanitizer ΠΈ Address Sanitizer, ΡΡΡΡΠ°Π½Π΅Π½Ρ Π²ΡΠ΅ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ ΠΏΡΠΈ ΡΠ±ΠΎΡΠΊΠ΅ Ρ Β«-WpedanticΒ», Π²ΡΠ΅ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ Coverity Static Analyzer ΠΈ Ρ.Π΄.
- Buyekeza
Izincazelo ze-API . - Π‘Π»ΠΈΡΠ½ΠΈΠ΅ (Π°ΠΌΠ°Π»ΡΠ³Π°ΠΌΠ°ΡΠΈΡ) ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π΄Π»Ρ ΡΠ΄ΠΎΠ±ΡΡΠ²Π° Π²ΡΡΡΠ°ΠΈΠ²Π°Π½ΠΈΡ.
- CMake ukwesekwa.
- Ukusekela kokwenziwayo okufakwe esidlekeni.
- Kusetshenziswa i-bootid ukuthola ukuthi i-OS isiqalile yini kabusha (i-database stop engcolile).
- Π‘ΠΊΠ²ΠΎΠ·Π½ΠΎΠΉ ΠΏΠΎΠ΄ΡΡΡΡ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ½Π½ΡΡ /ΡΡΠ°ΡΡΡ ΡΡΡΠ°Π½ΠΈΡ ΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΡ .
- Inketho MDBX_ACCEDE yokuxhuma kusizindalwazi esivele sivuliwe ngemodi ehambisanayo.
- Sebenzisa
I-OFD iyavimba uma ikhona. - Ikhophi yasenqolobaneni eshisayo.
- Π‘ΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ (Π΄ΠΎ 2-3 ΡΠ°Π· Π±ΡΡΡΡΠ΅Π΅ Β«qsort()Β» ΠΈ Π΄ΠΎ 30% Π±ΡΡΡΡΠ΅Π΅ Β«std::sort()Β»).
- Ubude obukhulu bokhiye bunyusiwe.
- Ukulawula okuzenzakalelayo kokufunda kusengaphambili (isu lokulondoloza ifayela lesizindalwazi enkumbulweni).
- Ukuhlanganisa okuzenzakalelayo okunolaka nokushesha.
- Isu elilunge kakhulu lokuhlanganisa amakhasi esihlahla se-B+.
- ΠΠΎΠ½ΡΡΠΎΠ»Ρ Π½Π΅Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ ΡΠΈΡΡΠ΅ΠΌ (NFS, Samba ΠΈ Ρ.ΠΏ.) Π΄Π»Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ²ΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ ΠΠ ΠΏΡΠΈ Π½Π΅Π²Π΅ΡΠ½ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ.
- Isethi yokuhlola inwetshiwe.
Ukuthuthukiswa kwenguqulo "elandelayo" ye-libmdbx kuzoqhubeka njengephrojekthi ehlukile
- Akuhambisani nhlobo: I-MithrilDB idinga ifomethi yefayela lesizindalwazi ehlukile (engahambelani) kanye ne-API ehlukile (engahambelani) ukuze isebenzise zonke izici ezihleliwe.
- Ikhodi entsha yomthombo: Ikhodi yomthombo ye-MithrilDB yenziwe yanelayisense yokuzimela ku-LMDB, futhi iphrojekthi ngokwayo ihlelelwe ukuthi ishicilelwe ngaphansi kwelayisensi ehlukile (evunywe
NOMA UMA Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ Apache 2.0, Π° Π½Π΅Ilayisensi Yomphakathi ye-OpenLDAP ). - Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΡ ΠΏΡΡΠ°Π½ΠΈΡΡ, Π²Π½Π΅ΡΡΠΈ Π±ΠΎΠ»ΡΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΡΡΠΈ ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ ΠΏΡΡΠΈ ΡΠ°Π·Π²ΠΈΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ².
I-MithrilDB, njenge-MDBX, nayo isekelwe ku
- ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΠ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ°Π·Π½ΠΎΡΠΎΠ΄Π½ΡΡ Π½ΠΎΡΠΈΡΠ΅Π»ΡΡ : HDD, SSD ΠΈ ΡΠ½Π΅ΡΠ³ΠΎΠ½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ.
- ΠΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΠ΅ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ Π΄Π»Ρ Β«ΡΠ΅Π½Π½ΡΡ Β» ΠΈ Β«ΠΌΠ°Π»ΠΎΡΠ΅Π½Π½ΡΡ Β», Π΄Π»Ρ Β«Π³ΠΎΡΡΡΠΈΡ Β», Β«ΡΠ΅ΠΏΠ»ΡΡ Β» ΠΈ Β«Ρ ΠΎΠ»ΠΎΠ΄Π½ΡΡ Β» Π΄Π°Π½Π½ΡΡ .
- ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Merkle tree Π΄Π»Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΠΈ ΠΠ.
- ΠΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ WAL ΠΈ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠ°Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π² ΡΡΠ΅Π½Π°ΡΠΈΡΡ Ρ ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎΠΉ Π·Π°ΠΏΠΈΡΡΡ ΠΈ Π³Π°ΡΠ°Π½ΡΠΈΡΠΌΠΈ Π½Π° ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΡ Π΄Π°Π½Π½ΡΡ .
- ΠΠ΅Π½ΠΈΠ²Π°Ρ Π΄ΠΎΠ³ΠΎΠ½ΡΡΡΠ°Ρ ΡΠΈΠΊΡΠ°ΡΠΈΡ Π΄Π°Π½Π½ΡΡ Π½Π° Π΄ΠΈΡΠΊΠ°Ρ .
Source: opennet.ru