Nova strategija razvoja za projekat libmdbx

Projekt libmdbx predstavio je novu strategiju razvoja, istovremeno najavljujući promjenu u svom modelu razvoja i distribucije. Izvorni kod libmdbx-a ostat će otvorenog koda i dobivat će visokokvalitetnu besplatnu podršku, ali će se razvoj sada provoditi interno, a rezultat će biti objavljen samo u objedinjenom obliku. Strategija razvoja najavljuje prelazak na dugo najavljivani projekt MithrilDB, koji podržava više formata baza podataka pod fasadom zajedničkog API-ja. Podrška za starije baze podataka je eksplicitno navedena, sve dok je korisnicima potrebna.

Iako je cijeli izvorni kod, uključujući testni okvir i internu dokumentaciju, prethodno bio javno dostupan, sada je dostupan samo objedinjeni izvorni kod biblioteke. Obećava se da će uskoro biti predstavljen prošireni primjer korištenja C++ API-ja, koji će poslužiti i kao jednostavan smoke test. Razlozi za to su detaljno objašnjeni u komentarima ugrađenim u slajdove prezentacije. Konkretno, cilj je isporučiti biblioteku u potpuno razvijenom obliku, bez zavisnosti potrebnih samo za njen razvoj i dubinsko testiranje.

Pored otkrivanja trenutno razvijanih i planiranih mogućnosti libmdbx-a, objavljena strategija je također najavila ključne karakteristike novog formata baze podataka i mogućnosti koje on pruža:

  • Poboljšano prefiksno stablo postavljeno preko Merkle stabla formiranog osnovnom strukturom B+ stabla. Struktura će biti slična Patricia stablu, ali su doslovni format i tehnički detalji prilično drugačiji.
  • Podrška za duge ključeve i kompresiju prefiksa. Numerisanje elemenata od kraja do kraja za preciznu procjenu kardinalnosti. Podrška za velike BLOB objekte u režimu strujanja.
  • Opcionalno korištenje memorijski mapiranih datoteka baze podataka. Podrška za šifriranje i kompresiju podataka.
  • Pružanje novog API-ja koji intenzivno koristi SWIG za automatsko generiranje povezivanja s popularnim programskim jezicima.
  • Podrška za replikaciju implementirana je uzimajući u obzir iskustvo stečeno tokom razvoja ReOpenLDAP-a.

    Tokom prezentacije uživo, također je najavljeno da namjeravaju pokušati kombinirati nekoliko implementacija napisanih u različitim jezicima, posebno C, C++ i Rustu, unutar MithrilDB-a, uz osiguranje transparentne međusobne interakcije (C/C++ aplikacije će moći koristiti Rust implementaciju i obrnuto).

    Među funkcijama koje se trenutno razvijaju i koje će uskoro postati dostupne, vrijedi spomenuti "Keširano pretraživanje". Ono pohranjuje pokazivače na podatke direktno unutar baze podataka, s izuzetno brzom provjerom njihove relevantnosti. Pretraživanje od korijena stabla do listova stranica zaustavlja se čim se dođe do stranice koja se nije promijenila od posljednje provjere odgovarajućeg elementa keša. Dakle, umjesto potpunog pretraživanja B-stabla, izvodi se minimalni mogući broj operacija, ovisno o količini promjena od posljednjeg preuzimanja podataka. Sve ovo zajedno pruža dramatično ubrzanje od desetina hiljada puta. U najgorem slučaju, takvo "keširano" pretraživanje nije sporije od standardnog.

    izvor: opennet.ru

  • Kupite pouzdan hosting za sajtove sa DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan web hosting sa DDoS zaštitom, VPS VDS servere | ProHoster