Uso de almacenamiento conectables con nosql

Hay momentos en los que desea proporcionar estilo de valor clave de acceso de alta velocidad a los datos almacenados en una base de datos relacional. Esta base de datos podría ser, por ejemplo, Berkeley DB (Java Edition para Voldemort) o MySQL.

Proporcionar valor clave como el acceso a los datos requiere un almacén de claves-valor que se acoda directamente sobre una de estas otras bases de datos. Básicamente, se utiliza otra base de datos como la capa de almacenamiento, en lugar de una combinación de un sistema de archivos para el almacenamiento y la ingestión de una tubería para copiar datos desde una base de datos relacional.

Este proceso se simplifica proporcionando un almacén de claves de alto valor velocidad mientras se usa una base de datos relacional tradicional para el almacenamiento.

Cambio de motores de almacenamiento

Diferentes cargas de trabajo requieren diferentes motores de almacenamiento y características de rendimiento. Aeropunta es grande para alta ingest- Redis es ideal para un gran número de lecturas. Cada uno se construye en torno a un caso de uso específico.

Voldemort tiene un enfoque diferente. En lugar de tratar el almacén de claves-valor como instancia separada de la gestión de datos, Voldemort trata el almacén de claves-valor como una API y añade una capa de almacenamiento en caché en memoria, lo que significa que se puede conectar a la parte de atrás que tiene más sentido para sus necesidades particulares.

Si quieres un nivel de almacenamiento en disco sencillo, se puede utilizar el motor de almacenamiento Edición Berkeley DB Java. Si por el contrario desea almacenar datos relacionales, puede utilizar MySQL como back-end a Voldemort.

Esta capacidad se combina con tipos de datos personalizados le permite utilizar simple almacén de una tienda de clave-valor / recuperar API para tirar hacia atrás y efectivamente directamente información de caché en una tienda de servicios de fondo diferente.

Este enfoque contrasta con el enfoque habitual de tener bases de datos separados - uno en, por ejemplo, Oracle para datos transaccionales y otro en el almacén de claves-valor (Riak, por ejemplo). Con este enfoque de dos niveles, hay que desarrollar código para mover datos de un nivel a otro para el almacenamiento en caché. Con Voldemort, hay un nivel combinado - su nivel de datos - por lo que el código adicional es redundante.

El almacenamiento en caché de datos en la memoria

Voldemort tiene una caché integrada en memoria, lo que reduce la carga en el motor de almacenamiento y aumenta el rendimiento de consulta. No es necesario utilizar una capa de almacenamiento en caché separado, tal como Redis o producto de Oracle de almacenamiento en caché los datos de aplicaciones Java coherencia en la parte superior.

La capacidad de proporcionar niveles de almacenamiento de alta velocidad con el almacenamiento en caché es la razón por LinkedIn utiliza Voldemort para ciertos casos de uso de alto rendimiento.

Con Voldemort, se obtiene lo mejor de ambos mundos - un motor de almacenamiento para sus requisitos exactos de los datos y una alta velocidad de caché en memoria para reducir la carga en ese motor. También obtiene sencilla tienda de almacén de claves-valor / recuperar la semántica en la parte superior de su motor de almacenamiento.

La evaluación de Voldemort

En el Harry Potter libros de Lord Voldemort llevó a cabo una gran cantidad de magia en él, tanto buenas como malas, a pesar de que la utilizó para aterrorizar a los muggles. La base de datos Voldemort, como resulta, también puede almacenar grandes cantidades de datos, pero puede ser utilizado para el bien por los magos de datos en todas partes!

Voldemort sigue siendo un producto en desarrollo. Muchas piezas siguen desaparecidas, por lo que no es compatible con la variedad de motores de almacenamiento que se podría esperar. Es probable que este enfoque para la comunidad de desarrollo de Voldemort Voldemort porque está construido en el lenguaje de programación Java, que requiere un conector de Java Native Interface (JNI) que se construirá para la integración de la mayoría de bases de datos basadas en C o C ++.

Voldemort tiene una buena integración con los marcos de serialización, sin embargo. marcos compatibles incluyen la serialización de Java, Avro, Thrift, y Buffers Protocolo. Esto significa que las envolturas de API proporcionadas coinciden con el método de serialización familiar de cada lenguaje de programación, por lo que el desarrollo de aplicaciones intuitivas.

Voldemort no maneja consistencia, así como otros sistemas hacen. Voldemort utiliza el leer la reparación enfoque, donde los números de versión inconsistentes para el mismo registro se fijan en tiempo de lectura, en lugar de ser mantenida constante a la hora de escribir.

Tampoco hay indexación secundaria o consulta SOPORTE- Voldemort espera que utilice las instalaciones del motor de almacenamiento subyacente para hacer frente a ese caso de uso. Además, Voldemort no tiene trigger nativos o un marco de procesamiento de alerta o un evento con el que construir uno.

Si usted no necesita un almacén de claves-valor que es altamente disponible, es tolerante a la partición, se ejecuta en Java, y utiliza diferentes fines de almacenamiento de vuelta, entonces Voldemort puede ser para usted.

Artículos Relacionados