Articulo de referencia

LevelDB

LevelDB es un almacén de clave-valor en disco de código abierto escrito por los becarios de Google Jeffrey Dean y Sanjay Ghemawat . [ 2 ] [ 3 ] Inspirado en Bigtable , [ 4 ] el ...

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

Características

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 datos mediante la biblioteca de compresión Snappy de Google .

LevelDB no es una base de datos SQL . Al igual que otras bases de datos NoSQL y DBM , no tiene un modelo de datos relacional ni admite consultas SQL. Tampoco admite índices . Las aplicaciones utilizan LevelDB como una biblioteca, ya que no proporciona un servidor ni 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

LevelDB se basa en conceptos del sistema de base de datos Bigtable de Google . La implementación de tablas para el sistema Bigtable se desarrolló a partir de 2004 y se basa en una base de código interna de Google diferente a la de LevelDB. Dicha base de código depende de varias bibliotecas de código de Google que no son de código abierto, por lo que liberar directamente ese código habría sido difícil. Jeff Dean y Sanjay Ghemawat querían crear un sistema similar a la pila de tabletas de Bigtable con dependencias mínimas, apto para ser de código abierto y compatible con Chrome para la implementación de IndexedDB . Escribieron LevelDB a principios de 2011, con el mismo diseño general que la pila de tabletas de Bigtable, pero sin compartir el código. [ 7 ]

Uso

LevelDB se utiliza como base de datos backend para IndexedDB de Google Chrome y es uno de los backends compatibles con 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 fragmentos y entidades. [ 10 ] Autodesk AutoCAD 2016 también utiliza LevelDB.

Actuación

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 destaca 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 detectaran 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, ver el enlace anterior), y es casi igual en el resto de la prueba.

Todos los puntos de referencia anteriores datan de 2011 a 2014 y pueden tener solo una importancia histórica, ya que SQLite, por ejemplo, se volvió significativamente más eficiente. [ 14 ]

Errores y fiabilidad

LevelDB tiene un historial de errores de corrupción de base de datos. [ 15 ] [ 16 ] [ 17 ] [ 18 ] [ 19 ] [ 20 ] Un estudio de 2014 encontró que, en sistemas de archivos sin suma de verificación, la base de datos podría corromperse después de un fallo o una interrupción del suministro eléctrico. [ 21 ]

Véase también

Referencias

  1. "Versión 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" . Google, Inc. Archivado del original el 19 de noviembre de 2016. Consultado el 27 de julio de 2011 .
  3. "Investigadores científicos e ingenieros: Sanjay Ghemawat" . Google, Inc. Archivado del original el 19 de noviembre de 2016. Consultado el 27 de julio de 2011 .
  4. "Google publica como código abierto una base de datos NoSQL llamada LevelDB" . ReadWriteWeb . 30 de julio de 2011. Archivado del original el 16 de agosto de 2011. Consultado el 30 de julio de 2011 .
  5. "Blog de código abierto de Google: LevelDB: Un almacén de clave-valor persistente y rápido" . Google, Inc.
  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. La cadena de bloques" . Consultado el 8 de enero de 2015 .
  10. "Formato de nivel de Bedrock Edition" . Wiki de Minecraft . Consultado el 24 de septiembre de 2023 .
  11. "LevelDB Benchmarks" . Google, Inc. Archivado del original el 20 de agosto de 2011.
  12. "Discusión sobre LevelDB Benchmark" . Archivado del original el 24 de febrero de 2020. Consultado el 11 de agosto de 2014 .
  13. Microbenchmarks de bases de datos archivados el 9 de agosto de 2014 en Wayback Machine , Symas Corp., septiembre de 2012. Consultado el 22 de octubre de 2016.
  14. "Medición y reducción del uso de CPU en SQLite" .
  15. "Reparando LevelDB" . Archivado del original el 6 de abril de 2016. Consultado el 6 de abril de 2016 .
  16. Problemas · google/leveldb · GitHub
  17. Corrupción irrecuperable en Chromium
  18. Corrupción en Syncthing
  19. Corrupción tras un corte de energía
  20. Corrupción en Ethereum
  21. No todos los sistemas de archivos son iguales: Sobre la complejidad de crear aplicaciones consistentes ante fallos . 2014. págs. 433–448 . ISBN  9781931971164.
  • Sitio web oficial