Está en la página 1de 13

Bases de datos web

Ricardo Galli
gallir@uib.es http://ow.ly/33QGk

Mitos

La base de datos ser gigantesca La normalizacin es fundamental No se puede perder un dato No hacen falta transacciones Hace falta un cluster Las consultas darn los tiempos adecuados porque el gestor es muy eficiente Los programadores saben de bases de datos

Escalado

Escalado vertical: aumentar la potencia del servidor


Muy simple Ms caro

Escalado horizontal: aumentar ordenadores


Ms complejo Ms barato Muy fcil para aplicaciones web

Requisitos

Siempre en marcha Cargas fundamentalmente transaccionales Datos simples, consultas simples Disponibilidad sobre consistencia Desarrollo gil/rpido Despliegue en lnea Construido por desarrolladores

Crecimiento tpico

Servidor nico Mster y rplicas esclavas Nivel de cach Clusters...

Todos quieren clusters

No existe todava una solucin genrica de clustering que funcione para todos los casos Teorema CAP y ACID vs BASE

ACID

Atomicity: todo o nada Consistency: se pasa de un estado consistente a otro Isolation: no leer datos no commited (nota: dirty reads) Durability: una vez ha sido commited no se perder.

CAP

Consistency: todo o nada (equivalente a atomicidad en ACID) Availability: disponibilidad permanente. Partition Tolerance: la cada parcial de red/nodos no causa resultados errneos
Puedes tener cualquiera de los dos, pero no los tres simultneamente Ms info: http://goo.gl/0DKD

BASE

Basically available Soft state Eventual consistency

Alternativas a clustering en MySQL


DRDB y heartbeat Gestor de replicacin mster-mster (MMM) Soluciones basadas en proxy

Estrategia I

Requisitos de arquitectura Soluciones ganadoras fciles:

Cache (como memcache, memoria compartida en xcache...) Acotar los lmites (nmeros de amigos, etc.) Limitar los requerimientos

Arquitecturas seguras

Mster + esclavos Mster-mster + esclavos Particionado funcional

Estrategia II

Buenas apuestas

Failover y balanceo de carga


Usar ACID desde el principio Usar la herramienta adecuada, las BBDD no sirven para todo

Arquitectura ms riesgosas

Sharding
Escribir en varios msters Replicacin multinivel y anular Patrones de diseo atributo-valor

Buenas prcticas

Hacer backups desde un esclavo Facilitar los cambios de esquema Monitorizacin e instrumentalizacin Anlisis de rendimiento Archivar y eliminar datos obsoletos

También podría gustarte