Nová vývojová strategie pro projekt libmdbx

Projekt libmdbx představil novou vývojovou strategii a zároveň oznámil změnu ve svém vývojovém a distribučním modelu. Zdrojový kód libmdbx zůstane open source a bude poskytovat vysoce kvalitní bezplatnou podporu, ale vývoj bude nyní probíhat interně a výsledek bude publikován pouze ve sloučené podobě. Vývojová strategie deklaruje přechod k dlouho anonymizovanému projektu MithrilDB, který podporuje více databázových formátů pod fasádou společného API. Podpora starších databází je výslovně uvedena, pokud ji uživatelé vyžadují.

Zatímco celý zdrojový kód, včetně testovacího frameworku a interní dokumentace, byl dříve veřejně dostupný, nyní je k dispozici pouze sloučený zdrojový kód knihovny. Brzy bude slíben rozšířený příklad použití C++ API, který bude sloužit i jako jednoduchý kouřový test. Důvody jsou podrobně vysvětleny v komentářích vložených do prezentačních snímků. Konkrétně je cílem dodat knihovnu v plně rozvinuté podobě, bez závislostí potřebných pouze pro její vývoj a hloubkové testování.

Kromě zveřejnění aktuálně vyvíjených a plánovaných funkcí knihovny libmdbx zveřejněná strategie také oznámila klíčové vlastnosti nového databázového formátu a možnosti, které nabízí:

  • Vylepšený prefixový strom navrstvený na vrcholu Merkleova stromu, tvořeného základní strukturou B+ stromu. Struktura bude podobná Patriciině stromu, ale literální formát a technické detaily se značně liší.
  • Podpora dlouhých klíčů a komprese prefixů. Číslování prvků od začátku do konce pro přesný odhad mohutnosti. Podpora velkých BLOB objektů v režimu streamování.
  • Volitelné použití databázových souborů mapovaných do paměti. Podpora šifrování a komprese dat.
  • Poskytování nového API, které ve velké míře využívá SWIG k automatickému generování vazeb na populární programovací jazyky.
  • Podpora replikace je implementována s ohledem na zkušenosti získané během vývoje ReOpenLDAP.

    Během osobní prezentace bylo také oznámeno, že se v rámci MithrilDB chtějí pokusit zkombinovat několik implementací napsaných v různých jazycích, zejména C, C++ a Rustu, a zároveň zajistit transparentní vzájemnou interakci (aplikace C/C++ budou moci používat implementaci Rust a naopak).

    Mezi funkcemi, které jsou v současné době vyvíjeny a brzy budou k dispozici, stojí za zmínku „Vyhledávání v mezipaměti“. Ukládá ukazatele na data přímo v databázi s extrémně rychlým ověřením jejich relevance. Vyhledávání od kořene stromu k listovým stránkám se zastaví, jakmile se dosáhne stránky, která se nezměnila od poslední kontroly odpovídajícího prvku mezipaměti. Místo úplného vyhledávání v B-stromu se tedy provádí minimální možný počet operací v závislosti na objemu změn od posledního načtení dat. To vše dohromady poskytuje dramatické zrychlení až desítky tisíckrát. V nejhorším případě není takové „vyhledávání v mezipaměti“ pomalejší než standardní vyhledávání.

    Zdroj: opennet.ru

  • Kupte si spolehlivý hosting pro stránky s DDoS ochranou, VPS VDS servery 🔥 Kupte si spolehlivý webhosting s ochranou DDoS, VPS VDS servery | ProHoster