Vous êtes sur la page 1sur 34

Bd NoSQL

Conceptos
Bsicos
P R O FA. M E RCY O S P I N A
m e rc y. o s p i n a t @ g m a i l . c o m
@abducv twitter

Agenda
Movimiento NoSQL
Conceptos bsicos
Teorema de Brewer (CAP)
Propiedades BASE
BASE vs ACID
Escalabilidad
Fragmentacin
Replicacin

Movimiento NoSQL
Historia

197
0

198
0

199
0

Nace el modelo Se desarrolla SQL


relacional
Se desarrolla Oracle

200
0

201
0

Modelo relacional
Ventaj
as

Persistencia
Integracin
SQL como estndar
Transacciones ACID
Reportes

Modelo Relacional

Desajuste de Impedancia

Movimiento NoSQL
Historia

197
0

198
0

199
0

200
0

201
0

Dominan las BD Relacionales


Nacen las BD
OO

Movimiento NoSQL
Redes
Sociales
Youtube
Emails
Bsquedas
Aplicaciones en Internet con
alto trfico de datos

Movimiento NoSQL
Aumentar la
capacidad de
los servidores

Movimiento NoSQL
Aumentar la
cantidad de
servidores

Movimiento NoSQL

Relacional

Relacional

Movimiento NoSQL
Historia

2006

2007

Big Table
DynamoDB

Movimiento NoSQL
Historia

Johan Oskarsson

El nombre para la primera


reunin de bases de datos
distribuidas de cdigo
abierto
#nosql

Movimiento NoSQL
Una total negacin de los
RDBMS y el fin de dichos
sistemas ?
No relacional, no Acid, no
Join
Michael Stonebraker
Not Only SQL: sistemas de
Cientfico especializado en la base de
almacenamiento que no
datos de investigacin y desarrollo.
siguelael modelo relacional y
Su carrera abarca, y ayud a crear,
mayora de la base de datos que busca resolver
relacionales del mercado existente
problemas de escalabilidad
hoy en da.

Movimiento NoSQL
No es un solo producto o
una sola tecnologa
No existen estndares
Ha habido el miedo de que
sea una moda
A pesar de ser muy reciente
usa tcnicas ampliamente
probadas

Agenda
Movimiento NoSQL

Conceptos bsicos
Teorema de Brewer (CAP)
Propiedades BASE
BASE vs ACID
Escalabilidad
Fragmentacin
Replicacin

Teorema de Brewer
Propuesto en el simposio de Principios de
Computacin Distribuida de ACM en el 2000
por Eric Brewer.
Conjetura
Los servicios web no pueden asegurar
en forma conjunta las siguientes
propiedades:
Consistencia (Consistence C)
Disponibilidad (Availability A)
Tolerancia a particiones (Partition
Tolerance P)

Teorema de Brewer
Consistencia: Un sistema distribuido es
generalmente considerado consistente si
despus de una operacin de actualizacin de
algn escritor todos los lectores ven esa
actualizacin de alguna fuente de datos
compartida.
Disponibilidad: Cada peticin recibida por un
nodo activo debe dar por lugar una respuesta.

Aunque se produzcan fallos en la red cada


solicitud debe terminar

Teorema de Brewer
Tolerancia a particin: se entiende
como la capacidad del sistema para
continuar la operacin en presencia de
particiones de red.
Esto ocurre si dos o ms "islas" de
nodos surgen en la red (temporal o
permanente) las cuales no pueden
conectarse entre s.

Teorema de Brewer
En el ao 2002, Seth Gilbert y Nancy Lynch de MIT
publicaron una demostracin formal de la
conjetura de Brewer, convirtindola en un teorema
Aunque esta demostracin ha sido criticada, el
teorema ha sido adoptado por compaas como
Amazon y Facebook y por la comunidad de NoSQL.

Cul es la confusin?

Entendiendo la tolerancia
a particiones confusin
Gilbert y Lynch definen la tolerancia a particin
como sigue:
The network will be allowed to lose arbitrarily
many messages sent from one node to another
Es decir, no es una propiedad de la aplicacin
distribuida sino de la red donde se ejecuta.
Consistencia:escojer
se permiten
Entonces noseespierde
algo que podamos
cuando
actualizaciones a ambos lados de la
se disea el sistema.
particin
Si se presenta una
particin

Disponibilidad: se detecta el error y se


cierra el sistema hasta que sea resuelto

Entendiendo la tolerancia
a particiones
Esta es la gran enseanza del teorema de
CAP:
Si se tiene una red donde se pueden perder
mensajes
Entonces
No se pueden tener ambas propiedades,
Disponibilidad y Consistencia, se debe elegir una.
http://blog.cloudera.com/blog/2010/04/cap-confusion-problemswith-partition-tolerance/

Teorema de Brewer
Algunos
diseadores
concluyen
incorrectamente que el teorema impone
restricciones en los sistemas de bases
de
datos
durante
su
normal
funcionamiento
y
por
lo
tanto
implementan
los
sistemas
innecesariamente limitados.

Teorema de Brewer
AP: el sistema siempre
responder A aunque se pierda
la comunicacin entre nodos P.
Los datos procesados pueden no
ser consistentes C.
CA: el sistema siempre
responder A y los datos
procesados sern consistentes C.
No se considera la perdida de
comunicacin entre nodos P.
CP: el sistema ejecutar las
operaciones de forma
http://www.rodenas.org/ferdyblog/2011/02/25/elconsistente C, aunque se pierda
teorema-de-cap/
la comunicacin entre nodos P,
pero no se asegura que el

Propiedades ACID en
SMBDR Distribuidos
Atomicidad
Consistencia
aIslamiento
Durabilidad
Qu pasa con la
tolerancia a
particiones?

2-Phase commit protocol

Propiedades BASE
ACID -> Consistencia
BASE -> Disponibilidad
Bsicamente disponible (BA, Basically Available): Cada
solicitud garantiza una respuesta, bien sea correcta o no.
Estado flexible (S, Soft state): El estado del sistema
puede cambiar con el tiempo, a veces sin una entrada (por
consistencia eventual).
Eventualmente consistente (E, Eventually consistence):
La base de datos puede estar momentneamente
inconsistente pero ser consistente con el tiempo.

ACID vs BASE
ACID
Pesimistas
Consistencia estricta
Aislamiento
Centrada en el commit
Sacrifica la disponibilidad

BASE
Optimistas
Consistencia dbil o eventual
Disponibilidad primero
Mejor esfuerzo
Respuestas aproximadas
Permite mayores niveles de
escalabilidad

http://www.cs.berkeley.edu/~brewer/cs262b-2004/PODC-keynot
e.pdf

Escalabilidad
Define la manera en que un sistema o
plataforma puede crecer para aumentar su
capacidad de dar servicio al negocio
El anlisis de escalabilidad es el resultado
del estudio de la escalabilidad de los
distintos componentes y sus relaciones
Existen dos formas en que un componente
puede escalar

Escalabilidad

Escalabilidad horizontal
Es la cualidad que tiene un componente de
cooperar con componentes de su misma
naturaleza y de esta manera incrementar el
rendimiento de la tarea que se est
realizando.
Cmo se mide?

Escalabilidad horizontal

Por lo tanto es fundamental conocer los lmites del


escalado horizontal de un componente para evitar una
degradacin de la capacidad

Escalabilidad en un
sistema informtico
Capacidad para crecer sin perder calidad en
los servicios ofrecidos.
Suficiencia de dicho sistema informtico de
variar su tamao, caractersticas y
capacidad de servicios para adaptarse a una
nueva situacin.

Escalabilidad en un
sistema informtico

Escalabilidad en un
sistema informtico
HORIZONTAL

Se basa en poder distribuir


el trabajo entre los
componentes
La funcin de distribucin la
realiza el Balanceador que
arbitra el reparto de la carga
entre los componentes
cooperantes
El principal problema es
estimar cunta carga deber
soportar el sistema para
evitar la degradacin

Prxima Clase
Clster
Fragmentacin
Replicacin
Paradigma Map-Reduce

Vous aimerez peut-être aussi