De Wikipedia, la enciclopedia libre
Saltar a navegación Saltar a búsqueda

LevelDB es un almacén de valor clave en disco de código abierto escrito por los becarios de Google Jeffrey Dean y Sanjay Ghemawat . [2] [3] Inspirado por Bigtable , [4] LevelDB está alojado en GitHub bajo la Nueva Licencia BSD y ha sido adaptado a una variedad de sistemas basados ​​en Unix, y macOS , Windows y Android . [5]

Funciones [ editar ]

LevelDB almacena claves y valores en matrices de bytes arbitrarias, y los datos se ordenan por clave. Admite escrituras por lotes, iteración hacia adelante y hacia atrás y compresión de los datos a través de la biblioteca de compresión Snappy de Google .

LevelDB no es una base de datos SQL . Al igual que otras tiendas NoSQL y dbm , no tiene un modelo de datos relacionales y no admite consultas SQL. Además, no tiene soporte para índices . Las aplicaciones usan LevelDB como biblioteca, ya que no proporciona un servidor o una interfaz de línea de comandos.

MariaDB 10.0 viene con un motor de almacenamiento que permite a los usuarios consultar tablas de LevelDB desde MariaDB. [6]

Historia [ editar ]

LevelDB se basa en conceptos del sistema de base de datos Bigtable de Google . La implementación de la tabla para el sistema Bigtable se desarrolló a partir de 2004 y se basa en una base de código interno de Google diferente al código de LevelDB. Esa base de código se basa en una serie de bibliotecas de código de Google que no son de código abierto, por lo que el código abierto directamente habría sido difícil. Jeff Dean y Sanjay Ghemawat querían crear un sistema parecido a la pila de tabletas Bigtable que tuviera dependencias mínimas y fuera adecuado para código abierto, y también sería adecuado para su uso en Chrome para la implementación de IndexedDB . Escribieron LevelDB a principios de 2011, con el mismo diseño general que la pila de tabletas Bigtable, pero sin compartir el código. [7]

Uso [ editar ]

LevelDB se utiliza como base de datos back-end de Google Chrome 's IndexedDB y es uno de los backends soportados para Riak . [8] Además, Bitcoin Core y go-ethereum almacenan los metadatos de la cadena de bloques utilizando una base de datos LevelDB. [9] Minecraft Bedrock Edition utiliza una versión modificada para el almacenamiento de datos de entidades y fragmentos. [10] Autodesk AutoCAD 2016 también usa LevelDB.

Rendimiento [ editar ]

Google ha proporcionado puntos de referencia que comparan el rendimiento de LevelDB con SQLite y Kyoto Cabinet en diferentes escenarios. [11] LevelDB supera a SQLite y Kyoto Cabinet en operaciones de escritura y operaciones de lectura en orden secuencial. LevelDB también sobresale en escrituras por lotes, pero es más lento que SQLite cuando se trata de valores grandes. Los puntos de referencia publicados actualmente se actualizaron después de que se observaron errores de configuración de SQLite en una versión anterior de los resultados. [12] Los puntos de referencia actualizados [13] muestran que LevelDB también supera a Berkeley DB , pero estas pruebas también muestran que OpenLDAP LightningDB es mucho más rápido (~ 10 veces en algunos escenarios) en operaciones de lectura y algunos tipos de escritura (por ejemplo, escrituras por lotes y síncronas, vea el enlace de arriba), y es casi igual en el resto de la prueba.

Errores y confiabilidad [ editar ]

LevelDB tiene un historial de errores de corrupción de bases de datos. [14] [15] [16] [17] [18] [19] Un estudio de 2014 encontró que, en sistemas de archivos más antiguos (sin suma de verificación), la base de datos podría corromperse después de una falla o falla de energía. [20]

Ver también [ editar ]

  • Base de datos mapeada en memoria Lightning
  • RocksDB

Referencias [ editar ]

  1. ^ "Release 1.23" . 23 de febrero de 2021 . Consultado el 13 de marzo de 2021 .
  2. ^ "Científicos e ingenieros de investigación de Google: Jeffrey Dean" . Corporación Google.
  3. ^ "Investigadores científicos e ingenieros: Sanjay Ghemawat" . Corporación Google.
  4. ^ "Base de datos NoSQL de fuentes abiertas de Google llamada LevelDB" . ReadWriteWeb . 30 de julio de 2011. Archivado desde el original el 16 de agosto de 2011 . Consultado el 30 de julio de 2011 . CS1 maint: parámetro desalentado ( enlace )
  5. ^ "Blog de código abierto de Google: LevelDB: un almacén de valor clave persistente rápido" . Corporación Google.
  6. ^ Motor de almacenamiento LevelDB
  7. ^ Jeff Dean. "Lista de correo de LevelDB:" Estado actual de LevelDB " " .
  8. ^ LevelDB . Docs.basho.com. Consultado el 18 de septiembre de 2013.
  9. ^ Andreas M. Antonopoulos. "Capítulo 7. El Blockchain" . Consultado el 8 de enero de 2015 . CS1 maint: parámetro desalentado ( enlace )
  10. ^ https://minecraft.gamepedia.com/Pocket_Edition_level_format
  11. ^ "Puntos de referencia de LevelDB" . Google, Inc. Archivado desde el original el 20 de agosto de 2011. CS1 maint: parámetro desalentado ( enlace )
  12. ^ "Discusión de referencia de LevelDB" .
  13. ^ Microbenchmarks de base de datos archivado 2014-08-09 en Wayback Machine , Symas Corp., 2012-09. Consultado el 22 de octubre de 2016
  14. ^ Reparación de LevelDB
  15. ^ Problemas · google / leveldb · GitHub
  16. ^ Corrupción irrecuperable en Chromium
  17. ^ Corrupción en sincronización
  18. ^ Corrupción después de la pérdida de energía
  19. ^ Corrupción en Ethereum
  20. ^ "No todos los sistemas de archivos son iguales: sobre la complejidad de la elaboración de aplicaciones coherentes con las fallas" .

Enlaces externos [ editar ]

  • Página web oficial