El quórum es el número mínimo de votos que una transacción distribuida debe obtener para poder realizar una operación en un sistema distribuido . Se implementa una técnica basada en quórum para garantizar la coherencia operativa en un sistema distribuido.
Técnicas basadas en quórum en sistemas de bases de datos distribuidas
La votación basada en quórum puede utilizarse como método de control de réplicas , [ 1 ] así como método de confirmación para garantizar la atomicidad de las transacciones en presencia de particionamiento de red . [ 1 ]
Votación basada en quórum en protocolos de confirmación
En un sistema de base de datos distribuida , una transacción puede ejecutarse en múltiples sitios. Dado que la atomicidad exige que cada transacción distribuida sea atómica, debe tener el mismo resultado ( confirmación o cancelación ) en todos los sitios. En el caso de particionamiento de red , los sitios se dividen y las particiones pueden no comunicarse entre sí. Aquí es donde entra en juego una técnica basada en quórum. La idea fundamental es que una transacción se ejecuta si la mayoría de los sitios votan a favor de su ejecución.
A cada sitio del sistema se le asigna un voto V i . Supongamos que el número total de votos en el sistema es V y que los quórums de aborto y confirmación son V a y V c , respectivamente. Entonces, se deben cumplir las siguientes reglas en la implementación del protocolo de confirmación:
- V a + V c > V, donde 0 < V c , V aV.
- Antes de que una transacción se confirme, debe obtener un quórum de confirmación Vc . El total de al menos un sitio que esté preparado para confirmar y cero o más sitios en espera.V c . [ 2 ]
- Antes de que una transacción se aborte, debe obtener un quórum de aborto V a El total de cero o más sitios que están preparados para abortar o cualquier sitio en esperaV a .
La primera regla garantiza que una transacción no pueda confirmarse y cancelarse simultáneamente. Las dos reglas siguientes indican los votos que una transacción debe obtener antes de poder finalizar de una u otra forma.
Votación basada en quórum para el control de réplicas
En las bases de datos replicadas, un objeto de datos tiene copias en varios sitios. Para garantizar la serialización , no se debe permitir que dos transacciones lean o escriban un elemento de datos simultáneamente. En el caso de las bases de datos replicadas, se puede utilizar un protocolo de control de réplicas basado en quórum para asegurar que dos transacciones no lean ni escriban dos copias de un elemento de datos simultáneamente.
La votación basada en quórum para el control de réplicas se debe a [Gifford, 1979]. [ 3 ] A cada copia de un elemento de datos replicado se le asigna un voto. Cada operación debe obtener un quórum de lectura (V r ) o un quórum de escritura (V w ) para leer o escribir un elemento de datos, respectivamente. Si un elemento de datos dado tiene un total de V votos, los quórums deben obedecer las siguientes reglas:
- V r + V w > V
- V w > V/2
La primera regla garantiza que un elemento de datos no pueda ser leído y escrito simultáneamente por dos transacciones. Además, asegura que un quórum de lectura contenga al menos un sitio con la versión más reciente del elemento de datos. La segunda regla garantiza que dos operaciones de escritura de dos transacciones diferentes no puedan ocurrir simultáneamente sobre el mismo elemento de datos. Ambas reglas aseguran que se mantenga la serialización de una sola copia.
Véase también
Referencias
- 1 2 Ozsu, Tamer M; Valduriez, Patrick (1991). "12". Principios de sistemas de bases de datos distribuidas (2.ª ed.). Upper Saddle River, NJ: Prentice-Hall, Inc. ISBN 978-0-13-691643-7.
- ↑ Skeen, Dale. "Un protocolo de confirmación basado en quórum" (PDF) . Biblioteca ECommons de la Universidad de Cornell . Consultado el 10 de febrero de 2013 .
- ↑ Gifford, David K. (1979). Votación ponderada para datos replicados . SOSP '79: Actas del séptimo simposio de la ACM sobre principios de sistemas operativos. Pacific Grove, California, Estados Unidos: ACM. págs. 150–162 . CiteSeerX 10.1.1.12.6256 . doi : 10.1145/800215.806583 .
- Sistemas de gestión de bases de datos
- Procesamiento de transacciones