LevelDB - LevelDB
| Vývojáři | Jeffrey Dean , Sanjay Ghemawat, Google Inc. |
|---|---|
| Stabilní uvolnění | |
| Úložiště | |
| Napsáno | C ++ |
| Velikost | 350 kB (binární velikost) |
| Typ | Databázová knihovna |
| Licence | Nová licence BSD |
| webová stránka |
github |
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í.