ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° MDBX ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΠ΅ΡΠ΅ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠΌ ΠΎΡΠ²Π΅ΡΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΎΡ
Π‘Π°ΠΌΡΠ΅ Π²Π°ΠΆΠ½ΡΠ΅ ΠΎΡΠ»ΠΈΡΠΈΡ MDBX, ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ LMDB:
- Asosan, kod sifati, sinov va avtomatik tekshiruvlarga ko'proq e'tibor beriladi.
- Parametrlarni tekshirishdan ma'lumotlar bazasi tuzilmalarining ichki auditiga qadar ishlash jarayonida sezilarli darajada ko'proq nazorat.
- Avtomatik ixchamlashtirish va ma'lumotlar bazasi hajmini avtomatik boshqarish.
- 32 va 64 bitli yig'ilishlar uchun yagona ma'lumotlar bazasi formati.
- ΠΡΠ΅Π½ΠΊΠ° ΠΎΠ±ΡΡΠΌΠ° Π²ΡΠ±ΠΎΡΠΎΠΊ ΠΏΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°ΠΌ (range query estimation).
- Pancakes va foydalanuvchi tomonidan tanlanadigan ma'lumotlar bazasi sahifasi hajmidan ikki baravar katta kalitlarni qo'llab-quvvatlash.
ΠΡΠΏΡΡΠ΅Π½Π½ΡΠΉ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ Π² ΡΠ΅Π»ΠΈΠ·Ρ 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 ΠΈ Ρ.Π΄.
- Yangilash
API tavsiflari . - Π‘Π»ΠΈΡΠ½ΠΈΠ΅ (Π°ΠΌΠ°Π»ΡΠ³Π°ΠΌΠ°ΡΠΈΡ) ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π΄Π»Ρ ΡΠ΄ΠΎΠ±ΡΡΠ²Π° Π²ΡΡΡΠ°ΠΈΠ²Π°Π½ΠΈΡ.
- CMake qo'llab-quvvatlash.
- Ichki tranzaktsiyalarni qo'llab-quvvatlash.
- OT qayta ishga tushirilganligini aniqlash uchun bootid-dan foydalanish (iflos ma'lumotlar bazasini to'xtatish).
- Π‘ΠΊΠ²ΠΎΠ·Π½ΠΎΠΉ ΠΏΠΎΠ΄ΡΡΡΡ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ½Π½ΡΡ /ΡΡΠ°ΡΡΡ ΡΡΡΠ°Π½ΠΈΡ ΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΡ .
- Mos rejimda allaqachon ochiq ma'lumotlar bazasiga ulanish uchun MDBX_ACCEDE opsiyasi.
- foydalanish
OFD blokirovkasi mavjud bo'lganda. - Quvurdagi issiq zaxira.
- Π‘ΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ (Π΄ΠΎ 2-3 ΡΠ°Π· Π±ΡΡΡΡΠ΅Π΅ Β«qsort()Β» ΠΈ Π΄ΠΎ 30% Π±ΡΡΡΡΠ΅Π΅ Β«std::sort()Β»).
- Maksimal kalit uzunligi oshirildi.
- Oldindan o'qishni avtomatik boshqarish (xotirada ma'lumotlar bazasi fayllarini keshlash strategiyasi).
- Yana agressiv va tezroq avtomatik ixchamlashtirish.
- B + daraxt sahifalarini birlashtirish uchun yanada maqbul strategiya.
- ΠΠΎΠ½ΡΡΠΎΠ»Ρ Π½Π΅Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ ΡΠΈΡΡΠ΅ΠΌ (NFS, Samba ΠΈ Ρ.ΠΏ.) Π΄Π»Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ²ΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ ΠΠ ΠΏΡΠΈ Π½Π΅Π²Π΅ΡΠ½ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ.
- Testlar majmuasi kengaytirildi.
libmdbx ning "keyingi" versiyasini ishlab chiqish alohida loyiha sifatida davom etadi
- To'liq mos kelmaydi: MithrilDB barcha rejalashtirilgan xususiyatlarni amalga oshirish uchun boshqa (mos kelmaydigan) ma'lumotlar bazasi fayl formati va boshqa (mos kelmaydigan) API talab qiladi.
- Yangi manba kodi: MithrilDB manba kodi LMDB-dan mustaqil litsenziyalangan va loyihaning o'zi boshqa litsenziya ostida nashr etilishi rejalashtirilgan (tasdiqlangan)
YoKI Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ Apache 2.0, Π° Π½Π΅OpenLDAP Public License ). - Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΡ ΠΏΡΡΠ°Π½ΠΈΡΡ, Π²Π½Π΅ΡΡΠΈ Π±ΠΎΠ»ΡΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΡΡΠΈ ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ ΠΏΡΡΠΈ ΡΠ°Π·Π²ΠΈΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ².
MithrilDB, MDBX kabi, ham asoslangan
- ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΠ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ°Π·Π½ΠΎΡΠΎΠ΄Π½ΡΡ Π½ΠΎΡΠΈΡΠ΅Π»ΡΡ : HDD, SSD ΠΈ ΡΠ½Π΅ΡΠ³ΠΎΠ½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ.
- ΠΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΠ΅ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ Π΄Π»Ρ Β«ΡΠ΅Π½Π½ΡΡ Β» ΠΈ Β«ΠΌΠ°Π»ΠΎΡΠ΅Π½Π½ΡΡ Β», Π΄Π»Ρ Β«Π³ΠΎΡΡΡΠΈΡ Β», Β«ΡΠ΅ΠΏΠ»ΡΡ Β» ΠΈ Β«Ρ ΠΎΠ»ΠΎΠ΄Π½ΡΡ Β» Π΄Π°Π½Π½ΡΡ .
- ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Merkle tree Π΄Π»Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΠΈ ΠΠ.
- ΠΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ WAL ΠΈ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠ°Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π² ΡΡΠ΅Π½Π°ΡΠΈΡΡ Ρ ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎΠΉ Π·Π°ΠΏΠΈΡΡΡ ΠΈ Π³Π°ΡΠ°Π½ΡΠΈΡΠΌΠΈ Π½Π° ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΡ Π΄Π°Π½Π½ΡΡ .
- ΠΠ΅Π½ΠΈΠ²Π°Ρ Π΄ΠΎΠ³ΠΎΠ½ΡΡΡΠ°Ρ ΡΠΈΠΊΡΠ°ΡΠΈΡ Π΄Π°Π½Π½ΡΡ Π½Π° Π΄ΠΈΡΠΊΠ°Ρ .
Manba: opennet.ru