Compromiso ordenando
|
|
Compromiso ordenando (CO) es una clase de interoperabilidad serializabilidad técnicas en control de concurrencia de bases de datos, procesamiento de transaccionesy relacionados con las aplicaciones. Permite optimista implementaciones (sin bloqueo). Con la proliferación de procesadores multi-core, CO se ha utilizado cada vez más en Programación concurrente, memoria transaccionaly especialmente en software de memoria transaccional (STM) para lograr serializabilidad con optimismo. CO es también el nombre de la transacción resultante horario propiedad (historia), que fue definido originalmente en 1988 con el nombre atomicidad dinámico.[1] En un horario compatible CO el orden cronológico de eventos compromiso de transacciones es compatible con el precedencia orden de las respectivas transacciones. El CO es un caso especial amplio de serializabilidad conflicto, y medios eficaces ()confiable, alto rendimiento, distribuidos, y escalable) para lograr serializabilidad global (modular serializabilidad) a través de cualquier colección de sistemas de base de datos que posiblemente utilizan mecanismos de control de concurrencia diferentes (CO también hace cada serializabilidad sistema compatible, si no ya).
Cada sistema de base de datos no-CO-compliant es aumentada con un componente de CO (Coordinador del orden de compromiso — COCO) que ordena los acontecimientos de compromiso para el cumplimiento de CO, con acceso a datos ni cualquier otra interferencia de operación de transacción. Como tal CO prevé una baja sobrecarga, solución general serializabilidad global (y serializabilidad distribuido), instrumental para control de concurrencia global (y control de concurrencia distribuido) de múltiples sistemas de base de datos y otros objetos transaccionales, posiblemente altamente distribuido (por ejemplo, dentro de Computación en la nube, la informatización en redy redes de smartphones). Un Protocolo de compromiso atómico (ACP; de cualquier tipo) es una parte fundamental de la solución utilizada para romper los ciclos globales en el gráfico de conflicto (prioridad, serializabilidad). CO es la propiedad más general (una condición necesaria) que garantiza serializabilidad global, si los sistemas de bases de datos involucrados no comparte información de control de concurrencia más allá de los mensajes de protocolo (sin modificar) compromiso atómica y no tiene conocimiento si las transacciones son globales o locales (son los sistemas de base de datos autónoma). Así CO (con sus variantes) es la técnica sólo general que no requiere la distribución típicamente costosa concurrencia local de información de control (por ejemplo, relaciones de precedencia local, cerraduras, timestamps o entradas). Generaliza el popular fuerte estricto bloqueo de dos fases Propiedad (SS2PL), que junto con el Protocolo de dos fases (2PC) es el estándar de facto para lograr serializabilidad global a través de sistemas de base de datos (base SS2PL). Como resultado CO compatible con base de datos de sistemas (con cualquier, tipos de control de concurrencia diferentes) transparente puede unirse a tales SS2PL basado en soluciones para serializabilidad global.
Además, bloqueo basado interbloqueos globales se resuelven automáticamente en un CO basado en entorno de múltiples bases de datos, un importante beneficio lateral (incluyendo el caso especial de una base completamente SS2PL ambiente; un hecho previamente inadvertido para SS2PL).
Por otra parte, compromiso estricto orden (SCO; Raz 1991c), la intersección de Rigor y CO, proporciona un mejor rendimiento (menor tiempo de finalización promedio transacción y mejor resultante de la transacción rendimiento de procesamiento) que SS2PL siempre se presenten conflictos de lectura / escritura (idénticos de bloqueo de comportamiento para escritura-lectura y escritura-escritura conflictos; comparable bloqueo arriba). La ventaja de SCO es especialmente significativa durante la contención de la cerradura. Rigor permite SS2PL y SCO usar el mismo eficaz recuperación de bases de datos mecanismos.
Existen dos variantes principales de generalización del CO, CO extendida (ECO; Raz 1993a) y multi-versión CO (MVCO; Raz 1993b). También proporciona serializabilidad global sin distribución de información de control de concurrencia local, puede combinarse con cualquier control de simultaneidad pertinentes y permiten implementaciones optimistas (sin bloqueo). Ambos utilizan información adicional para relajar las restricciones de CO y lograr mejor concurrencia y rendimiento. Voto pedido (VO o CO generalizada (GCO); Raz 2009) es un envase calendario conjunto (propiedad) y técnica para el CO y todas sus variantes. VO local es una condición necesaria para garantizar la serializabilidad global, si los participantes de protocolo (ACP) compromiso atómico no comparte información de control de concurrencia (tienen el autonomía generalizada propiedad). CO y sus variantes entre operan transparente, garantizando serializabilidad global y resolución automática de deadlocks global también juntos en un entorno heterogéneo, mezclado con diferentes variantes.
Contenido
- 1 Resumen
- 2 El compromiso de pedir solución para serializabilidad global
- 2.1 Caracterización general de CO
- 2.2 El algoritmo distribuido de CO
- 2.2.1 Aplicar mundiales de CO
- 2.2.2 Caracterización exacta de interbloqueos votando por ciclo global
- 2.3 Cantidad CO localmente
- 2.3.1 Un algoritmo de CO local genérico
- 2.3.2 Ejemplo: Programación concurrente y memoria transaccional
- 2.3.3 Consideraciones de implementación: el compromiso orden Coordinador (COCO)
- 2.4 CO es una condición necesaria para serializabilidad global a través de sistemas autónomos de base de datos
- 2.5 Resumen
- 3 Serializabilidad distribuido y CO
- 3.1 CO distribuido
- 3.2 CO optimista distribuidos (DOCO)
- 3.3 Ejemplos
- 3.3.1 SS2PL distribuida
- 3.3.2 Variaciones
- 3.3.3 Hipotético ambiente Multi Core Single-Threaded (música)
- 4 CO variantes: interesantes casos especiales y las generalizaciones
- 4.1 Fase de fuertes dos estrictos bloqueo (SS2PL)
- 4.2 CO estricta (SCO)
- 4.3 CO optimista (OCO)
- 4.4 CO extendida (ECO)
- 4.4.1 Caracterización general de ECO
- 4.4.2 El algoritmo ECO
- 4.5 Multi-versión CO (MVCO)
- 4.5.1 Ejemplo: CO base de aislamiento de instantánea (COSI)
- 4.6 CO y sus variantes son interoperables transparente para serializabilidad global
- 5 Referencias
- 6 Notas al pie
- 7 Enlaces externos
Resumen
El Compromiso ordenando (CO; Raz 1990, 1992, 1994, 2009) propiedad de programación se ha referido también como Atomicidad dinámico (desde 1988[1]), cometer pedidos, cometer orden serializabilidad, y fuerte capacidad de recuperación (desde 1991). Este último es un nombre engañoso ya que el CO es incomparable con capacidad de recuperación, y el término "fuerte" implica un caso especial. Esto significa que un programa con una propiedad de fuerte capacidad de recuperación no necesariamente tiene la propiedad de CO y viceversa.
En el 2009 CO se ha caracterizado como un método de control de mayor concurrencia, junto con los tres métodos principales previamente conocidos (desde 1980): Bloqueo, Pedir hora, y Serialización gráfica pruebay como un facilitador para la interoperabilidad de los sistemas que utilizan mecanismos de control de concurrencia diferentes.[2]
En un sistema de bases de datos federadas o cualquier otro más libremente definición sistema multidatabase, que normalmente se encuentran distribuidas en una red de comunicación, las transacciones abarcan múltiples y, posiblemente, Bases de datos distribuidas. Hacer cumplir serializabilidad global en tal sistema es problemático. Incluso si todos los horarios locales de una sola base de datos es serializable, aún así, el calendario global de todo un sistema no es necesariamente serializable. Los intercambios de comunicación masiva de información entre bases de datos para alcanzar serializabilidad conflicto conflicto llevaría a rendimiento inaceptable, debido principalmente a la informática y las comunicaciones latencia. El problema de lograr serializabilidad global efectivamente había sido caracterizado como abrir hasta la divulgación pública de CO en 1991 por su inventor Yoav Raz (Raz 1991a; Véase también Serializabilidad global).
Cantidad CO es una forma efectiva de hacer valer serializabilidad conflicto en todo el mundo en un sistema distribuido, desde ejecución CO localmente en cada base de datos (u otro objeto transaccional) también lo aplica en todo el mundo. Cada base de datos puede usar cualquiera, posiblemente diferente, tipo de mecanismo de control de concurrencia. Con un mecanismo local que ya proporciona serializabilidad conflicto, cumplir CO localmente no causa ningún adicionales interrupciones, desde hacer cumplir CO localmente no afecta la planificación estrategia del mecanismo de acceso a los datos (esta programación determina la serializabilidad relacionados con interrupciones; este mecanismo típicamente no tiene en cuenta los acontecimientos de compromiso o su orden). La solución de CO no requiere ninguna sobrecarga de comunicación, puesto que utiliza (sin modificar) compromiso atómico mensajes de protocolo únicos, ya sea necesarios por cada transacción distribuida para alcanzar atomicidad. Un protocolo de compromiso atómica desempeña un papel central en el algoritmo CO distribuido, que impone el CO a nivel mundial, rompiendo los ciclos globales (ciclos que abarcan dos o más bases de datos) en el gráfico de conflicto global. CO, sus casos especiales y sus generalizaciones son interoperables y lograr serializabilidad global y transparente ser utilizados juntos en un solo entorno distribuido heterogéneo compuesto por objetos con mecanismos de control de concurrencia posiblemente diferentes. Como tal, Compromiso ordenando, incluyendo sus casos especiales y junto con sus generalizaciones (véase CO variantes más abajo), proporciona un general de alto rendimiento, solución completamente distribuida (estructura de datos central o componente de procesamiento central no son necesarios) para garantizar serializabilidad global en entornos heterogéneos de sistemas multidatabase y otros varios objetos transaccionales (objetos con acceder y modificar solamente por transacciones; por ejemplo, en el marco de los Estados procesos transaccionalesy dentro de Cloud computing y la informatización en red). La solución de CO escala con tamaño de red y el número de bases de datos sin ningún impacto negativo en el rendimiento (suponiendo que las estadísticas de una sola transacción distribuida, por ejemplo, el promedio de las bases de datos con una sola transacción, no han cambiado).
Con la proliferación de Procesadores multi-core, Optimista CO (OCO) ha sido también cada vez más utilizado para lograr serializabilidad en software memoria transaccional, y ya se han publicado numerosos artículos STM y patentes utilizando la "orden de cometer" (por ejemplo, Zhang et al. 2006[3]).
El compromiso de pedir solución para serializabilidad global
Caracterización general de CO
Compromiso ordenando (CO) es un caso especial de serializabilidad conflicto. CO puede aplicarse con sin bloqueo mecanismos (cada transacción puede terminar su tarea sin tener su acceso a los datos bloqueado, que permite control de concurrencia optimista; Sin embargo, compromiso podría ser bloqueado). En CO programar (de los eventos compromisoparcial) orden de precedencia de las transacciones se corresponde con el orden de precedencia (parcial) de las transacciones respectivas en el ()dirigida) gráfico (gráfico de precedencia, serializabilidad gráfico), en conflicto como inducida por sus operaciones conflictivas de acceso (generalmente leer y escribir (insertar/modificar/eliminar) las operaciones; CO también se aplica a las operaciones de nivel superiores, donde son contradictorias si No conmutativaasí como a los conflictos entre las operaciones sobre datos multi-versión).
- Definición: compromiso ordenando
- Dejar dos comprometido las transacciones en un horario tal que es en un conflicto con ( precede ). El programa tiene la Compromiso ordenando Propiedad (CO), si por cada dos de tales transacciones se compromete antes se compromete.
Los eventos de la decisión de compromiso son generados por un mecanismo de compromiso local, o un protocolo de compromiso atómica, si necesitan diferentes procesos para alcanzar un consenso sobre si se debe confirmar o anular. El protocolo puede ser distribuido o centralizado. Las transacciones podrán comprometerse al mismo tiempo, si la orden de cometer parcial permite (si no tienen operaciones conflictivas). Si diferentes operaciones contradictorias inducen diferentes órdenes parciales de las mismas transacciones, entonces el gráfico de conflicto tiene ciclos, y el horario violará serializabilidad cuando todas las transacciones en un ciclo están comprometidas. En este caso no puede encontrarse ninguna orden parcial para eventos de compromiso. Así, ciclos en el gráfico de conflicto tiene que ser roto por la interrupción de las transacciones. Sin embargo, cualquier programa serializable de conflicto puede hacerse CO sin abortar cualquier transacción, retrasando correctamente cometer hechos para cumplir con la orden parcial de la precedencia de las transacciones.
CO aplicación por sí mismo no es suficiente como un mecanismo de control de concurrencia, puesto que carece de CO la propiedad de la capacidad de recuperación, que debe ser apoyada también.
El algoritmo distribuido de CO
Una totalmente distribuida Compromiso mundial ordenar algoritmo de aplicación existe, que utiliza CO local de cada base de datos de participante y necesita sólo mensajes de protocolo de compromiso atómico (no modificados) con ninguna otra comunicación. El algoritmo distribuido es la combinación de procesos locales (para cada base de datos) algoritmo de CO y un protocolo de compromiso atómico (que puede ser totalmente distribuido). Protocolo de compromiso atómico es esencial para hacer valer la atomicidad de cada transacción distribuida (para decidir si confirmar o anular; este procedimiento siempre se realiza para las transacciones distribuidas, independientemente del control de concurrencia y CO). Un ejemplo común de un protocolo de compromiso atómico es el Protocolo de dos fases, que es resistente a muchos tipos de fallos en el sistema. En un ambiente confiable, o fallan los procesos generalmente juntos (por ejemplo, en el mismo circuito integrado), puede usarse un protocolo más simple para compromiso atómico (por ejemplo, un simple apretón de manos de transacción distribuida de participantes procesos con algunos arbitraria pero conocido participante especial, Coordinador de la transacción, es decir, un tipo de monofásicas commit Protocolo). Un protocolo de compromiso atómico alcanza consenso entre los participantes sobre la conveniencia de commit o abortar una transacción distribuida (global) que abarca a estos participantes. Es una etapa esencial en cada dicho protocolo el Votar Sí (explícitos o implícitos) por cada participante, que significa la obligación del voto participante a obedecer la decisión del protocolo, o confirmar o anular. Si un participante no puede unilateralmente anular la transacción por una explícita derecho a voto. El protocolo compromete la transacción sólo si sí han recibido votos de todos los participantes, y por lo tanto típicamente un voto de falta de un participante no es considerado un voto por este participante. De lo contrario el protocolo anula la transacción. Los diversos protocolos de commit atómico sólo difieren en su capacidad para manejar diferentes situaciones de fracaso entorno informático y las cantidades de obra y otros recursos informáticos necesarios en diferentes situaciones.
La solución completa de CO para global serializabilidad es basado en el hecho de que en el caso de un voto de falta de una transacción distribuida, el protocolo de compromiso atómica eventualmente anula esta transacción.
Aplicar mundiales de CO
En cada sistema de base de datos un algoritmo CO local determina el orden de compromiso necesario para esa base de datos. Por la caracterización de CO anterior, esta orden depende del orden de precedencia local de transacciones, que da como resultado del acceso de datos local los mecanismos de programación. En consecuencia sí votos en el protocolo de compromiso atómicos están programadas para cada transacción distribuida (unaborted) (en lo que sigue "un voto" significa un voto de sí). Si existe una relación de precedencia (conflicto) entre dos transacciones, entonces el segundo no votará antes de la primera (comprometidos o abortada), para impedir posibles cometer violación de orden por el protocolo de compromiso atómico. Tal puede ocurrir desde la orden de cometer por el protocolo no es necesariamente el mismo que el orden de la votación. Si no existe ninguna relación de precedencia, ambos pueden votarse concurrentemente. Esto voto pedido estrategia asegura que también el protocolo de compromiso atómica mantiene orden de compromiso, y es un condición necesaria para garantizar la CO mundial (y el comandante local de una base de datos, sin ambos CO Global y Local CO (una propiedad lo que significa que cada base de datos es compatible con CO) pueden ser violado).
Sin embargo, puesto que los sistemas de bases de datos programación sus transacciones independientemente, es posible que órdenes de precedencia de las operaciones en dos bases de datos o más no son compatibles (sin ningún orden parcial global existe que puede Insertar las respectivas locales órdenes parciales juntas). Con precedencia CO órdenes son también las órdenes de compromiso. Cuando participantes las bases de datos en un mismo distribuyeron transacción no tienen órdenes de precedencia local compatible para esa transacción (sin "saber"; normalmente hay coordinación entre los sistemas de base de datos existe sobre conflictos, puesto que la comunicación necesaria es masiva y degrada inaceptablemente rendimiento) significa que la transacción reside en un ciclo global (que involucra dos o más bases de datos) en el gráfico de conflicto global. En este caso el protocolo de compromiso atómico fallará a recoger todos los votos necesarios para esa transacción: por el voto pedido estrategia por encima de al menos una base de datos retrasará su voto para esa transacción indefinidamente, para cumplir con su propia orden de compromiso (prioridad), ya que lo estará esperando a la terminación del otro, anterior transacción en ese ciclo global, retrasado indefinidamente por otra base de datos con un orden diferente. Esto significa un voto-interbloqueo situación que involucra a las bases de datos en ese ciclo. Como resultado el protocolo eventualmente abortará alguna transacción estancada en este ciclo global, puesto que cada transacción tal carece de voto de por lo menos uno de los participantes. Selección de la transacción específica en el ciclo para ser abortada depende de políticas de interrupción del protocolo compromiso atómica (un tiempo de espera mecanismo es común, pero puede provocar una interrupción necesaria más de una por ciclo; tanto evitando innecesarias se aborta y abortar tiempo acortamiento puede lograrse mediante un mecanismo de interrupción dedicado para CO). Tal interrupción romperá el ciclo global que implica esa transacción distribuida. Ambas transacciones estancadas y posiblemente otro en conflicto con la estancada (y por lo tanto bloqueado) estará libre para ser votada. Es que vale la pena destacar que cada base de datos involucrados con el estancamiento electoral continúa a votar periódicamente sobre las transacciones que no están en conflicto con su transacción estancada, normalmente casi todas las transacciones pendientes. Así, en el caso de las órdenes incompatibles local compromiso (parcial), ninguna acción es necesaria porque el protocolo de compromiso atómica resuelve automáticamente por abortar una transacción que es una causa de incompatibilidad. Esto significa que el anterior voto pedido estrategia también es un condición suficiente para garantizar la CO Global.
Se concluye lo siguiente:
- La votación ordenando la estrategia para el cumplimiento Global de CO Teorema
- Dejar ser indeciso (ni comprometidas ni abortadas) transacciones en un sistema de base de datos que aplica CO para las transacciones locales, tal que es global y en conflicto con ( precede ). Entonces, teniendo terminó (comprometidos o abortados) antes de se vota estar comprometida (la voto pedido estrategia), en cada sistema de dicha base de datos en un entorno multidatabase, es un condición necesaria y suficiente para garantizar la CO Global (la condición garantiza Global CO, que puede ser violado sin ella).
- Comentario:
- El voto pedido estrategia Eso obliga a mundiales de CO se conoce como en)Raz 1992).
- La propiedad Local CO de una agenda global significa que cada base de datos es compatible CO. Desde la parte de discusión necesidad por encima de ella sigue directamente que el Teorema es cierto también cuando reemplace "Global CO" con "CO Local" cuando las transacciones globales están presentes. Juntos significa que Global CO está garantizada Si y sólo si CO local está garantizada (que es falso para serializabilidad conflicto Global y serializabilidad conflictos locales: Global implica Local, pero no lo contrario).
CO global implica serializabilidad Global.
El Algoritmo global CO se compone de cumplir CO (local) en cada sistema de base de datos participantes ordenando confirmaciones de transacciones locales (véase Cantidad CO localmente a continuación) y hacer cumplir la voto pedido estrategia en el teorema por encima (para transacciones globales).
Caracterización exacta de interbloqueos votando por ciclo global
El anterior ciclo global del proceso de eliminación por un estancamiento electoral puede ser explicado en detalle por la siguiente observación:
Primero se asume, por razones de simplicidad, que cada transacción llega al estado de listo-a-commit y se vote por al menos una base de datos (esto implica que no hay bloqueo por parte de las cerraduras se produce). Definir un gráfico de "esperar a votar a cometer" como un grafo dirigido con transacciones como nodos y un borde dirigido desde las primeras transacciones a una segunda operación si la primera transacción bloquea la votación comprometerse de la segunda operación (opuesta a la dirección de borde convencional en un Espera-gráfico). Tal bloqueo ocurre sólo si la segunda operación es en un conflicto con la primera transacción (ver arriba). Así este gráfico "espera para que votar a cometer" es idéntica a la gráfica del conflicto global. Un ciclo en el gráfico de "esperar a votar a cometer" significa un estancamiento en la votación. Por lo tanto hay un estancamiento en la votación si y sólo si hay un ciclo en el gráfico de conflicto. Ciclos locales (confinados a una sola base de datos) son eliminados por los mecanismos locales serializabilidad. En consecuencia se dejan ciclos sólo globales, que luego son eliminados por el protocolo de compromiso atómica cuando anular transacciones estancadas con faltantes votos respectivos (bloqueados).
En segundo lugar, también comete locales se trata: nota que al hacer cumplir CO también esperando un commit local regular de una transacción local puede bloquear commits locales y votos de otras transacciones sobre los conflictos y la situación para las transacciones globales no cambia también sin la Asunción simplificaión anterior: el resultado final es lo mismo también con el compromiso local para transacciones locales, sin voto en compromiso atómico para ellos.
Finalmente, bloqueo por un bloqueo (que hasta ahora ha sido excluido) debe ser considerado: un bloqueo bloquea una operación contradictoria e impide que un conflicto se materializa. Si el bloqueo se libera solamente después del final de la transacción, puede bloquear indirectamente un voto o un commit local de otra transacción (que ahora no puede llegar a estado de lista), con el mismo efecto a partir de un bloqueo directo de un voto o un commit local. En este caso un ciclo se genera en el gráfico de conflicto sólo si tal un bloqueo por un bloqueo también está representado por un borde. Con tales bordes añadidos que representan eventos de bloqueo-por-un-lock, el gráfico de conflicto se está convirtiendo en un gráfico de conflicto aumentada.
- Definición: aumentada gráfico de conflicto
- Un gráfico de conflicto aumentada es un gráfico de conflicto con bordes agregó: además de los bordes originales un borde dirigido existe de transacción de transacción Si se cumplen dos condiciones:
- está bloqueada por un bloqueo de acceso a datos aplicado por (el bloqueo impide que el conflicto de con de ser materializado y tener ventaja en el gráfico de conflicto regular), y
- Este bloqueo no se detendrá antes de termina (comete o aborta; true para cualquier CO base de fijación)
- El gráfico también puede definirse como la Unión de la (regular) gráfico de conflicto con el (invertido borde, regular) Espera-gráfico
- Comentario:
- Aquí, a diferencia de la gráfica de conflicto regular, que tiene los bordes sólo para conflictos materializados, todos los conflictos, materializados y desmaterializadas, están representados por los bordes.
- Tenga en cuenta que todos los bordes nuevos son todos los (al revés de lo convencional) los bordes de la Espera-gráfico. El Espera-gráfico también se puede definir como el gráfico de los conflictos no se materializó. Por el sentido común de borde de convenciones en un gráfico de conflicto define el orden de tiempo entre operaciones conflictivas que es opuesta a la orden de tiempo definido por un borde en un Espera-gráfico.
- Tenga en cuenta que contiene dicha gráfico global (ha encajado) todo el local regular (borde invertido) esperar-para gráficos y también mayo incluyen bloqueo basado en los ciclos globales (que no pueden existir en los gráficos locales). Por ejemplo, si todas las bases de datos en un ciclo global están basado en SS2PL, entonces todas las situaciones bloqueo de voto relacionados son causadas por las cerraduras (este es el clásico y probablemente la situación de estancamiento global sólo tratadas en la literatura de investigación de base de datos). Este es un caso de estancamiento global donde cada uno relacionado a base de datos crea una porción del ciclo, pero el ciclo no reside en cualquier tipo de espera local-gráfico.
En presencia de CO la gráfico de conflicto aumentada es en realidad un (borde invertido) local-commit y votación espera-gráfico:: Un borde existe desde una primera transacción, local o global, a un segundo, si la segunda está esperando por primera terminar para ser votado (si global), o localmente cometió (si es local). Todos ciclo global (entre dos o más bases de datos) en este gráfico de generar voto-interbloqueos. Ciclo global de la gráfica proporciona completa caracterización para votar los interbloqueos y puede incluir cualquier combinación de conflictos materializados y desmaterializadas. Sólo ciclos de conflictos materializados (solamente) son también los ciclos del gráfico regular conflictos y afectan serializabilidad. Uno o más (bloqueo relacionada) desmaterializadas conflictos en un ciclo de impiden que siendo un ciclo en el gráfico de conflicto regular y hacen un bloqueo interbloqueo relacionado. Todos los ciclos globales (votación-interbloqueos) necesitan ser roto (resuelta) tanto mantener serializabilidad global y resolver interbloqueos globales que implica el acceso a los datos de cierre, y de hecho están rotas por el protocolo de compromiso atómica debido a la faltantes votos en un callejón sin salida electoral.
Comentario: Esta observación también explica la corrección de CO extendida (ECO) abajo: orden de la votación las transacciones globales debe seguir el orden gráfico conflicto con voto de bloqueo cuando existe relación de la orden (trayectoria de gráfico) entre dos transacciones globales. Transacciones locales no se votaron en y sus confirmaciones (local) no están bloqueados en los conflictos. Esto resulta en mismas situaciones de estancamiento electoral y resultante ciclo global del proceso de eliminación de ECO.
El votación-callejón sin salida situación puede resumirse de la siguiente manera:
- El teorema de votación-Deadlock CO
- Deja un multidatabase entorno conforman CO obediente (que elimina ciclos locales) base de datos de sistemas que hacen cumplir, cada uno, Mundiales de CO (usando la condición en el teorema anterior). A continuación, un votación-callejón sin salida se produce si y sólo si un ciclo global (abarca dos o más bases de datos) existe en la Gráfico de conflicto global aumentada (también bloqueo por un bloqueo de acceso a datos es representado por un borde). Si el ciclo no se rompe por cualquier interrupción, entonces todos los transacciones globales en están involucrados con el respectivo voto-callejón sin salida, y al final cada uno tiene su voto bloqueado (directamente o indirectamente por un bloqueo de acceso a datos); Si una transacción local reside en el ciclo, finalmente tiene su compromiso (local) bloqueado.
- Comentario: Puede ocurrir una situación rara de un callejón sin salida electoral (por faltantes votos bloqueados), con no votar por cualquier transacción en el ciclo relacionado por cualquiera de los sistemas de bases de datos involucrados con estas transacciones. Esto puede ocurrir cuando son locales subtransacciones multi-threaded. La instancia de probabilidad más alta de tal acontecimiento raro consiste en dos operaciones en dos simultánea frente a ciclos. Tales ciclos globales (bloqueos) coinciden con los ciclos locales que son resueltos localmente y así normalmente resueltos por mecanismos locales sin que ello suponga compromiso atómico. Formalmente es también un ciclo global, pero prácticamente es local (porciones de ciclos locales generan una global; ver esto, dividir cada transacción global (nodo) al locales subtransacciones (confinado sus porciones cada uno a una única base de datos) existe un borde dirigido entre transacciones si existe un borde entre las respectivas transacciones locales sub; un ciclo es local si todos sus bordes originan un ciclo entre las transacciones de la misma base de datosy global si no es así; global y local se puede superponer: un mismo ciclo entre transacciones puede resultar de varios ciclos diferentes entre subtransacciones y ser tanto locales como globales).
También se concluye el caso especial basado en bloqueo siguiente:
- El teorema de estancamiento Global CO base de fijación
- En un sistema compatible con multidatabase de CO un bloqueo basado en global-callejón sin salida, que implica al menos un bloqueo de acceso a datos (desmaterializadas conflicto) y dos o más sistemas de base de datos, es un reflejo de un ciclo global en el Gráfico de conflicto global aumentada, que se traduce en un bloqueo de la votación. Tal ciclo no es un ciclo en el (regular) Gráfico de conflicto global (que refleja sólo materializó los conflictos, y por lo tanto tal ciclo no afecta serializabilidad).
- Comentario:
- Cualquier bloqueo (borde) en el ciclo que no es por un bloqueo de acceso a datos es un bloqueo directo de votación o local se comprometen. Todos a votar-interbloqueos se resuelven (casi todos de Compromiso atómico; véase comentario anterior), incluyendo este tipo de base de fijación.
- Global-interbloqueos basados en bloqueo pueden generarse también en un entorno distribuido totalmente basada en SS2PL (caso especial de CO base), donde todos los voto de bloqueo (y votar-interbloqueos) son causados por bloqueos de acceso a datos. Muchos artículos de investigación han tratado durante años resolver tales bloqueos globales, pero ninguno (excepto los artículos CO) destaca (a partir de 2009) a notar compromiso atómico automáticamente se les resuelve. Dichas resoluciones automáticos se producen regularmente inadvertida en todo SS2PL basado en multidatabase los sistemas existentes, a menudo pasando por alto los mecanismos de resolución dedicada.
Interbloqueos votación son la clave para el funcionamiento del CO distribuido.
Ciclo global de eliminación (resolución interbloqueo votar aquí por compromiso atómico) y ejecuciones re las transacciones abortadas resultantes son lentos, independientemente del control de concurrencia utilizado. Si las bases de datos programación transacciones independientemente, son inevitables los ciclos globales (en una analogía completa con ciclos/bloqueos generados en local SS2PL; con distribución, cualquier transacción u operación programación coordinación resultados en violación de la autonomía y normalmente también en pena importante en el rendimiento). Sin embargo, en muchos casos su probabilidad puede hacerse muy baja por aplicación de las directrices de diseño de bases de datos y transacciones que reducir el número de conflictos que implican una transacción global. Esto, principalmente por correctamente manejo puntos calientes (objetos de base de datos con acceso frecuente) y evitando los conflictos mediante el uso de Conmutatividad cuando sea posible (por ejemplo, cuando se utiliza extensivamente contadores, al igual que en las finanzas y especialmente la transacción múltiple contadores de acumulaciónque suelen ser puntos calientes).
Protocolos de compromiso atómico están destinados y diseñados para lograr atomicidad sin considerar el control de concurrencia de base de datos. Aborta al detectar o heurísticamente encontrar (por ejemplo, por timeout; a veces erróneamente, innecesariamente) perdiendo votos y normalmente conscientes de los ciclos globales. Estos protocolos pueden mejorarse especialmente para CO (incluyendo variantes de CO más abajo) tanto para evitar las interrupciones innecesarias y acelerar interrupciones utilizadas para romper los ciclos globales en el gráfico de conflicto global aumentada (para un mejor rendimiento por el anterior lanzamiento sobre transacciones-final de los recursos informáticos y datos normalmente cerradas). Por ejemplo, existen métodos de detección de interbloqueo global basado, aparte de tiempo de espera, de bloqueo se puede generalizar para considerar también cometer local y votar bloqueo directo, además de bloqueo de acceso de datos. Un posible compromiso en tales mecanismos es efectivamente detectar rompiendo la más frecuente y relativamente sencillo de manejar longitud-2 ciclos globales y usando timeout para ciclos sin ser detectado, mucho menos frecuentes, más largos.
Cantidad CO localmente
Compromiso ordenando puede aplicarse localmente (en una sola base de datos) por un algoritmo CO dedicado, o por cualquier algoritmo/protocolo que proporciona cualquier caso especial de CO. Dicho protocolo, se utiliza ampliamente en los sistemas de base de datos, que genera un horario CO, una importante es la fuerte estricta dos fases de bloqueo Protocolo (SS2PL: "liberar bloqueos de transacción sólo después de que la transacción ha sido comprometida o abortado"; véase más abajo). SS2PL es un subconjunto adecuado de la intersección de 2PL y rigor.
Un algoritmo de CO local genérico
A algoritmo de CO local genérico (Raz 1992; Algoritmo 4.1) es un algoritmo independiente de los detalles de implementación, que aplica exactamente la propiedad CO. No bloquee el acceso de datos (no bloqueo) y consiste en anular un determinado conjunto de transacciones (sólo si es necesario) al cometer una transacción. Anular un (únicamente determinada en un momento dado) conjunto mínimo de otros indecisos (ni comprometida, ni abortado) las operaciones que se ejecutan localmente y pueden producir serializabilidad infracción en el futuro (más tarde puede generar ciclos de transacciones confirmadas en el gráfico de conflicto es el conjunto de la interrupción de una transacción compromete T; después de cometer T no puede ser cometido ninguna transacción en abortar al tiempo de cometery todos ellos están condenados a ser abortada). Este conjunto consta de todas las transacciones de indecisas con bordes dirigidos en el gráfico del conflicto a la transacción comprometida. El tamaño de este conjunto no puede aumentar cuando esa transacción está esperando a ser comprometidos (en estado listo: procesamiento ha terminado) y normalmente disminuye en el tiempo a medida que sus transacciones se están decidiendo. Por lo tanto, a menos que en tiempo real Existen limitaciones para completar la transacción, es preferible esperar con cometer esa transacción y dejar que este conjunto disminuye su tamaño. Si existe otro mecanismo de serializabilidad localmente (que elimina los ciclos en el gráfico de los conflictos locales), o si no existe ningún ciclo de esa transacción, el conjunto será vacío con el tiempo, y ninguna interrupción de miembro determinado es necesario. De lo contrario el conjunto se estabilizará con transacciones en ciclos locales y abortaron miembros del conjunto tendrá que ocurrir para romper los ciclos. Puesto que en el caso de los conflictos CO generar bloqueo en cometer, ciclos de local en el aumenta conflicto gráfico (véase arriba) indican locales commit-interbloqueos y deadlock técnicas de resolución como en SS2PL puede ser utilizado (por ejemplo, como tiempo de espera y Espera-gráfico). Un ciclo de local en el gráfico de conflicto aumentada con al menos un conflicto desmaterializadas refleja un interbloqueo basada en bloqueo. El algoritmo local anterior, aplicada a la gráfica de conflicto local aumentada en lugar del gráfico regular conflictos locales, comprende la algoritmo de CO local mejorado genérico, un mecanismo de eliminación simple ciclo local, para garantizar serializabilidad local y manejo de bloqueo basado interbloqueos locales. Prácticamente un mecanismo de control de concurrencia adicional es siempre utilizado, incluso únicamente para reforzar la capacidad de recuperación. El algoritmo CO genérico no afecta el acceso a datos locales programación estrategia, cuando funciona junto de cualquier otro mecanismo de control de concurrencia local. Afecta sólo la orden de cometer, y por esta razón no necesita abortar más transacciones que debían abortarse por ningún mecanismo de control de concurrencia local combinada para la prevención de violaciones serializabilidad. El efecto neto del CO puede ser, a lo sumo, un retraso de cometer hechos (o votar en un ambiente distribuido), para cumplir con la orden de cometer necesarios (pero no se demore más que sus casos especiales, por ejemplo, SS2PL y en el promedio significativamente menor).
Se concluye el siguiente Teorema:
- El teorema del algoritmo genérico Local CO
- Cuando se ejecuta entonces solo o junto a cualquier mecanismo de control de concurrencia en un sistema de base de datos
- El Algoritmo de CO local genérico garantiza CO (local) (un programa compatible con CO).
- El Algoritmo de CO local mejorado genérico garantiza CO (local) y cierre (local) basado en la resolución del interbloqueo.
- y (cuando no se usa tiempo de esperay no en tiempo real se aplican restricciones de finalizar transacción) ni algoritmo anula las transacciones más que el mínimo necesitado (que viene determinado por las operaciones de las transacciones, fuera del alcance de los algoritmos de programación).
Ejemplo: Programación concurrente y memoria transaccional
- Véase también Programación concurrente y memoria transaccional
Con la proliferación de procesadores multi-core, variantes del algoritmo CO local genérico se han utilizado también cada vez más en la programación concurrente Memoria transaccionaly especialmente en Software memoria transaccional para lograr serializabilidad optimista por "orden de cometer" (por ejemplo, Ramadan et al., 2009[4] Zhang et al., 2006,[3] von Parun et al. 2007[5]). Ya se han publicado numerosos artículos relacionados y patentes utilizando CO.
Consideraciones de implementación: el compromiso orden Coordinador (COCO)
Se asume un sistema de base de datos en un entorno multidatabase. Desde un arquitectura de software punto de vista un CO componente que implementa el algoritmo CO genérico localmente, la Compromiso orden Coordinador (COCO), puede ser diseñado de una manera sencilla como un mediador entre un sistema de base de datos (single) y un compromiso atómico protocolo (componenteRaz 1991b). Sin embargo, el COCO suele ser una parte integral del sistema de base de datos. Funciones de COCO son votar a cometer en transacciones globales listas (procesamiento ha terminado) según el orden de compromiso local, a votar a abortar en caso de transacciones para las cuales el sistema de base de datos ha iniciado una interrupción (el sistema de base de datos puede iniciar abortar por cualquier transacción, por muchas razones) y pasar la decisión de compromiso atómico para el sistema de base de datos. Para transacciones locales (cuando se puede identificar) no votar es necesario. Para determinar el orden de compromiso el COCO mantiene las transacciones de una representación actualizada del conflicto local gráfico (o gráfico de conflicto local aumentada para capturas también cierre interbloqueos) de los indecisos (ni comprometido ni abortado) como una estructura de datos (por ejemplo, utilizando mecanismos similares a bloqueo para la captura de los conflictos, pero sin bloqueo de acceso a datos). El componente de COCO tiene un interfaz con su sistema de base de datos para recibir el "conflicto", "listo" (procesamiento ha terminado; preparación para votar sobre una transacción global o cometer uno local) y "abortar" las notificaciones del sistema de base de datos. También incluyan con el protocolo de compromiso atómico para votar y recibir la decisión del protocolo compromiso atómico sobre cada transacción global. Las decisiones se entregan de COCO para el sistema de base de datos a través de su interfaz, así como notificaciones de cometer las transacciones locales, en un orden apropiado se comprometen. El COCO, incluyendo sus interfaces, puede ser mejorado, si implementa otra variante del CO (véase abajo), o juega un papel en el mecanismo de control de concurrencia de la base de datos más allá de la votación en compromiso atómico.
El COCO también garantiza CO localmente en un sistema de base de datos única y aislada con ninguna interfaz con un protocolo de compromiso atómico.
CO es una condición necesaria para serializabilidad global a través de sistemas autónomos de base de datos
Si las bases de datos que participan en las transacciones distribuidas (es decir, las transacciones que abarcan más de una sola base de datos) no use cualquier información de control de concurrencia compartida y uso sin modificar mensajes de protocolo de compromiso atómica (para llegar a atomicidad), entonces manteniendo (local) compromiso ordenando o una de sus variantes de generalización (véase abajo) es un condición necesaria para garantizar la serializabilidad global (una prueba técnica puede encontrarse en)Raz 1992) y un método de prueba diferente para esto en ()Raz 1993a)); también es un condición suficiente. Esto es un hecho matemático derivado de las definiciones de serializabilidad y un transacción. Esto significa que si no conformándose con CO, entonces serializabilidad global no puede ser garantizada bajo esta condición (la condición de no concurrencia local control intercambio de información entre bases de datos más allá de los mensajes de protocolo commit atómico). Compromiso atómica es un requisito mínimo para una transacción distribuida ya que siempre es necesario, que está implícito en la definición de transacción.
(Raz 1992) define autonomía de base de datos y independencia como cumplir con este requisito sin utilizar ningún conocimiento local adicional:
- Definición: (control de concurrencia basado) sistema autónomo de base de datos
- Es un sistema de base de datos Autónoma, si no comparte con ninguna otra entidad cualquier información de control de concurrencia más allá sin modificar Protocolo de compromiso atómico mensajes. Además no utiliza para el control de concurrencia cualquier información local adicional más allá de los conflictos (la última frase no aparece explícitamente sino más bien implícita por otra discusión en Raz 1992).
Usando esta definición las siguientes se concluye:
- El CO y Global serializabilidad Teorema
- CO cumplimiento de todos los autónoma sistema de base de datos (u objeto transaccional) en un entorno multidatabase es un condición necesaria para garantizar la serializabilidad Global (sin CO Global puede ser violado serializabilidad).
- CO el cumplimiento de todos los sistemas de base de datos es un condición suficiente para garantizar la serializabilidad Global.
Sin embargo, la definición de autonomía anterior implica, por ejemplo, que las transacciones están programadas de forma que las transacciones locales (confinadas a una sola base de datos) no pueden ser identificadas como tal por un sistema autónomo de base de datos. Esto es realista para algunos objetos transaccionales, pero demasiado restrictivo y menos realista para sistemas de base de datos de propósito general. Si la autonomía es aumentada con la capacidad de identificar las transacciones locales, luego una propiedad más general, el cumplimiento Compromiso extendido pedidos (ECO, ver más abajo), hace ECO de la condición necesaria.
Sólo en)Raz 2009) la noción de Autonomía generalizada captura la noción de autonomía prevista:
- Definición: autonomía generalizada
- Un sistema de base de datos tiene la Autonomía generalizada propiedad, si no comparte con cualquier otro sistema de base de datos cualquier información concurrencia local más allá de los mensajes de protocolo commit atómico (no modificados) (sin embargo puede utilizarse cualquier información local).
Esta definición es probablemente la más amplia tal definición posible en el contexto del control de concurrencia de base de datos y lo hace CO junto con alguno de sus (útil: no hay distribución de información de control de concurrencia) generalización de variantes (voto pedido (VO); ver CO variantes más abajo) la necesaria condición para serializabilidad Global (es decir, la Unión de CO y sus variantes de generalización es el VO set necesario, que puede incluir también nuevas variantes de generalización útiles desconocidas).
Resumen
El Compromiso ordenando Solución de (CO) (técnica) para serializabilidad global puede resumirse como sigue:
Si cada base de datos (o cualquier otro objeto transaccional) en un entorno multidatabase cumple con el CO, es decir, arregla los compromisos de sus transacciones locales y sus votaciones en las transacciones (globales, distribuidas) para el compromiso atómico Protocolo de acuerdo con el local (para la base de datos) orden parcial inducida por el gráfico de los conflictos locales (véase el gráfico serializabilidad) para las transacciones respectivas, entonces Mundiales de CO y Serializabilidad global están garantizados. Cumplimiento de una base de datos CO puede lograrse eficazmente con cualquier local serializabilidad conflicto basado en el mecanismo de control de concurrencia, sin afectar el proceso de ejecución de cualquier transacción o programación, ni abortarlo. También no se viola la autonomía de la base de datos. El solo bajo overhead incurrido es detectar los conflictos (por ejemplo, como con la fijación, pero con el no bloqueo de acceso a datos; si no se ha detectado para otros fines) y ordenando votos y confirmaciones de transacciones locales según los conflictos.
En el caso de órdenes incompatibles parciales de dos o más bases de datos (sin ningún orden parcial global puede Insertar las respectivas locales órdenes parciales juntas), se genera un ciclo global (palmos dos bases de datos o más) en el gráfico de conflicto global. Esto, junto con CO, resulta en un ciclo de votos bloqueados y un voto-interbloqueo ocurre que el ciclo para las bases de datos (sin embargo, permitió concurrentes votar en cada base de datos, normalmente para casi todos los votos pendientes, continuar ejecutar). En este caso el protocolo de compromiso atómico es incapaz de reunir los votos necesarios para las transacciones bloqueadas en el ciclo global del, y en consecuencia el protocolo anula alguna transacción con un voto de falta. Esto rompe el ciclo global, el estancamiento de la votación ha sido resuelto y los votos relacionados bloqueados son libres de ser ejecutado. Rompiendo el ciclo global del gráfico de conflicto global asegura que se mantienen tanto CO global y mundial serializabilidad. Así, en caso de compromiso (parcial) local incompatibles órdenes que ninguna acción es necesaria porque el protocolo de compromiso atómica resuelve automáticamente por abortar una transacción es una causa de la incompatibilidad. Además, también debido al bloqueo globales interbloqueos (ciclo global en el gráfico de conflicto aumentada con datos al menos un bloqueo de acceso) provocar interbloqueos a votar y se resuelven automáticamente por el mismo mecanismo.
Local CO es una condición necesaria para garantizar Serializabilidad global, Si las bases de datos involucrados no comparte ninguna información de control de concurrencia más allá de los mensajes de protocolo compromiso atómico (no modificados), es decir, si son las bases de datos autónoma en el contexto del control de concurrencia. Esto significa que cada solución global serializabilidad para bases de datos autónomas debe cumplir con lo contrario CO. serializabilidad global puede ser violado (y por lo tanto, es probable que sea violado muy rápidamente en un entorno de alto rendimiento).
La solución de CO escala con tamaño de red y el número de bases de datos sin penalización de rendimiento cuando se utiliza Arquitectura distribuida atómica compromiso común.
Serializabilidad distribuido y CO
CO distribuido
Una característica distintiva de la solución de CO a serializabilidad distribuido de otras técnicas es el hecho de que no requiere ninguna información conflicto distribuida (por ejemplo, relaciones de precedencia local, cerraduras, marcas de tiempoentradas), que resulta excepcionalmente eficaz. Utiliza mensajes de protocolo (no modificados) compromiso atómico (que ya se utilizan) en su lugar.
Una forma común de lograr serializabilidad distribuido en un sistema (distribuido) es por una Administrador de bloqueos distribuido (DLM). DLMs, que comunicar información de bloqueo (conflicto desmaterializadas) en un entorno distribuido, típicamente sufren de informática y comunicación latencia, lo que reduce el rendimiento del sistema. CO permite lograr serializabilidad distribuida bajo condiciones muy generales, sin un administrador de bloqueos distribuido, exponiendo los beneficios ya explorados por encima para entornos multidatabase; en particular: alto rendimiento, escalabilidad, confiabilidad, posibilidad de utilizar control de concurrencia optimista Cuando se desee, sin conflicto información relacionada con las comunicaciones sobre la red (que ha incurrido en gastos y retrasos) y automático distribuye resolución de interbloqueo.
Todos sistemas transaccionales distribuidos contar con un protocolo atómica compromiso para coordinar atomicidad (ya sea confirmar o anular) entre procesos en un transacciones distribuidas. Además, típicamente datos recuperables (es decir, datos bajo control de las transacciones, por ejemplo, base de datos de datos; para no confundir con el capacidad de recuperación propiedad de un horario) son directamente accesibles por un solo Administrador de datos transaccionales componente (también conocido como un Administrador de recursos) que maneja transacciones locales sub (parte de la transacción distribuida en una sola ubicación, por ejemplo, nodo de la red), aunque estos datos son accedidos indirectamente por otras entidades en el sistema distribuido durante una transacción (es decir, el acceso indirecto requiere un acceso directo a través de una transacción local sub). Por lo tanto datos recuperables en un sistema transaccional distribuido normalmente se reparten entre los administradores de datos transaccionales. En tal sistema de estos gestores de datos transaccionales típicamente comprenden a los participantes en el protocolo de compromiso atómico del sistema. Si cada participante cumple con CO (por ejemplo, por SS2PL, o COCOs, o una combinación; véase más arriba), entonces todo el sistema distribuido proporciona CO (por los teoremas anteriores; cada participante puede ser considerado un objeto transaccional independiente) y por lo tanto serializabilidad (distribuido). Además: CO cuando se utiliza junto con un protocolo de compromiso atómica también deadlocks distribuidos (es decir, los interbloqueos que abarcan dos o más administradores de datos) causada por el bloqueo de acceso a datos se resuelven automáticamente. Por lo tanto se concluye el siguiente corolario:
- El CO base distribuidos serializabilidad Teorema
- Deja un sistema transaccional distribuido (por ejemplo, un base de datos distribuida sistema) comprenden administradores de datos transaccionales (también llamado administradores de recursos) que administrar todo el sistema datos recuperables. Los administradores de datos cumplen tres condiciones:
- Partición de datos: Datos recuperables se reparten entre los gestores de datos, es decir, cada dato recuperable (dato) es controlado por un gestor de datos (por ejemplo, tan común en un Nada compartido arquitectura; es físicamente distinta, incluso de copias de un mismo dato bajo administradores de datos diferentes replicado).
- Participantes en el protocolo de compromiso atómica: Estos gestores de datos son los participantes en el sistema de protocolo de compromiso atómico para coordinar distribuido atomicidad de las transacciones.
- Cumplimiento de CO: Cada tal data manager es compatible con CO (o algunos CO variante obediente; véase más abajo).
- Entonces
- Distribuidos de todo el sistema de garantías (distribuido CO y) serializabilidad, y
- Acceso a datos basado en deadlocks distribuidos (los interbloqueos que involucra a dos o más administradores de datos con al menos un conflicto desmaterializadas) se resuelven automáticamente.
- Además: Los administradores de datos siendo compatible con el CO es un condición necesaria para serializabilidad (distribuido) en un sistema de cumplir condiciones 1, 2 arriba, cuando los administradores de datos autónoma, es decir, no comparten información de control de concurrencia más allá sin modificar mensajes del Protocolo de compromiso atómico.
Este teorema también significa que cuando SS2PL (o alguna otra variante del CO) se utiliza localmente en cada Gerente de datos transaccionales, y cada administrador de datos tiene el control exclusivo de sus datos, ningún administrador de bloqueos distribuido (que a menudo se utiliza para aplicar SS2PL distribuidos) es necesaria para SS2PL distribuida y serializabilidad. Es relevante para una amplia gama de aplicaciones transaccionales distribuidas, que pueden ser fácilmente diseñadas para cumplir con las condiciones del teorema.
CO optimista distribuidos (DOCO)
Para la aplicación distribuida optimista CO (DOCO) el CO local genérico algoritmo se utiliza en todos los compromiso atómica protocolo participantes en el sistema con ningún bloqueo de acceso de datos y así no hay bloqueos locales. El teorema anterior tiene el siguiente corolario:
- El teorema de CO (DOCO) optimista distribuido
-
Si se utiliza DOCO, entonces:
- No producirse ninguna interbloqueos locales, y
- Globales interbloqueos (votos) se resuelven automáticamente (y todos son serializabilidad relacionada (con conflictos no-bloqueo) en lugar de fijación relacionados (con bloqueos y posiblemente también conflictos no-bloqueo)).
- Por lo tanto, no es necesario manejo de interbloqueo.
Ejemplos
SS2PL distribuida
Un sistema distribuido de bases de datos que utiliza SS2PL reside en dos nodos remotos, A y B. El sistema de base de datos tiene dos administradores de datos transaccionales (administradores de recursos), uno en cada nodo y los datos de base de datos se reparten entre los gerentes de dos datos de manera que cada uno tiene un control exclusivo de su propia porción (local al nodo) de datos: cada uno maneja sus propios datos y cerraduras sin ningún conocimiento sobre los otros managers. Para cada transacción distribuida tales administradores de datos deben ejecutar el protocolo de compromiso atómica disponibles.
Dos transacciones distribuidas, y , apuntan al mismo tiempo, y ambos acceder a datos x y y. x está bajo el control exclusivo del gestor de datos sobre una (no puede acceder a Gerente de B x) y debajo de eso en el B.
- Lee sobre una x y escribe y en el B, es decir, Cuando se utiliza la notación común para el control de concurrencia.
- y en la B Lee y escribe x en A, es decir,
El respectivo subtransacciones locales en A y B (las porciones de y en cada uno de los nodos) son los siguientes:
-
Subtransacciones locales Transacción \ nodo A B
Del sistema base de datos horario en un determinado momento es la siguiente:
- (también es posible)
posee un bloqueo de lectura en x y cerraduras de lectura se aferra y así. y son bloqueados por el compatibilidad de la cerradura reglas de SS2PL y no se puede ejecutar. Esta es una situación de interbloqueo distribuido, que es también un voto-callejón sin salida (véase abajo) con un ciclo (global) distribuido de longitud 2 (número de bordes, conflictos; 2 es la longitud más frecuente). Las subtransacciones locales están en los siguientes Estados:
- es listo (ejecución ha terminado) y votado (en la Comisión atómica)
- es corriendo y bloqueadas (una situación de conflicto desmaterializadas; sin derecho a voto en puede ocurrir)
- es listo y votado
- es corriendo y bloqueadas (un conflicto desmaterializadas; sin derecho a voto).
Puesto que el protocolo de compromiso atómico no puede recibir votos para subtransacciones bloqueados (un voto-callejón sin salida), eventualmente abortará alguna transacción con un voto (s) falta por tiempo de espera, o , o , (o ambos, si los tiempos de espera a caer muy cerca). Esto va a resolver el estancamiento global. La transacción restante será completar corriendo, votó en y comprometida. Una transacción abortada es inmediatamente reinicia y volver a ejecutar.
Comentario:
- La partición de datos (x en el A; y en la B) es importante ya que sin ella, por ejemplo, x puede ser accesado directamente en B. If una transacción se está ejecutando en B concurrentemente con y y escribe directamente x, entonces, sin un administrador de bloqueos distribuido la lectura-lock para x celebrada por en una no es visible en B y no puede bloquear la escritura de (o señal de un conflicto materializado por una variante CO no-bloqueo; ver abajo). Por lo tanto serializabilidad puede ser violado.
- Debido a la partición de datos, x no se puede acceder directamente en B. Sin embargo, funcionalidad no es limitada, y una transacción corriendo en B todavía puede emitir a escribir o leer solicitud de x (no es común). Esta petición es comunicada a transacción sub local de la transacción en una (que se genera, si no existe ya) que emite esta solicitud al administrador de datos local a.
Variaciones
En el escenario anterior de que ambos conflictos son desmaterializadas, y el estancamiento de la votación global se refleja como un ciclo en el global Espera-gráfico (pero no en el mundial gráfico de conflicto; ver Caracterización exacta de interbloqueos votando por ciclo global arriba). Sin embargo el sistema de base de datos puede utilizar cualquier variante CO con exactamente el mismos conflictos y situación de interbloqueo votar y misma resolución. Los conflictos pueden ser se materializó o desmaterializadas, según CO variante usada. Por ejemplo, si SCO (a continuación) es utilizado por el sistema de base de datos distribuida en lugar de SS2PL, entonces son los dos conflictos en el ejemplo se materializó, sub locales todas las transacciones son en listo Estados y el bloqueo de la votación se produce en las dos operaciones, una en cada nodo, debido a la CO voto regla aplicada independientemente en ambos A y B: debido a los conflictos No se vote antes de termina, y No se vote antes de extremos, que es un voto-callejón sin salida. Ahora el gráfico de conflicto tiene el ciclo global (todos los conflictos se materializan), y otra vez se resuelve por el protocolo de compromiso atómica serializabilidad distribuido se mantiene. Poco probable para un sistema de base de datos distribuida, pero posible en principio (y se produce en una base de datos múltiples), A puede emplear SS2PL mientras que B emplea a SCO. En este caso el ciclo global no es ni en la espera-gráfico ni en el gráfico serializabilidad, pero aún en el gráfico de conflicto aumentada (la Unión de los dos). Las distintas combinaciones se resumen en la tabla siguiente:
Caso | Nodo A |
Nodo B |
Posible horario | Se materializó conflictos en el ciclo |
Non- se materializó conflictos |
= |
= |
= |
= |
---|---|---|---|---|---|---|---|---|---|
1 | SS2PL | SS2PL | 0 | 2 | Listo Votado |
Corriendo (Bloqueado) |
Corriendo (Bloqueado) |
Listo Votado |
|
2 | SS2PL | SCO | 1 | 1 | Listo Votado |
Listo Votación bloqueada |
Corriendo (Bloqueado) |
Listo Votado |
|
3 | SCO | SS2PL | 1 | 1 | Listo Votado |
Corriendo (Bloqueado) |
Listo Votación bloqueada |
Listo Votado |
|
4 | SCO | SCO | 2 | 0 | Listo Votado |
Listo Votación bloqueada |
Listo Votación bloqueada |
Listo Votado |
- Comentario:
- Los conflictos y por lo tanto los ciclos en la gráfico de conflicto aumentada están determinados por las transacciones y su inicial programación, independientemente del control de concurrencia utilizada solamente. Con cualquier variante de CO, cualquier ciclo global (es decir, se extiende dos bases de datos o más) provoca una estancamiento electoral. CO diferentes variantes pueden diferir sobre si un determinado conflicto es se materializó o desmaterializadas.
- Algunos cambios de orden de operación limitada en las listas anteriores son posibles, limitado por las órdenes dentro de las transacciones, pero esos cambios no cambian el resto de la tabla.
- Como se señaló anteriormente, único caso 4 describe un ciclo en el gráfico (regular) conflicto que afecta a serializabilidad. Casos 1-3 describen ciclos de fijación basan globales interbloqueos (existe al menos un bloqueo bloqueo). Todos los tipos de ciclo igualmente son resueltos por el protocolo de compromiso atómico. El caso 1 es el SS2PL común distribuido, utilizada desde la década de 1980. Sin embargo, ningún artículo de la investigación, excepto los artículos CO, se conoce a notar esta resolución global bloqueo bloqueo automático a partir de 2009. Tales bloqueos globales típicamente han sido tratados por mecanismos dedicados.
- Caso 4 de arriba es también un ejemplo de un típico votación-callejón sin salida cuando CO optimista distribuidos (DOCO) se utiliza (es decir, 4 caso es invariable cuando optimista CO (OCO; véase más abajo) reemplaza a SCO en ambos A y B): sin bloqueo de acceso a datos se produce, y existen sólo materializados conflictos.
Hipotético ambiente Multi Core Single-Threaded (música)
Comentario: Mientras que los ejemplos anteriores describen la utilización real, recomendada de CO, este ejemplo es hipotético, para la demostración solamente.
Algunas bases de datos distribuidas experimentales de residente en memoria abogan por entornos transaccionales multi núcleo de subprocesos (música). "Subprocesos" se refiere a transacciones hilos de rosca solamente y serial ejecución de transacciones. El propósito es ganancia posible órdenes de magnitud en el rendimiento (por ejemplo, H-Store[6] y VoltDB) relativamente a la ejecución de transacciones convencionales en varios subprocesos en un mismo núcleo. En lo que se describe a continuación música es independiente de la forma que se distribuyen los corazones. Ellos pueden residir en uno circuito integrado (chip), o en las fichas, posiblemente distribuidas geográficamente en muchas computadoras. En tal ambiente, si datos recuperables (transaccionales) se reparten entre subprocesos (núcleos), y se implementa en la forma convencional de CO distribuido, como se describe en las secciones anteriores, entonces DOCO y rigor existen automáticamente. Sin embargo, desventajas existen con esta implementación sencilla del entorno de este tipo y su practicidad como una solución polivalente es cuestionable. Por otro lado se logra ganancia tremenda de rendimiento en aplicaciones que pueden eludir estos inconvenientes en la mayoría de las situaciones.
Comentario: La aplicación directa de música aquí descrita (que utiliza, por ejemplo, como de costumbre en CO distribuido, voto (e hilo de transacción) bloqueando en el protocolo de compromiso atómica cuando sea necesario) para demostración solamente y tiene sin conexión para la aplicación en la tienda H o cualquier otro proyecto.
En una música ambiente horarios locales están serial. Por lo tanto ambos CO de optimista local (OCO; véase más abajo) y el Voto de cumplimiento global CO ordenar estrategia condición para el protocolo de compromiso atómico se cumplen automáticamente. Esto se traduce en ambos distribuido cumplimiento de CO (y por lo tanto serializabilidad distribuido) y global automático (votación) deadlock resolución.
Además, también local Rigor sigue automáticamente en un calendario de la serie. Por teorema 5.2 en)Raz 1992; Página 307), cuando la votación CO ordenar estrategia se aplica, también rigidez Global está garantizada. Tenga en cuenta que serial localmente es el único modo que permite que el rigor y "optimista" (no hay datos bloqueo de acceso) juntos.
Se concluye lo siguiente:
- El teorema de la música
-
En ambientes de música, si datos recuperables (transaccionales) se reparten entre núcleos (hilos), entonces ambos
- OCO (e implícitas Serializabilidad; es decir, DOCO y distribuido serializabilidad)
- Rigor (permitiendo una recuperación efectiva; 1 y 2 que implica Strict CO — véase SCO abajo) y
- (votación) resolución de interbloqueo
- automáticamente existen a nivel mundial con escalabilidad ilimitada en número de corazones usados.
- Comentario: Sin embargo, pueden existir dos grandes desventajas, que necesitan un tratamiento especial:
- Subtransacciones locales de una transacción global están bloqueadas hasta cometer, que hace los respectivos núcleos ociosa. Esto reduce considerablemente la utilización de la base, incluso si la programación de las subtransacciones locales intenta ejecutar todas ellas en proximidad del tiempo, casi juntos. Se puede superar desprendiendo ejecución de commit (con algún protocolo de compromiso atómico) para las transacciones globales, a costa de posibles interrupciones en cascada.
- aumentar el número de núcleos para una cantidad dada de datos recuperables (tamaño de la base de datos) disminuye la cantidad promedio de datos (particiones) por núcleo. Esto puede hacer que algunos núcleos inactivos, mientras que otros muy ocupado, función de distribución de datos de utilización. También una transacción local (a un núcleo) puede convertirse en global (multi-core) para alcanzar sus datos necesarios, con el adicional incurrido en gastos indirectos. Por lo tanto, como aumenta el número de núcleos, la cantidad y el tipo de datos asignados a cada núcleo deben equilibrarse según el uso de datos, así que un núcleo es ni abrumado a convertirse en un cuello de botella, ni convertirse en ralentí con demasiada frecuencia y subutilizado en un sistema ocupado. Otra consideración es poniendo en una misma partición del núcleo todos los datos que generalmente se acceden por una misma transacción (si es posible), para maximizar el número de transacciones locales (y minimizar el número de transacciones distribuidas, globales). Esto puede lograrse por datos ocasional reparticionar entre núcleos basado en equilibrio (equilibrio de acceso a datos) de carga y los patrones de uso de datos de las transacciones. Otra manera de mitigar considerablemente este inconveniente es la replicación de datos físico adecuado entre algunas particiones del núcleo de una manera que sólo las transacciones globales son posiblemente (dependiendo de los patrones de uso) completamente evitada, y cambios de replicación están sincronizados por un mecanismo de compromiso dedicado.
CO variantes: interesantes casos especiales y las generalizaciones
Clases de propiedad horario casos especiales (por ejemplo, SS2PL y SCO abajo) estrictamente figuran en la clase de CO. Las clases de generalización (ECO y MVCO) contienen estrictamente la clase CO (es decir, incluir también los horarios que no son compatibles con CO). Las variantes de generalización también garantizan serializabilidad global sin distribuir información de control de concurrencia local (cada base de datos tiene la autonomía generalizada propiedad: usa sólo la información local), mientras que relajar las restricciones de CO y la utilización de información adicional (local) para rendimiento y mejor concurrencia: ECO utiliza conocimientos sobre transacciones siendo local (es decir, se limita a una sola base de datos), y MVCO utiliza la disponibilidad de versiones de valores de datos. Como CO, son ambas variantes de la generalización sin bloqueo, no interfieran con la operación de cualquier transacción de programación y pueden combinarse perfectamente con cualquier mecanismo de control de simultaneidad pertinentes.
El término Variante de CO se refiere en general a CO, ECO, MVCO o una combinación de cada uno de ellos con algún mecanismo de control de simultaneidad pertinentes o propiedad (incluyendo varias versiones base ECO, MVECO). No otras variantes interesantes de generalización (que garantizan serializabilidad global con la no distribución de información de control de concurrencia local) son conocidas, pero pueden ser descubiertos.
Fase de fuertes dos estrictos bloqueo (SS2PL)
Fuerte dos estrictas de la fase de bloqueo (SS2PL; también conocido como Rigurosidad o Programación rigurosa) significa que Lee y escribe las cerraduras de una transacción es liberado sólo después de que la transacción ha finalizado (cometió o abortado). El conjunto de los horarios de SS2PL es un subconjunto adecuado el conjunto de CO horarios. Esta propiedad se utiliza extensamente en sistemas de base de datos, y puesto que implica CO, bases de datos que usan y participaren en transacciones globales generan juntos una agenda global serializable (al utilizar cualquier protocolo de compromiso atómico, que es necesaria para la atomicidad en un entorno de múltiples bases de datos). Ninguna modificación de la base de datos o adición es necesario en este caso para participar en una solución de CO distribuido: el conjunto de transacciones indecisos a abortar antes de comprometerse en la local algoritmo genérico de CO arriba está vacío debido a los bloqueos, y por lo tanto tal un algoritmo es innecesario en este caso. Una transacción puede votarse por un sistema de base de datos inmediatamente después de entrar en un estado "listo", es decir, completar ejecutando su tarea localmente. Sus cerraduras son liberados por el sistema de base de datos sólo después de que se decida por el protocolo de compromiso atómicos y así la condición en la Teorema de ejecución global CO por encima se guarda automáticamente. Curiosamente, si se utiliza un mecanismo de tiempo de espera local mediante un sistema de base de datos para resolver interbloqueos SS2PL (local), entonces abortar bloqueado se rompe las transacciones no sólo potencial locales ciclos en el gráfico de conflicto global (ciclos reales en el gráfico de conflicto aumentada), pero también del sistema de base de datos potenciales ciclo global como efecto secundario, si el compromiso atómico mecanismo de interrupción del protocolo es relativamente lento. Tales interrupciones por varias entidades independientes normalmente pueden ocasionar interrupciones innecesarias para más de una transacción por ciclo global. La situación es diferente para un local Espera-gráfico basado en mecanismos: tal no puede identificar los ciclos globales, y el protocolo de compromiso atómico romperá el ciclo global, si no se resuelve el estancamiento electoral resultante anteriormente en otra base de datos.
SS2PL local junto con compromiso atómica implicando serializabilidad global también se deduce directamente: distribuido, obedecen a todas las transacciones, incluyendo la 2PL Reglas (SS2PL). El mecanismo del Protocolo de compromiso atómico no es necesario aquí para consenso en cometer, sino para el final del punto de sincronización de fase dos. Probablemente por esta razón, sin tener en cuenta el compromiso atómico votación mecanismo, resolución automática de deadlocks global no ha notado antes CO.
CO estricta (SCO)
Compromiso estricto orden (SCO; (Raz 1991c)) es la intersección del rigor (un caso especial de recuperación) y CO y proporciona un límite superior para la concurrencia de un horario cuando existen ambas propiedades. Se puede implementar utilizando mecanismos de bloqueo (bloqueo) similares a los utilizados para la SS2PL popular con gastos similares.
A diferencia de SS2PL, SCO no bloquea en un conflicto de lectura y escritura pero posiblemente bloquea a cometer en su lugar. SCO y SS2PL tienen idéntico comportamiento bloqueo para los otros tipos de dos conflicto: escribir, leer y escribir la escritura. Como resultado SCO tiene períodos más cortos de bloqueo promedio y más concurrencia (por ejemplo, rendimiento simulaciones de una única base de datos para la variante más significativa del cerraduras con intercambio ordenado, que es idéntico a SCO, muestran claramente, con aproximadamente 100% ganancia de algunas cargas de transacción; también para cargas de transacciones idénticas SCO puede alcanzar mayores tasas de transacción que SS2PL antes de cerradura paliza se produce). Más concurrencia significa que con los recursos informáticos más transacciones finalizadas en unidad de tiempo (mayor tasa de transacción, dado rendimiento de procesamiento), y la duración media de una transacción es más corta (terminación rápida; véase el diagrama). La ventaja de SCO es especialmente significativa durante la contención de la cerradura.
- El teorema de rendimiento de SCO vs SS2PL
- SCO proporciona tiempo de completar la transacción promedio más corto que SS2PL, si existen conflictos de lectura / escritura. SCO y SS2PL de lo contrario son idénticos (tienen idéntico comportamiento de bloqueo con escritura-lectura y escritura-escritura conflictos).
SCO es tan práctico como SS2PL ya que como SS2PL ofrece además serializabilidad también el rigor, que es ampliamente utilizado como una base para la recuperación eficiente de bases de datos de fracaso. Un mecanismo de SS2PL se puede convertir a un SCO uno para un mejor rendimiento de una manera sencilla sin necesidad de cambiar los métodos de recuperación. Una descripción de una implementación de OCS puede encontrarse en (Perrizo y Tatarinov 1998).[7] Véase también Programador Semi optimista de bases de datos.
SS2PL es un subconjunto apropiado de SCO (que es otra explicación por qué SCO es menos vinculantes y proporciona más concurrencia que SS2PL).
CO optimista (OCO)
Para la aplicación Optimista compromiso ordenando (OCO) el algoritmo de CO local genérico es utilizado sin bloqueo de acceso de datos y así sin bloqueos locales. OCO sin transacción u operación restricciones de programación cubre toda la clase de CO y es no es un caso especial del CO clase, sino más bien un útil CO variante y mecanismo de caracterización.
CO extendida (ECO)
Caracterización general de ECO
Compromiso extendido pedidos (ECO; (Raz 1993a)) generaliza CO. Cuando las transacciones locales (transacciones se limita a una sola base de datos) pueden distinguirse de las transacciones (distribuidas) globales (las transacciones que abarcan dos bases de datos o más), orden de compromiso se aplica a las transacciones globales sólo. Así, por un horario local (a una base de datos) que tienen la propiedad ECO, el orden cronológico (parcial) de eventos de confirmación de transacciones globales (sin importancia para transacciones locales) es consistente con su orden en el gráfico de los conflictos locales respectivas.
- Definición: extendido compromiso ordenando
- Dejar cometerse dos global las transacciones en un horario tal que un camino dirigido de las transacciones unaborted existe en el gráfico de conflicto (gráfico de precedencia) de Para ( precede , posiblemente transitivamenteindirectamente). El programa tiene la Compromiso extendido pedidos Propiedad (ECO), si por cada dos de tales transacciones se compromete antes se compromete.
Existe un algoritmo distribuido para garantizar ECO global. En cuanto a CO, el algoritmo necesita mensajes de protocolo único compromiso atómico (no modificados). Con el fin de garantizar serializabilidad global, cada base de datos debe garantizar también la serializabilidad conflicto de sus propias transacciones por ningún mecanismo de control de concurrencia (local).
- El ECO y Global serializabilidad Teorema
- (Local, que implica global) ECO junto con serializabilidad conflictos locales, es una condición suficiente para garantizar serializabilidad conflicto global.
- Cuando no se comparte ninguna información de control de concurrencia más allá de los mensajes de compromiso atómica fuera de una base de datos (autonomía), y pueden identificar transacciones locales, es también una condición necesaria.
- Ver una necesidad prueba en)Raz 1993a).
Esta condición (ECO con serializabilidad local) es más débil que el CO y permite más concurrencia a costa de un poco más complicado algoritmo local (sin embargo, no hay diferencia práctica arriba con CO existe).
Cuando todas las transacciones se asumen para ser global (por ejemplo, si no hay información disponible acerca de las transacciones de ser local), ECO reduce a CO.
El algoritmo ECO
Antes de que una transacción global está comprometida, un algoritmo genérico de ECO local (a una base de datos) aborta un conjunto mínimo de transacciones indecisos (ni comprometida, ni abortado; o transacciones locales, o global que ejecutan localmente), que puede causar más tarde un ciclo en el gráfico de conflicto. Este conjunto de transacciones abortadas (no únicas, al contrario CO) puede ser optimizada, si cada transacción se le asigna un peso (que puede ser determinado por la importancia de la transacción y de los recursos informáticos ya invertidos en la transacción corriente; optimización puede llevarse a cabo, por ejemplo, por una reducción de la Flujo máximo en redes problema)Raz 1993a)). Como para CO tal conjunto es tiempo dependiente y se convierte en vacío al final. Prácticamente, casi en todas las implementaciones necesarias una transacción debe ser comprometida sólo cuando el conjunto está vacío (y ningún sistema optimización es aplicable). El mecanismo de control de concurrencia local (a la base de datos) (aparte del algoritmo ECO) asegura que se eliminan los ciclos locales (a diferencia con el CO, lo que implica serializabilidad por sí mismo; sin embargo, prácticamente también por CO un mecanismo de concurrencia local es utilizado, por lo menos para asegurar la capacidad de recuperación). Transacciones locales pueden ser siempre comprometidas concurrentemente (incluso si existe una relación de precedencia, a diferencia de CO). Cuando orden parcial local de las transacciones totales (que es determinada por la gráfica de conflictos locales, ahora sólo con ciclos locales temporales posibles, puesto que los ciclos se eliminan mediante un mecanismo local serializabilidad) permite, también las transacciones globales pueden votarse a cometerse simultáneamente (cuando todos sus transitoriamente (indirecta) anteriores (a través de conflictos) global las transacciones están comprometidas, aunque transitoriamente anteriores transacciones locales pueden ser en cualquier estado. Esto en analogía con fuertes concurrentes votación condición del algoritmo distribuido de CO, donde todas las transacciones anteriores transitivamente necesitan estar comprometido).
La condición para garantizar Global ECO del mismo modo se pueden resumir a CO:
- Global ECO aplicar voto pedido estrategia Teorema
- Dejar ser indeciso (ni comprometido ni abortado) transacciones globales en un sistema de base de datos que asegura serializabilidad localmente, tal que un camino dirigido de las transacciones unaborted existe en el gráfico de los conflictos locales (el de la propia base de datos) de Para . Entonces, teniendo terminó (comprometidos o abortados) antes de se vota estar comprometida, en cada sistema de base de datos en un entorno multidatabase, es un condición necesaria y suficiente para garantizar el Global ECO (la condición garantiza ECO Global, que puede ser violado sin ella).
ECO global (todos los ciclos globales en el gráfico de conflicto global son eliminados por compromiso atómica) junto con serializabilidad Local (es decir, cada sistema de base de datos mantiene serializabilidad localmente, se eliminan todos los ciclos locales) implica serializabilidad Global (todos los ciclos son eliminados). Esto significa que si cada sistema de base de datos en un entorno multidatabase proporciona serializabilidad local (por cualquier mecanismo) e impone la voto pedido estrategia en el teorema por encima (una generalización del voto de CO ordenar estrategia), entonces Serializabilidad global está garantizado (no CO local ya es necesario).
Semejantemente al CO, el ECO votación-callejón sin salida situación puede resumirse de la siguiente manera:
- El teorema de votación-Deadlock ECO
- Deja un multidatabase ambiente comprenden sistemas de base de datos que hacen cumplir, cada uno, ambos Global ECO (usando la condición en el teorema anterior) y serializabilidad conflictos locales (que elimina los ciclos locales en el gráfico de conflicto global). Entonces, un votación-callejón sin salida se produce si y sólo si un ciclo global (abarca dos o más bases de datos) existe en la Gráfico de conflicto global aumentada (también bloqueo por un bloqueo de acceso a datos es representado por un borde). Si el ciclo no se rompe por cualquier interrupción, entonces todos los transacciones globales en están involucrados con el respectivo voto-callejón sin salida, y al final cada uno tiene su voto bloqueado (directamente o indirectamente por un bloqueo de acceso a datos). Si una transacción local reside en el ciclo, puede ser en cualquier estado unaborted (correr, listo, o cometido; a diferencia de CO no local cometer bloqueo es necesario).
Como con CO esto significa que también interbloqueos globales debido al acceso a datos de bloqueo (con al menos un bloqueo bloqueo) están votando los interbloqueos y automáticamente se resuelven por compromiso atómico.
Multi-versión CO (MVCO)
Compromiso multi-versión pedidos (MVCO; (Raz 1993b)) es una generalización del CO para bases de datos con versión múltiples recursos. Con esos recursos transacciones de sólo lectura ¿No bloquee o bloqueados para un mejor rendimiento. Utilizando estos recursos es una forma común hoy en día para aumentar la concurrencia y rendimiento mediante la generación de una nueva versión de un objeto de base de datos cada vez que el objeto está escrito, y las transacciones que permite Lee las operaciones de varias versiones pasadas relevantes (de cada objeto). MVCO implica Uno-copia-serializabilidad (1er o 1SR) que es la generalización de serializabilidad para la versión de múltiples recursos. Como CO, MVCO es no-bloqueo y puede combinarse con cualquier mecanismo de control de concurrencia multi-versión pertinentes sin interferir con él. En la teoría subyacente introducida para MVCO los conflictos están generalizados para diferentes versiones de un mismo recurso (diferencia de teorías varias versiones anteriores). Conflicto diferentes versiones orden cronológico es sustituido por orden de la versión y posiblemente al revés, manteniendo las definiciones habituales de operaciones conflictivas. Resultados para los gráficos de conflicto regular y aumentada permanecen inalterados, y semejantemente a CO un distribuidos MVCO aplicando el algoritmo existe, ahora para un entorno mixto con recursos tanto single-versión y la versión multi (ahora solo versión es un caso especial de multi-versión). En cuanto a CO, el algoritmo MVCO necesita sólo (sin modificar) compromiso atómico mensajes de protocolo con sin gastos adicionales de comunicación. Interbloqueos globales base de fijación se traducen en votación interbloqueos y se resuelven automáticamente. En analogía a CO sostiene lo siguiente:
- El MVCO y Global one-copia-serializabilidad Teorema
- Cumplimiento de MVCO de cada autónoma sistema de base de datos (u objeto transaccional) en un entorno mixto multidatabase single-versión y múltiples bases de datos es un condición necesaria para garantizar una-copia-serializabilidad Global (1er).
- MVCO el cumplimiento de todos los sistemas de base de datos es un condición suficiente para garantizar el 1er Global.
- Interbloqueos globales base de fijación se resuelven automáticamente.
- Comentario:: Ahora un sistema compatible con base de datos única versión CO automáticamente también es compatible con MVCO.
MVCO puede ser más generalizada para emplear la generalización de ECO (MVECO).
Ejemplo: CO base de aislamiento de instantánea (COSI)
CO base de aislamiento de instantánea (COSI) es la intersección del Aislamiento de instantánea (SI) con MVCO. SI es un control de concurrencia multiversión método ampliamente utilizado debido al buen desempeño y semejanza a serializabilidad (1er) en varios aspectos. La teoría en (Raz 1993b) para MVCO descrito anteriormente es utilizada más adelante en (Fekete et al. 2005) y otros articulos en SI, por ejemplo, (Cahill et al. 2008);[8] Véase también Fabricación de aislamiento de instantánea serializable y las referencias allí), para analizar los conflictos en SI con el fin de que sea serializable. El método presentado en (Cahill et al. 2008), Aislamiento de instantánea serializable (SerializableSI), una modificación baja arriba de SI, ofrece buenos resultados frente a SI, con sólo pequeña pena para imponer serializabilidad. Un método diferente, combinando con MVCO (COSI), SI hace SI serializable, con una sobrecarga relativamente baja, semejantemente a combinar el algoritmo CO genérico con mecanismos de single-versión. Además, la combinación resultante, COSI, ser obediente, MVCO permite sistemas de base de datos compatible con COSI Inter operar y transparentemente participar en una solución de CO para serializabilidad distribuido o global (véase abajo). Además de los gastos generales también comportamientos los protocolos deben compararse cuantitativamente. Por un lado, serializables calendarios SI pueden hacerse MVCO por COSI (por las demoras de cometer posible cuando sea necesario) sin interrupción de las transacciones. Por otro lado, se conoce SerializableSI innecesariamente abortar y reiniciar ciertos porcentajes de transacciones también en las listas SI serializables.
CO y sus variantes son interoperables transparente para serializabilidad global
Con CO y sus variantes (e.g., SS2PL, SCO, OCO, ECO y MVCO arriba) serializabilidad global se obtiene mediante compromiso atómico protocolo basado en algoritmos distribuidos. Para el CO y todas sus variantes atómica compromiso protocolo es el instrumento para eliminar el ciclo global (ciclos que abarcan dos o más bases de datos) en el global aumentada (y así también regular) gráfico de conflicto (implícitamente; no es necesario ninguna implementación de estructura de datos globales). En los casos de ambos órdenes incompatibles compromiso local en dos o más bases de datos (cuando no global orden parcial puede Insertar las respectivas locales órdenes parciales juntas), o un acceso a datos bloqueo relacionados con estancamiento electoral, tanto lo que implica un ciclo global en el gráfico de conflicto global aumentada y perdiendo votos, el protocolo de compromiso atómica rompe tal ciclo por abortar una transacción indecisa en él (véase El algoritmo distribuido de CO arriba). Existen diferencias entre las distintas variantes a nivel local solamente (dentro de los sistemas de bases de datos participantes). Cada instancia CO local de cualquier variante tiene el mismo papel, para determinar la posición de cada transacción global (una transacción que abarca dos o más bases de datos) dentro del orden de compromiso local, es decir, para determinar cuándo se toca de la transacción a ser votado localmente en el protocolo de compromiso atómico. Por lo tanto, todas las variantes de CO exhiben el mismo comportamiento en cuanto a compromiso atómico. Esto significa que son todos interoperables mediante compromiso atómico (usando las mismas interfaces de software, proporcionadas normalmente como servicios, algunos ya estandarizados por compromiso atómico, principalmente para el -Two phase commit Protocolo, por ejemplo, X / Open XA) y transparente pueden ser utilizados juntos en cualquier entorno distribuido (mientras que cada instancia variante CO está posiblemente asociado con cualquier tipo de mecanismo de control de concurrencia local pertinente).
En resumen, cualquier transacción global puede participar simultáneamente en bases de datos que pueden emplear cada variante de CO, posiblemente diferente, (mientras que concurrentemente procesos que se ejecutan en cada dicha base de datos y corriendo al mismo tiempo locales y otras transacciones globales en cada dicha base de datos). El protocolo de compromiso atómico es indiferente al CO y no distingue entre las diferentes variantes de CO. Cualquier ciclo global generados en la aumentada conflicto global gráfico puede abarcar las bases de datos de diversas variantes de CO y generar (si no roto por cualquier interrupción local) un interbloqueo votación que es resuelta por compromiso atómica exactamente del mismo modo como en un único entorno variante CO. ciclos locales (ahora posiblemente con conflictos materializados y desmaterializadas mixtos, tanto serializabilidad y bloqueo bloqueo de acceso a datos relacionados, por ejemplo, SCO) se resuelven localmente (cada uno por su respectiva variantes de la instancia de poseer mecanismos locales).
Voto pedido (VO o CO generalizada (GCO); Raz 2009), la Unión de CO y todas sus variantes anteriores, es un concepto útil y técnica global serializabilidad. Para cumplir con VO, serializabilidad local (en lo general la mayoría forma, Conmutatividad basado e incluyendo multiversión) y la estrategia de orden de votación (votación por orden de prioridad local) son necesarios.
Combinación de resultados para el CO y sus variantes, la siguiente se concluye:
- El teorema de interoperabilidad de las variantes de CO
- En un entorno de múltiples bases de datos, donde cada sistema de base de datos (objeto transaccional) es compatible con alguna variante propiedad de CO (VO obediente), cualquier transacción global puede participar simultáneamente en bases de datos de CO posiblemente variantes y serializabilidad Global está garantizada)condición suficiente para serializabilidad Global; y Global one-copia-serializabilidad (1er), para un caso cuando existe una base de datos multi version).
- Si sólo información de control de concurrencia local (para un sistema de base de datos) es utilizada por todos los sistemas de base de datos (cada uno tiene el autonomía generalizada propiedad, una generalización de autonomía), entonces el cumplimiento de cada uno con una (cualquier) CO variante propiedad (cumplimiento VO) es un condición necesaria para garantizar la serializabilidad Global (y 1er Global; de lo contrario puede violarse).
- Además, en tal entorno interbloqueos globales relacionados con bloqueo de acceso a datos se resuelven automáticamente (cada tal estancamiento es generada por un ciclo global en el gráfico de conflicto aumentada (es decir, un estancamiento electoral; véase más arriba), que implica acceso a datos al menos una cerradura (desmaterializadas conflicto) y dos sistemas de base de datos; por lo tanto, no es un ciclo en el gráfico de conflicto regular y no afecta serializabilidad).
Referencias
- Raz, Yoav (agosto de 1992), El principio de compromiso ordenando, o garantizar serializabilidad en un entorno heterogéneo de múltiples administradores de recursos autónomos mediante compromiso atómico, Actas de la XVIII Conferencia Internacional sobre Bases de datos muy grandes (Vancouver, Canadá): 292 – 312 (también 841 DEC-TR, Digital Equipment CorporationDe noviembre de 1990)
- Raz, Yoav (septiembre de 1994), Serializabilidad compromiso ordenando, Letras de procesamiento de información 51 (5): 257-264, Doi:10.1016/0020-0190 (94) 90005-1
- Raz, Yoav (junio de 2009), Teoría de compromiso ordenar: Resumen, obtenido el 11 de noviembre de 2011
- Raz, Yoav (noviembre de 1990), Sobre el significado del compromiso ordenando, Digital Equipment Corporation
- Yoav Raz (1991a): patentes de Estados Unidos 5.504.899 (ECO) 5.504.900 (CO) 5.701.480 (MVCO)
- Yoav Raz (1991b): "El compromiso orden Coordinador (COCO) de un administrador de recursos, o arquitectura para pedir compromiso distribuido basado en Control de concurrencia", DEC-TR 843, Digital Equipment Corporation, diciembre de 1991.
- Yoav Raz (c 1991): "pedidos de compromiso estricto bloqueo basado, o cómo mejorar la concurrencia en los administradores de recursos de bloqueo basado, 844 DEC-TR, diciembre de 1991.
- Yoav Raz (1993a): "Compromiso extendido ordenar o garantizando serializabilidad Global mediante la aplicación de compromiso orden selectividad a las transacciones globales". Actas del XII Simposio ACM sobre principios de sistemas de base de datos (Vainas), Washington, DC, pp. 83-96, mayo de 1993. (también 842 DEC-TR, noviembre de 1991)
- Yoav Raz (1993b): "Compromiso ordenando base Control de concurrencia distribuido para Bridging solo y Multi versión recursos." Actas del tercer taller internacional IEEE sobre temas de investigación en ingeniería de datos: interoperabilidad en los sistemas de Multidatabase (Paseo-IMS), Viena, Austria, pp. 189-198, abril de 1993. (también DEC-TR 853, julio de 1992)
Notas al pie
- ^ a b Alan Fekete, Nancy Lynch, Michael Merritt, William Weihl (1988): Conmutatividad-basado de bloqueo para transacciones anidadas (PDF) MIT, LCS lab, informe técnico MIT/LCS/TM-370, agosto de 1988.
- ^ Philip A. Bernstein, Eric Newcomer (2009): Principios de procesamiento de transacciones, 2ª edición, Morgan Kaufmann (Elsevier), junio de 2009 ISBN 978-1-55860-623-4 (páginas 145, 360)
- ^ a b Ahora Zhang, Vinod K.Grover, Michael M. Magruder, David Detlefs, John Joseph Duffy, Goetz Graefe (2006): Software transacción cometer orden y gestión de conflictos United States Patent 7711678, otorgó 04/05/2010.
- ^ Hany E. Ramadan, Indrajit Roy, Maurice Herlihy, Emmett Witchel (2009): "Cometiendo las transacciones contradictorias en un STM" (PDF) Actas del XIV Simposio ACM SIGPLAN sobre principios y prácticas de programación paralela (PPoPP ' 09), ISBN 978-1-60558-397-6
- ^ Christoph von Praun, Luis Ceze, Calin Cascaval (2007) "Paralelismo implícito con transacciones ordenadas" (PDF), Actas del XII Simposio ACM SIGPLAN sobre principios y prácticas de programación paralela (PPoPP ' 07), ACM Nueva York © 2007 ISBN 978-1-59593-602-8 DOI 10.1145/1229428.1229443
- ^ Robert Kallman, Hideaki Kimura, Jonathan Natkins, Andrew Pavlo, Alex Rasin, Stanley Zdonik, Evan Jones, Zhang Yang, Samuel Madden, Michael Stonebraker, John Hugg, Daniel Abadi (2008): "H-Store: un alto rendimiento, sistema de procesamiento de transacciones de memoria principal distribuido", Actas de la VLDB 2008, páginas 1496-1499, Auckland, Nueva Zelanda, agosto de 2008.
- ^ Perrizo, William; Tatarinov, Igor (11 de noviembre de 1998). "Un programador de base de datos semi optimista basado sobre el pedido de cometer". 1998 int ' l Conferencia sobre aplicaciones informáticas en la industria e ingeniería. Las Vegas. págs. 75 – 79. OAI: 10.1.1.53.7318.
- ^ Michael J. Cahill, Uwe Röhm, Alan D. Fekete (2008): "Aislamiento serializable para bases de datos instantánea", Actas de la Conferencia Internacional ACM SIGMOD 2008 gestión de datos, págs. 729-738, Vancouver, Canadá, junio de 2008, ISBN 978-1-60558-102-6 (SIGMOD 2008 Premio al mejor artículo
Enlaces externos
- Compromiso de Yoav Raz página de pedidos