LevelDB - LevelDB

NiveauDB
Udvikler (er) Jeffrey Dean , Sanjay Ghemawat, Google Inc.
Stabil udgivelse
1.23  Rediger dette på Wikidata / 23. februar 2021 ; 7 måneder siden ( 23. februar 2021 )
Depot
Skrevet i C ++
Størrelse 350 kB (binær størrelse)
Type Databasebibliotek
Licens Ny BSD -licens
Internet side github .com /google /leveldb Rediger dette på Wikidata

LevelDB er en open-source on-disk nøgleværdi- butik skrevet af Google- stipendiater Jeffrey Dean og Sanjay Ghemawat . LevelDB er inspireret af Bigtable og er hostet på GitHub under den nye BSD -licens og er blevet portet til en række Unix -baserede systemer og macOS , Windows og Android .

Funktioner

LevelDB gemmer nøgler og værdier i vilkårlige byte -arrays, og data sorteres efter nøgle. Det understøtter batching af skriver, frem og tilbage iteration og komprimering af data via Googles Snappy -komprimeringsbibliotek .

LevelDB er ikke en SQL -database. Ligesom andre NoSQL- og dbm -butikker har den ikke en relationsdatamodel, og den understøtter ikke SQL -forespørgsler. Det understøtter heller ikke indekser . Applikationer bruger LevelDB som et bibliotek, da det ikke giver en server eller kommandolinjegrænseflade.

MariaDB 10.0 leveres med en lagermotor , som giver brugerne mulighed for at forespørge LevelDB -tabeller fra MariaDB.

Historie

LevelDB er baseret på koncepter fra Googles Bigtable -databasesystem. Bordimplementeringen til Bigtable -systemet blev udviklet fra omkring 2004 og er baseret på en anden intern intern Google -kodebase end LevelDB -koden. Denne kodebase er afhængig af en række Google -kodebiblioteker, der ikke selv er open source, så direkte open sourcing, at koden ville have været vanskelig. Jeff Dean og Sanjay Ghemawat ønskede at oprette et system, der ligner Bigtable -tabletstakken, der havde minimale afhængigheder og ville være egnet til open sourcing og også ville være egnet til brug i Chrome til IndexedDB -implementeringen. De skrev LevelDB fra begyndelsen af ​​2011 med samme generelle design som Bigtable -tabletstakken, men delte ikke nogen af ​​koden.

Anvendelse

LevelDB bruges som backend -database for Google Chrome 's IndexedDB og er en af ​​de understøttede backends for Riak . Derudover gemmer Bitcoin Core og go-ethereum blockchain- metadataene ved hjælp af en LevelDB-database. Minecraft Bedrock Edition bruger en modificeret version til lagring af data og enheder. Autodesk AutoCAD 2016 bruger også LevelDB.

Ydeevne

Google har leveret benchmarks, der sammenligner LevelDB's ydeevne med SQLite og Kyoto Cabinet i forskellige scenarier. LevelDB udkonkurrerer både SQLite og Kyoto Cabinet i skriveoperationer og sekventiel rækkefølge læseoperationer. LevelDB udmærker sig også ved batchskrivninger, men er langsommere end SQLite, når der skal håndteres store værdier. De aktuelt offentliggjorte benchmarks blev opdateret, efter at SQLite -konfigurationsfejl blev noteret i en tidligere version af resultaterne. Opdaterede benchmarks viser, at LevelDB også overgår Berkeley DB , men disse tests viser også, at OpenLDAP LightningDB er meget hurtigere (~ 10 gange i nogle scenarier) i læseoperationer og nogle skrivetyper (f.eks. Batch- og synkrone skriver, se linket ovenfor), og er næsten ens i resten af ​​testen.

Fejl og pålidelighed

LevelDB har historik med databasekorruptionsfejl. En undersøgelse fra 2014 har vist, at databasen på ældre (ikke-kontrolsumrede) filsystemer kan blive ødelagt efter et nedbrud eller strømsvigt.

Se også

Referencer

eksterne links