Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

LevelDB

From Wikipedia, the free encyclopedia
Open-source key-value store by Google
LevelDB
DevelopersJeffrey Dean,Sanjay Ghemawat,Google Inc.
Stable release
1.23[1] Edit this on Wikidata / 23 February 2021; 4 years ago (23 February 2021)
Repository
Written inC++
Size350 kB (binary size)
TypeDatabase library
LicenseNew BSD License
Websitegithub.com/google/leveldb Edit this on Wikidata

LevelDB is anopen-sourceon-disk key-value store written byGoogle fellowsJeffrey Dean andSanjay Ghemawat.[2][3] Inspired byBigtable,[4] LevelDB source code is hosted onGitHub under theNew BSD License and has been ported to a variety ofUnix-based systems,macOS,Windows, andAndroid.[5]

Features

[edit]

LevelDB stores keys and values in arbitrary byte arrays, and data is sorted by key. It supports batching writes, forward and backward iteration, and compression of the data via Google'sSnappy compression library.

LevelDB is not anSQL database. Like otherNoSQL anddbm stores, it does not have arelational data model and it does not support SQL queries. Also, it has no support forindexes. Applications use LevelDB as a library, as it does not provide a server or command-line interface.

MariaDB 10.0 comes with a storage engine which allows users to query LevelDB tables from MariaDB.[6]

History

[edit]

LevelDB is based on concepts from Google'sBigtable database system. The table implementation for the Bigtable system was developed starting in about 2004, and is based on a different Google internal code base than the LevelDB code. That code base relies on a number of Google code libraries that are not themselves open sourced, so directly open sourcing that code would have been difficult. Jeff Dean and Sanjay Ghemawat wanted to create a system resembling the Bigtable tablet stack that had minimal dependencies and would be suitable for open sourcing, and also would be suitable for use in Chrome for theIndexedDB implementation. They wrote LevelDB starting in early 2011, with the same general design as the Bigtable tablet stack, but not sharing any of the code.[7]

Usage

[edit]

LevelDB is used as the backend database forGoogle Chrome'sIndexedDB and is one of the supported backends forRiak.[8] Additionally,Bitcoin Core and go-ethereum store theblockchain metadata using a LevelDB database.[9]Minecraft Bedrock Edition uses a modified version for chunk and entity data storage.[10] Autodesk AutoCAD 2016 also uses LevelDB.

Performance

[edit]

Google has provided benchmarks comparing LevelDB's performance toSQLite andKyoto Cabinet in different scenarios.[11] LevelDB outperforms both SQLite and Kyoto Cabinet in write operations and sequential-order read operations. LevelDB also excels at batch writes, but is slower than SQLite when dealing with large values. The currently published benchmarks were updated after SQLite configuration mistakes were noted in an earlier version of the results.[12] Updated benchmarks[13] show that LevelDB also outperformsBerkeley DB, but these tests also show thatOpenLDAPLightningDB is much faster (~10 times in some scenarios) in read operations and some write types (e.g. batch and synchronous writes, see the link above), and is almost equal in the rest of the test.

All the above benchmarks date back from 2011 to 2014, and may only be of historical significance as SQLite, for instance, became significantly more efficient.[14]

Bugs and reliability

[edit]

LevelDB has a history of database corruption bugs.[15][16][17][18][19][20] A study from 2014 has found that, on non-checksummed file systems, the database could become corrupted after a crash or power failure.[21]

See also

[edit]

References

[edit]
  1. ^"Release 1.23". 23 February 2021. Retrieved13 March 2021.
  2. ^"Google Research Scientists and Engineers: Jeffrey Dean". Google, Inc. Archived fromthe original on 2016-11-19. Retrieved2011-07-27.
  3. ^"Research Scientists and Engineers: Sanjay Ghemawat". Google, Inc. Archived fromthe original on 2016-11-19. Retrieved2011-07-27.
  4. ^"Google Open-Sources NoSQL Database Called LevelDB".ReadWriteWeb. July 30, 2011. Archived fromthe original on August 16, 2011. RetrievedJuly 30, 2011.
  5. ^"Google Open Source Blog: LevelDB: A Fast Persistent Key-Value Store". Google, Inc.
  6. ^LevelDB storage engine
  7. ^Jeff Dean."LevelDB mailing list: "Current Status of LevelDB"".
  8. ^LevelDB. Docs.basho.com. Retrieved on 2013-09-18.
  9. ^Andreas M. Antonopoulos."Chapter 7. The Blockchain". Retrieved8 January 2015.
  10. ^"Bedrock Edition level format".Minecraft Wiki. Retrieved24 September 2023.
  11. ^"LevelDB Benchmarks". Google, Inc. Archived fromthe original on 2011-08-20.
  12. ^"LevelDB Benchmark discussion". Archived fromthe original on 2020-02-24. Retrieved2014-08-11.
  13. ^Database MicrobenchmarksArchived 2014-08-09 at theWayback Machine, Symas Corp., 2012-09. Retrieved 22 October 2016
  14. ^"Measuring and Reducing CPU Usage in SQLite".
  15. ^"Repairing LevelDB". Archived fromthe original on 2016-04-06. Retrieved2016-04-06.
  16. ^Issues · google/leveldb · GitHub
  17. ^Unrecoverable corruption in Chromium
  18. ^Corruption in syncthing
  19. ^Corruption after power loss
  20. ^Corruption in Ethereum
  21. ^All File Systems Are Not Created Equal: On the Complexity of Crafting Crash-Consistent Applications. 2014. pp. 433–448.ISBN 9781931971164.

External links

[edit]
Google free and open-source software
Software
Applications
Programming languages
Frameworks and
development tools
Operating systems
Related
Retrieved from "https://en.wikipedia.org/w/index.php?title=LevelDB&oldid=1308567070"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2025 Movatter.jp