![]() |
Más rápido que el correcaminos. |
Hoy toca hablar de algo "nuevo" en el blog, las bases de datos en memoria que además en este caso es distribuida. Nos centraremos en VoltDB, que tiene una versión community, aunque existen otras opciones de gratuitas Hazelcast aunque para mi gusto es más compleja que esta. De pago tenemos a Hana, aunque teniendo VoltDb no pagaría ni un céntimo por esa bbdd.
No entretengo más, comencemos:
1 ¿Qué es VoltDB?
VoltDB es una base de datos en memoria y distribuida. Esto hace que los procesos queden guardados en la RAM de los nodos, donde uno de ellos es el que mantiene el tracking de los registros.
En VoltDB no hay bases de datos, hay lo que se conocen como catálogos, que contienen las tablas en memoria. Estos catálogos pueden ser replicados a través de los nodos.
Hay dos puntos clave a diferenciar en la distribución de los nodos:
- Replication: nos permite “replicar” las tablas a través de los nodos, para acceder más rápidamente a los datos.
- Partición: dado una clave primaria de una tabla, esta es divida a través de los nodos teniendo en cuenta esa clave. La clave debe ser un solo campo de la tabla.
Al tener esta arquitectura basada en memoria, VoltDB ha pensado en el caso de que se den caídas de los nodos, donde en caso de caída mantiene la información de manera duplicada en otro nodo. Levantar nodos es tan sencillo como editar un fichero de configuración y asignar el catálogo a ese nuevo nodo.
En caso de querer guardar el sistema, se pueden crear Snapshots que pueden ser restaurados con posterioridad, para evitar tener que realizar de nuevo el catálogo.
Por otra parte, existe la posibilidad de crear programas en java, para la realización de la creación y carga de tablas en memoria.
2 Instalación y puesta en marcha
2.1 Requisitos previos:
· Linux 64 Bits. En mi caso he usado Ubuntu 12.4 64 bits
· RAM: 1 GB, para curarnos en salud, ya que la información va sobre la RAM.
2.2 Instalación single-node:
1. Descargar la versión debían
wget http://voltdb.com/downloads/technologies/server/voltdb_3.4-1_amd64.deb
2. Instalar voltdb con el siguiente comando
sudo dpkg –i voltdb_3.4-1_amd64.db
3 Jugando con Voltdb
3.1 Preparación del catálogo:
1. Crear directorio:
mkdir helloworld
2. Cambiar al directorio:
cd helloworld
3. Crear el esquema de la base de datos “helloworld.sql”:
CREATE TABLE HELLOWORLD(
HELLO VARCHAR(15),
WORLD VARCHAR(15),
DIALECT VARCHAR(15) NOT NULL,
PRIMARY KEY (DIALECT)
);
4. Particionar la tabla en la base de datos:
PARTITION TABLE HELLOWORLD ON COLUMN DIALECT;
3.2 Creación del catálogo:
1. Compilar el esquema:
Voltdb compile –o helloworld.jar helloworld.sql
2. Crear el catálogo:
Voltdb créate catalgo helloworld.jar
3.3 Operaciones con el catálogo:
1. Insert:
INSERT INTO helloworld VALUES (‘hello’,’world’,’English’);
2. Select: