LevelDB - LevelDB

LevelDB
Vývojáři Jeffrey Dean , Sanjay Ghemawat, Google Inc.
Stabilní uvolnění
1.23  Upravte to na Wikidata / 23. února 2021 ; Před 7 měsíci ( 23. února 2021 )
Úložiště
Napsáno C ++
Velikost 350 kB (binární velikost)
Typ Databázová knihovna
Licence Nová licence BSD
webová stránka github .com /google /leveldb Upravte to na Wikidata

LevelDB je open-source úložiště klíč – hodnota na disku, které napsali kolegové z Googlu Jeffrey Dean a Sanjay Ghemawat . LevelDB, inspirovaný Bigtableem , je hostován na GitHubu pod novou licencí BSD a byl přenesen do řady unixových systémů a macOS , Windows a Android .

Funkce

LevelDB ukládá klíče a hodnoty do libovolných bajtových polí a data jsou řazena podle klíče. Podporuje dávkové zápisy, iteraci vpřed a zpět a kompresi dat pomocí komprimační knihovny Google Snappy .

LevelDB není databáze SQL . Stejně jako ostatní obchody NoSQL a dbm nemá relační datový model a nepodporuje dotazy SQL. Rovněž nemá podporu pro indexy . Aplikace používají jako knihovnu LevelDB, protože neposkytuje rozhraní serveru nebo příkazového řádku.

MariaDB 10.0 je dodáván s modulem úložiště, který umožňuje uživatelům dotazovat se na tabulky LevelDB z MariaDB.

Dějiny

LevelDB je založen na konceptech z databázového systému Google Bigtable . Implementace tabulky pro systém Bigtable byla vyvinuta přibližně od roku 2004 a je založena na jiné interní kódové základně Google než na kódu LevelDB. Tato základna kódu se opírá o řadu knihoven kódů Google, které samy o sobě nemají otevřený zdroj, takže přímý otevřený zdroj tohoto kódu by byl obtížný. Jeff Dean a Sanjay Ghemawat chtěli vytvořit systém připomínající stoh tabletů Bigtable, který měl minimální závislosti a byl by vhodný pro otevřené získávání zdrojů a také by byl vhodný pro použití v prohlížeči Chrome pro implementaci IndexedDB . Napsali LevelDB počínaje počátkem roku 2011, se stejným obecným designem jako zásobník tabletů Bigtable, ale nesdíleli žádný kód.

Používání

LevelDB se používá jako backendová databáze pro Google Chrome 's IndexedDB a je jedním z podporovaných backendů pro Riak . Navíc Bitcoin jádro a go-ethereum uskladněte blockchain metadata pomocí databáze LevelDB. Minecraft Bedrock Edition používá upravenou verzi pro ukládání dat bloků a entit. Autodesk AutoCAD 2016 také používá LevelDB.

Výkon

Google poskytl benchmarky porovnávající výkon LevelDB s SQLite a Kyoto Cabinet v různých scénářích. LevelDB překonává SQLite i Kyoto Cabinet v operacích zápisu a čtení v sekvenčním pořadí. LevelDB také vyniká při dávkových zápisech, ale při práci s velkými hodnotami je pomalejší než SQLite. Aktuálně publikované benchmarky byly aktualizovány poté, co byly v dřívější verzi výsledků zaznamenány chyby konfigurace SQLite. Aktualizované benchmarky ukazují, že LevelDB také překonává Berkeley DB , ale tyto testy také ukazují, že OpenLDAP LightningDB je mnohem rychlejší (~ 10krát v některých scénářích) v operacích čtení a některých typech zápisu (např. Dávkové a synchronní zápisy, viz odkaz výše) a je ve zbytku testu téměř stejný.

Chyby a spolehlivost

LevelDB má historii chyb v poškození databáze. Studie z roku 2014 zjistila, že ve starších souborových systémech (bez kontrolního součtu) může dojít k poškození databáze po havárii nebo výpadku napájení.

Viz také

Reference

externí odkazy