Este documento presenta información sobre NewSQL. Define NewSQL como una clase de sistemas de bases de datos relacionales modernos que buscan lograr el alto rendimiento escalable de sistemas NoSQL manteniendo las garantías ACID de un sistema de base de datos tradicional. Explica que los sistemas NewSQL pueden agruparse en tres categorías: nuevas arquitecturas, motores de almacenamiento y protección transparente. Finalmente, agradece a los estudiantes por completar el curso.
1. Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
1
12/03/2022
NewSQL
Unidad 10
Material docente compilado por el profesor Ph.D. Franklin Parrales Bravo para
uso de los cursos de Bases de Datos
2. Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
2
12/03/2022
Objetivo general de la Unidad 10
Caracterizar la fundamentación teórica del NewSQL,
mediante el análisis de sus características y diferencias con
enfoques previos (NoSQL y SQL tradicional)
3. Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
3
12/03/2022
Contenido
▪ Definición
▪ Sistemas
4. Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
4
12/03/2022
¿Qué es NewSQL?
▪ NewSQL es una clase de sistemas modernos de
gestión de bases de datos relacionales que
▪ tratan de conseguir el mismo rendimiento escalable de
sistemas NoSQL para el procesamiento de
transacciones en línea (lectura-escritura)
▪ durante las cargas de trabajo mantienen las garantías
ACID de un sistema de base de datos tradicional
5. Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
5
12/03/2022
OLTP: Tipos de consultas
• Point Query
SELECT balance
FROM accounts
WHERE number = 1023;
• Multipoint Query
SELECT balance
FROM accounts
WHERE branchnum = 100;
• Range Query
SELECT number
FROM accounts
WHERE balance > 10000;
• Prefix Match Query
SELECT *
FROM employees
WHERE name = ‘Jensen’
and firstname = ‘Carl’
and age < 30;
Tablas están en BNF, derivados de entidades y relaciones
6. Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
6
12/03/2022
OLTP: Tipos de consultas
• Extremal Query
SELECT *
FROM accounts
WHERE balance =
max(select balance from accounts)
• Ordering Query
SELECT *
FROM accounts
ORDER BY balance;
• Grouping Query
SELECT branchnum, avg(balance)
FROM accounts
GROUP BY branchnum;
• Join Query
SELECT distinct branch.adresse
FROM accounts, branch
WHERE
accounts.branchnum =
branch.number
and accounts.balance > 10000;
7. Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
7
12/03/2022
NewSQL
▪ Al igual que NoSQL, es más un movimiento que un
producto específico o incluso una familia de productos
▪ El "Nuevo" se refiere a los proveedores y no al SQL
▪ Objetivo(s):
▪ Llevar los beneficios del modelo relacional a las
arquitecturas distribuidas, o,
▪ VoltDB, ScaleDB, etc.
▪ Mejorar el rendimiento de la base de datos relacional para
que ya no requiera el escalado horizontal
▪ Tokutek, ScaleBase, etc.
▪ “SQL-as-a-service”: Amazon RDS, Microsoft SQL Azure, Google
Cloud SQL
8. Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
8
12/03/2022
10 años a partir de ahora
▪ Los términos NoSQL y NewSQL ya no estarán allí
▪ El enfoque estará en cómo mapear problemas en
soluciones.
▪ Ya sea SQL, NoSQL, NewSQL, realmente aquello será
irrelevante
9. Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
9
12/03/2022
Definición de Stonebraker
▪ SQL como interfaz principal
▪ Soporte ACID para transacciones
▪ Control de concurrencia sin bloqueo
▪ Alto rendimiento por nodo
▪ Arquitectura paralela sin nada compartido
10. Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
10
12/03/2022
NoSQL vs. NewSQL
NoSQL
▪ Nueva generación de productos de
bases de datos no relacionales
▪ Rechazos de esquema de tabla fija y
operaciones de combinación
▪ Diseñado para cumplir con los
requisitos de escalabilidad de las
arquitecturas distribuidas
▪ y/o requisitos de gestión de datos sin
esquema
NewSQL
▪ Nueva generación de productos de
bases de datos relacionales
▪ Conservar SQL y ACID
▪ Diseñado para cumplir con los
requisitos de escalabilidad de las
arquitecturas distribuidas
11. Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
11
12/03/2022
Teorema CAP
▪ Un sistema distribuido puede satisfacer dos pero no
tres de:
▪ Consistency – todos los nodos ven los mismos datos al
mismo tiempo
▪ Availability – cada solicitud recibe una respuesta ya sea
exitosa o fallida
▪ Partition tolerance – opera a pesar de la pérdida del
mensaje o falla de parte del sistema
12. Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
12
12/03/2022
Scale
▪ Para lograr un alto rendimiento y consistencia
debemos:
▪ Scale in (escalar dentro) – ejecutar todas las
transacciones en la RAM (performance) en la misma
computadora (consistency)
▪ Scale up (escalar arriba)– obtenga un potente servidor
multi-core con mucha RAM(performance)
13. Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
13
12/03/2022
Cuellos de botella en las transacciones
(Transaction Bottlenecks)
▪ Lecturas/escrituras de disco
▪ Datos persistentes, registros de deshacer/rehacer
▪ Red de comunicacion
▪ Intra-Nodo, Cliente-Servidor
▪ Control de concurrencia
▪ Bloqueo(Locking), Enganche(Latching)
▪ Una transacción OLTP suele ser rápida, repetitiva y
pequeña.
14. Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
14
12/03/2022
Un sistema OLTP ideal
▪ Solo memoria principal(Main memory only)
▪ Sin sobrecarga multiprocesador(No multi-processor
overhead)
▪ Alta escalabilidad(High scalability)
▪ Alta disponibilidad(High availability)
▪ Configuración autonómica(Autonomic configuration)
15. Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
15
12/03/2022
Necesidades de NewSQL
(from Stonebraker)
▪ Necesita algo más que el bloqueo tradicional a nivel de
registro
▪ Timestamp order, MVCC
▪ Necesita una solución al buffer pool overhead
▪ Main memory, otras formas de reducer el buffer pool cost
▪ Necesita una solución para bloquear(latching)
estructuras de datos compartidos
▪ Uso innovativo de B-trees, Single-threading
▪ Necesita una solución para el log de escritura
anticipada (write-ahead logging)
▪ Replicación Built-in y failover proccess
16. Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
16
12/03/2022
Control de concurrencia multiversión
▪ Escenario
▪ A está leyendo al mismo tiempo que B está escribiendo
▪ A puede ver un dato a medio-escribir o incoherente
▪ Lock/timestamp podría ser lento
▪ MVCC
▪ Cada usuario ve una instantánea en un momento determinado.
▪ Cualquier cambio realizado por un escritor no será visto por otros
hasta que se haya confirmado la transacción.
▪ Cuando la base de datos actualiza un elemento, marca los datos
antiguos como obsoletos y agrega la versión más nueva en otro
lugar.
▪ Por lo tanto, se almacenan varias versiones, pero solo una es la
más reciente.
17. Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
17
12/03/2022
Contenido
▪ Definición
▪ Sistemas
18. Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
18
12/03/2022
Sistemas
▪ Aunque los sistemas de NewSQL varían mucho en sus
arquitecturas internas, sus dos señas de identidad
comunes son el apoyo al modelo de datos relacionales
y el uso de SQL como su interfaz principal.
▪ Uno de los sistemas NewSQL más conocidos es el H-
Store.
▪ Los sistemas NewSQL pueden ser agrupados en tres
categorías:
▪ Nuevas arquitecturas
▪ Motores de almacenamiento
▪ Protección transparente
19. Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
19
12/03/2022
1)Nuevas arquitecturas
▪ El primer tipo de sistemas NewSQL son plataformas de
bases de datos completamente nuevas.
▪ Están diseñadas para funcionar en un clúster distribuido shared-
nothing, en el que cada nodo posee un subconjunto de los datos.
▪ Aunque en muchas de las nuevas bases de datos se han
usado diferentes enfoques de diseño, hay dos categorías
principales en evolución.
▪ El primer tipo envía la ejecución de transacciones y consultas a
los nodos que contienen los datos necesarios.
▪ Las consultas SQL se dividen en fragmentos y se envían a los
nodos, que son los que procesan y contienen los datos.
▪ Estas bases de datos son capaces de escalar linealmente a
medida que se agregan nodos adicionales.
20. Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
20
12/03/2022
1)Nuevas arquitecturas
▪ Bases de datos de uso general:
▪ Estas mantienen la funcionalidad completa de bases de
datos tradicionales y el manejo de todo tipo de consultas.
▪ Estas bases de datos se escriben a menudo a partir de cero
con una arquitectura distribuida en mente, e incluyen
componentes como el control distribuido de concurrencia, el
control de flujo, y el procesamiento de consultas distribuidas.
▪ Entre ellas están LeanXcale Google Spanner, Clustrix,
NuoDB,1213 y TransLattice.
21. Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
21
12/03/2022
1)Nuevas arquitecturas
▪ Base de datos en memoria:
▪ Las solicitudes dirigidas por estos sistemas NewSQL se
caracterizan por tener un gran número de transacciones de corta
duración (es decir, sin puestos de usuario), que tocan un
pequeño subconjunto de datos utilizando las búsquedas de
índice (es decir, no hay recorridos de tablas completos o grandes
joins distribuidos) y repetitivas (es decir, ejecutan las mismas
consultas con diferentes entradas).
▪ Estos sistemas NewSQL logran un alto rendimiento y
escalabilidad al evitar que gran parte de la arquitectura sea
heredada del diseño original del Sistema R, tales como los
algoritmos de recuperación o de control de concurrencia.
▪ Dos sistemas de ejemplo de esta categoría son VoltDB y
SQLFire de GoPivotal.
22. Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
22
12/03/2022
Sistema R
https://people.eecs.berkeley.edu/~brewer/cs262/SystemR.pdf
23. Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
23
12/03/2022
2)Motores de almacenamiento (MySQL)
▪ La segunda categoría está optimizada como motor de
almacenamiento de SQL.
▪ Estos sistemas proporcionan la misma interfaz de
programación que MySQL, pero con mejor escala
incorporada en los motores, como InnoDB.
▪ Varios ejemplos de estos nuevos motores son:
TokuDB, MemSQL y Akiban
CREATE TABLE index_demo (
name VARCHAR(20) NOT NULL,
age INT,
pan_no VARCHAR(20),
phone_no VARCHAR(20)
)ENGINE=INNODB;
ENGINE=TOKUDB
24. Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
24
12/03/2022
2)Motores de almacenamiento (MySQL)
▪ TokuDB
▪ Es un mecanismo de almacenamiento de MySQL y MariaDB
especialmente diseñado para conseguir altas prestaciones
con cargas de escritura elevadas.
▪ TokuDB ha jugado un importante papel en el movimiento Big
Data basado en MySQL
▪ Lo consigue vía indexación de árboles fractales, lo que se
basa en algoritmos de caché distraídos.
▪ Ya sabemos que…la mayoría de las bases de datos relacionales
usan índices para mejorar la velocidad de respuesta de las
instrucciones SQL.
▪ Los índices sirven para reducir significativamente la cantidad de
datos a examinar al ejecutar una consulta.
25. Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
25
12/03/2022
2)Motores de almacenamiento (MySQL)
▪ Índices basados en árboles binarios
▪ Los índices se implementan habitualmente con árboles binarios
(B-trees), una estructura de datos descrita por primera vez en
1970.
▪ La estructura de árbol binario permite operaciones como la
inserción de datos e iteraciones ordenadas, las funciones
primarias de un índice.
▪ Dependiendo de la carga y la implementación, la prestación de
los árboles binarios puede estar limitada por el acceso a disco.
▪ Adicionalmente, mientras las bases de datos jóvenes tienen un
buen comportamiento secuencial, éste se torna más complejo a
medida que la base de datos crece, dando lugar a más accesos
aleatorios y a la degradación de las prestaciones.
26. Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
26
12/03/2022
2)Motores de almacenamiento (MySQL)
▪ Índices fractales
▪ Implementan las mismas operaciones de un árbol binario, al que
reemplazan de manera automática.
▪ Estos sustituyen las operaciones de escritura pequeñas y frecuentes
con otras mayores y menos frecuentes.
▪ Esto permite mejorar el factor de compresión y la velocidad de
inserción.
▪ Los árboles fractales también permiten la inserción de mensajes en el
árbol de modo que cambios en el esquema -como la adición o
eliminación de una columna o índice- pueden realizarse on-line y en
segundo plano.
▪ Como resultado pueden mantenerse más índices sin degradación
de las prestaciones.
▪ Esto ocurre gracias a que mientras que la adición de datos a índices tiene alto
coste computacional tratándose de árboles binarios, resulta económica en
índices fractales.
27. Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
27
12/03/2022
3) Protección transparente
▪ Estos sistemas proporcionan una capa protectora
intermedia para dividir automáticamente las bases
de datos a través de múltiples nodos.
▪ Algunos ejemplos de este tipo de sistema son
dbShards, Scalearc, Scalebase y MySQL Cluster.
29. Bases de Datos
Ph.D. Franklin Parrales
Carrera de Software
29
12/03/2022
NewSQL
Unidad 10
Final de la unidad
Y del curso…. !Muchas gracias
a todos!