K dispozici je vestavěný úložný engine TidesDB 1.0, podporující ACID transakce

Byl zveřejněn první stabilní vydání projektu TidesDB, který rozvíjí knihovnu pro ukládání dat ve formátu klíč/hodnota. Projekt může být používán jako samostatně spustitelný engine nebo pro integraci do aplikací. Mezi klíčové vlastnosti patří podpora ACID transakcí a optimalizace pro efektivní ukládání dat na Flash pamětech a v operační paměti. Kód je napsán v jazyce C a distribuován pod licencí MPL 2.0. Obalové kódy jsou připraveny pro jazyky C++, Go, Java, Python, Rust, Lua a JavaScript.

Pro ukládání dat je použita struktura LSM-tree (logicky strukturované stromy se slučováním), která zajišťuje vysoký výkon nejen při čtení, ale i při provádění operací zápisu a změny dat. Operace čtení neblokují zápis a čtení dat, zatímco operace zápisu blokují pouze rodinu sloupců, ve které se zápis provádí. Pro další zrychlení čtení jsou podporovány indexy a cachování na bázi bloom filtrů (umožňují zkontrolovat přítomnost ve většině a povolují falešné určení chybějícího prvku, ale vylučují přeskočení existujícího prvku).

Existuje plná podpora ACID transakcí, které umožňují atomické provádění změn zahrnujících rodiny sloupců a v případě potřeby atomické vracení operací. Data mohou být ukládána v komprimované podobě s výběrem algoritmu komprese v závislosti na rodině sloupců. Je možné nastavit zámky na úrovni jednotlivých rodin sloupců a balení úložiště v paralelním režimu bez blokování provádění operací s databází.

Hlavní funkce:

  • Podpora rodin sloupců (Column Families) — izolované sady dat ve formátu klíč/hodnota. Pro každou rodinu sloupců se používají vlastní memtable, SSTable a WAL log.
  • ACID transakce zahrnující více operací s rodinami sloupců.
  • Optimalizace pro paralelní přístup k datům.
  • Podpora oboustranných iterátorů, které umožňují procházet páry klíč/hodnota dopředu nebo dozadu vzhledem k vybrané pozici v úložišti, přičemž se používá původně určená metoda třídění.
  • Podpora přidávání vlastních funkcí porovnávání klíčů. Přítomnost vestavěných funkcí porovnávání memcmp, string a numeric.
  • Záznam operací (WAL, Write-Ahead Log) a automatické obnovení memtable (paměťové úložiště) z tohoto záznamu při spuštění.
  • Použití Bloom filtrů k minimalizaci přístupů k úložišti prostřednictvím kontroly existence klíče před čtením z SSTable (trvalé úložiště).
  • Podpora algoritmů Snappy, LZ4 a ZSTD pro kompresi záznamů v úložišti SSTable a WAL.
  • Možnost definovat dobu životnosti záznamů (TTL) a automaticky vylučovat neplatné záznamy.
  • Tři režimy synchronizace dat v RAM s trvalým úložištěm: NONE (nejrychlejší), BACKGROUND (vyvážený), FULL (nejspolehlivější).
  • Možnost nastavení velikosti memtable, metod komprese, bloom filtrů, režimu synchronizace a parametrů balení pro každou rodinu sloupců.
  • Jednoduché C API, vracející 0 při úspěšném provedení operace a -1 při chybě.
  • Použití SBHA (Sorted Binary Hash Array) pro rychlé vyhledávání dat v SSTable, umožňující určování posunů bloků s klíči bez úplného prohledávání.
  • Kompaktní přenosný binární formát prezentace databáze, podporující versioning.
  • Vestavěné mechanismy kontroly integrity, určování poškození dat a obnovení.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster