Académique Documents
Professionnel Documents
Culture Documents
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
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
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
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.
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
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?
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
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
Prxima Clase
Clster
Fragmentacin
Replicacin
Paradigma Map-Reduce