LevelDB - LevelDB
Vývojáři | Jeffrey Dean Sanjay Ghemawat, Google Inc. |
---|---|
Stabilní uvolnění | 1.22 / 3. května 2019[1] |
Úložiště | ![]() |
Napsáno | C ++ |
Velikost | 350 kB (binární velikost) |
Typ | Knihovna databáze |
Licence | Nová licence BSD |
webová stránka | github |
LevelDB je open-source klíč – hodnota na disku obchod napsal Google kolegové Jeffrey Dean a Sanjay Ghemawat.[2][3] Inspirovaný Bigtable,[4] LevelDB je hostitelem GitHub pod Nová licence BSD a byl přenesen na různé Unix - systémy založené na a Operační Systém Mac, Okna, a Android.[5]
Funkce
LevelDB ukládá klíče a hodnoty do libovolných bajtových polí a data jsou tříděna podle klíče. Podporuje dávkové zápisy, dopřednou a zpětnou iteraci a kompresi dat přes Google Elegantní kompresní knihovna.
LevelDB není SQL databáze. Jako ostatní NoSQL a dbm obchody, nemá relační datový model a nepodporuje dotazy SQL. Také nemá žádnou podporu pro indexy. Aplikace používají LevelDB jako knihovnu, protože neposkytuje rozhraní serveru nebo příkazového řádku.
MariaDB 10.0 je dodáván s úložištěm, které umožňuje uživatelům dotazovat se na tabulky LevelDB od MariaDB.[6]
Dějiny
LevelDB je založen na konceptech od společnosti Google Bigtable databázový systém. Implementace tabulky pro systém Bigtable byla vyvinuta přibližně v roce 2004 a je založena na jiné interní kódové základně Google než na kódu LevelDB. Tato kódová základna se spoléhá na řadu knihoven kódů Google, které samy nejsou otevřeny, takže přímé otevření zdrojů by tento kód bylo obtížné. Jeff Dean a Sanjay Ghemawat chtěli vytvořit systém připomínající zásobník tablet Bigtable, který by měl minimální závislosti a byl by vhodný pro otevřené zdroje a také by byl vhodný pro použití v prohlížeči Chrome pro IndexedDB implementace. Psali LevelDB od začátku roku 2011, se stejným obecným designem jako zásobník tablet Bigtable, ale nesdíleli žádný z kódů.[7]
Používání
LevelDB se používá jako backendová databáze pro Google Chrome je IndexedDB a je jedním z podporovaných backendů pro Riak.[8] Dodatečně, Bitcoinové jádro a go-ethereum ukládat blockchain metadata pomocí databáze LevelDB.[9] Minecraft Bedrock Edition používá upravenou verzi pro ukládání dat bloků a entit.[10] Autodesk AutoCAD 2016 také používá LevelDB.
Výkon
Google poskytl měřítka porovnávající výkon LevelDB s SQLite a Kjótský kabinet v různých scénářích.[11] LevelDB překonává SQLite i Kyoto Cabinet v operacích zápisu a operacích čtení v sekvenčním pořadí. LevelDB také exceluje v dávkových zápisech, ale je pomalejší než SQLite při práci s velkými hodnotami. Aktuálně publikovaná měřítka byla aktualizována poté, co byly v dřívější verzi výsledků zaznamenány chyby konfigurace SQLite.[12] Aktualizované měřítka[13] ukázat, že LevelDB také překonává Berkeley DB, ale tyto testy to také ukazují 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 výše uvedený odkaz) a ve zbytku testu je téměř stejný.
Chyby a spolehlivost
LevelDB má historii chyb poškození databáze.[14][15][16][17][18][19] Studie z roku 2014 zjistila, že na starších (nekontrolovaných) souborových systémech může dojít k poškození databáze po selhání nebo výpadku napájení.[20]
Viz také
Reference
- ^ „Vydání - google / leveldb“. Citováno 4. května 2019 - přes GitHub.
- ^ „Google Research Scientists and Engineers: Jeffrey Dean“. Google, Inc.
- ^ „Výzkumní vědci a inženýři: Sanjay Ghemawat“. Google, Inc.
- ^ „Otevřená databáze Google NoSQL s názvem LevelDB“. ReadWriteWeb. 30. července 2011. Archivovány od originál 16. srpna 2011. Citováno 30. července 2011.
- ^ „Blog Google s otevřeným zdrojovým kódem: LevelDB: rychlý trvalý obchod s hodnotami klíčů“. Google, Inc.
- ^ Úložný modul LevelDB
- ^ Jeff Dean. "LevelDB mailing list:" Aktuální stav LevelDB"".
- ^ LevelDB. Docs.basho.com. Citováno 2013-09-18.
- ^ Andreas M. Antonopoulos. „Kapitola 7. Blockchain“. Citováno 8. ledna 2015.
- ^ https://minecraft.gamepedia.com/Pocket_Edition_level_format
- ^ „Benchmarky LevelDB“. Google, Inc. Archivováno od originál dne 20.08.2011.
- ^ „Diskuse o srovnávacím testu LevelDB“.
- ^ Microbenchmarks databáze Archivováno 09.08.2014 na Wayback Machine, Symas Corp., 2012-09. Vyvolány 22 October je 2016
- ^ Oprava úrovně DB
- ^ Problémy · google / leveldb · GitHub
- ^ Neodstranitelné poškození v Chromu
- ^ Korupce při synchronizaci
- ^ Korupce po ztrátě napájení
- ^ Korupce v ethereu
- ^ „Všechny souborové systémy nejsou stvořeny stejně: o složitosti vytváření aplikací konzistentních s haváriemi“.