Академический Документы
Профессиональный Документы
Культура Документы
de bases de datos. La divisin de los datos dentro de las reas funcionales a travs de mltiples
bases de datos, o particiones, aade la segunda dimensin de la escalabilidad horizontal. El
diagrama en la figura 1 ilustra las estrategias de datos la escala horizontal.
Como ilustra la figura 1, ambos enfoques del escalamiento horizontal se pueden aplicar a la
vez. Los usuarios, los productos y las transacciones pueden estar en bases de datos separadas.
Adems, cada rea funcional se puede dividir en varias bases de datos para la capacidad
transaccional. Como se muestra en el diagrama, las reas funcionales se pueden escalar
independientemente uno de otro.
PARTICIN FUNCIONAL
La particin funcional es importante para lograr altos grados de escalabilidad. Cualquier buena
arquitectura de base de datos descompondr el esquema en tablas agrupadas por funcionalidad. Los
usuarios, productos, transacciones, y la comunicacin son ejemplos de reas funcionales. El
Aprovechamiento de conceptos de bases de datos como claves externas, es un enfoque comn para
el mantenimiento de la coherencia entre estas reas funcionales.
Basndose en las limitaciones de la base de datos para garantizar la consistencia entre los
distintos grupos funcionales crea un acoplamiento del esquema de una estrategia implementacin de
la base de datos, lo que impide la escalabilidad horizontal a medida que aumentan las tasas de
transaccin. En muchos casos, la oportunidad ms fcil escalabilidad horizontal se mueve de los
grupos funcionales de los datos a los servidores de bases de datos discretos.
Los esquemas que pueden escalarse a muy altos volmenes de transacciones colocarn
datos funcionalmente distintos en diferentes servidores de bases de datos. Esto requiere quitar las
limitaciones de la base de datos y colocarlas en en la aplicacin. Esto tambin presenta varios
desafos que se tratan ms adelante en este artculo.
TEOREMA CAP
Eric Brewer, profesor en la Universidad de California y Berkeley, cofundador y director cientfico
de Inktomi, hizo la conjetura de que los servicios web no pueden asegurar las tres siguientes
propiedades a la vez (representado por el acrnimo CAP):
Consistencia. El cliente percibe que se ha producido un conjunto de operaciones a la vez.
Cul es el inconveniente? Estamos obteniendo consistencia entre las particiones. Si Brewer tiene
razn, entonces debemos estar afectando la disponibilidad, pero cmo?
La disponibilidad de cualquier sistema es producto de la disponibilidad de los componentes
necesarios para la operacin. La ltima parte de esa declaracin es la ms importante. Los
componentes que pueden ser utilizados por el sistema pero no se requieren, no reducen la
disponibilidad del sistema. Una transaccin que involucra dos bases de datos en un 2PC commit
tendr la disponibilidad del producto de la disponibilidad de cada base de datos. Por ejemplo, si
suponemos que cada base de datos tiene 99,9 por ciento de disponibilidad, entonces, la
disponibilidad de la transaccin seria del 99,8 por ciento, o un tiempo de inactividad adicional de 43
minutos por mes.
UNA ALTERNATIVA A ACID.
Si ACID proporciona la opcin de consistencia para bases de datos particionadas,
entonces, cmo lograr la disponibilidad en su lugar? Una respuesta es BASE
(bsicamente disponibles, estado blando, eventualmente consistente).
En general, la consistencia entre los grupos funcionales es ms fcil de relajar que dentro
de ellos. El esquema del ejemplo tiene dos grupos funcionales: usuarios y transacciones.
Cada vez que se vende un artculo, se agrega una fila a la tabla de transacciones y los
contadores para el comprador y el vendedor se actualizan. Si se utilizara una transaccin
de tipo CID, el SQL sera como se muestra en la figura 3.