LevelDB inicial

  • Un motor clave-valor de almacenamiento, y Redis pero la diferencia es, LevelDB mayoría de los datos se almacenarán en el disco duro.
  • Con la parte inferior Log-Structured Merge(简称LSMtree)
  • La característica más grande es la velocidad de escritura, la principal ventaja de las escrituras en disco secuenciales. Mientras que otros motores de almacenamiento utilizan una escritura aleatoria de B-tree.

1.LSMtree

LSM-árbol es una estructura de múltiples capas, en realidad fue dividida en la memoria y el disco de dos partes. memoria C 0 C0 capa, guardadas Todos escrito recientemente ( k , v ) (K, v) , la estructura de memoria se ordenan y se puede actualizar en cualquier lugar, en cualquier momento y apoyo. el restante C 1 C1 a C k ck capas en el disco, cada capa es una llave en la estructura ordenada.

1.1 operaciones conexas

1.1.1 proceso de escritura

Aquí se refiere a put(k,v)la operación. En primer lugar, se adjunta a la escritura anticipada log (Write Ahead Log, se hace referencia a la WAL C0, que se escribe en el registro antes de la grabación real), se aplica la siguiente capa. Cuando la capa de C0 de datos llega a un cierto tamaño, poner las capas C0 y C1 se combinaron, similar a fusionar tipo, este proceso es de compactación (fusión) . Combinar fuera de la nueva nueva-C1 será el fin de escribir en el disco, vuelva a colocar el original pasada de C1. Cuando la capa C1 alcanza un cierto tamaño, y la capa inferior seguirá combinación. Después de la fusión de todos los archivos antiguos se pueden eliminar, dejando la nueva.

proceso de escritura, básicamente, sólo se utiliza la estructura de memoria, la compactación se puede realizar de forma asíncrona en el fondo, no bloquea las escrituras.

1.1.2 Proceso de consulta

Se puede ver el proceso de escritura, la última capa de C0 de datos, los datos más antiguos en la capa Ck, la consulta se compruebe en primer lugar el nivel C0, si no se quiere comprobar k, a continuación, comprobar C1, capa por capa de búsqueda.

2. Arquitectura LevelDB

Aquí se hace referencia al dios del mapa introducción codedump.

La figura se puede ver en el almacenamiento de datos en memoria y LevelDB disco. Las flechas rojas indican los datos combinados de tendencia.

También distinguir entre leer y escribir?

  • memtableHay un límite máximo write_buffer_size, la implementación por defecto es skiplist.
  • immutable memtableCuando memtableel ajuste temporal de los datos, donde los datos se caerán, y los datos de tiempo no pueden ser modificados.
  • sstable, Nombre completo Sorted String Table, el archivo de base de datos de persistencia de datos. LevelDB de almacenamiento en disco de archivos mucho SST, todo el archivo de claves se ordena, cada uno correspondiente a una jerarquía de archivos, cada nivel hay varios archivos.

En esta jerarquía de memoria anteriormente, en los nuevos datos de más, es decir, si el mismo valor existen clave en la memtable memtable inmutable y en lugares memtable prevalecerá.

material de referencia

Principios Básicos y Aplicaciones LSMtree

Explica la sección de registro

LevelDB notas lector de código

Publicados 120 artículos originales · ganado elogios 35 · vistas 170 000 +

Supongo que te gusta

Origin blog.csdn.net/u012328476/article/details/104218897
Recomendado
Clasificación