stringtranslate.com

Serialización global

En el control de concurrencia de bases de datos , procesamiento de transacciones ( gestión de transacciones ) y otras aplicaciones distribuidas transaccionales , la serializabilidad global (o serializabilidad modular ) es una propiedad de una programación global de transacciones . Una programación global es la programación unificada de todas las programaciones de bases de datos individuales (y otros objetos transaccionales) en un entorno de múltiples bases de datos (por ejemplo, base de datos federada ). Cumplir con la serializabilidad global significa que la programación global es serializable , tiene la propiedad de serializabilidad , mientras que cada base de datos componente (módulo) también tiene una programación serializable. En otras palabras, una colección de componentes serializables proporciona serializabilidad general del sistema, que generalmente es incorrecta. La necesidad de corrección en todas las bases de datos en sistemas de múltiples bases de datos hace que la serializabilidad global sea un objetivo principal para el control de concurrencia global (o control de concurrencia modular ). Con la proliferación de Internet , la computación en la nube , la computación en red y los dispositivos informáticos pequeños, portátiles y potentes (por ejemplo, los teléfonos inteligentes ), así como el aumento de la sofisticación en la gestión de sistemas , la necesidad de transacciones distribuidas atómicas y, por lo tanto, técnicas de serialización global efectivas para garantizar la corrección en y entre aplicaciones transaccionales distribuidas, parece aumentar.

En un sistema de base de datos federado o cualquier otro sistema multibase de datos definido de manera más vaga, que normalmente se distribuyen en una red de comunicación, las transacciones abarcan múltiples bases de datos (y posiblemente distribuidas ). Imponer la serialización global en un sistema de este tipo, donde diferentes bases de datos pueden utilizar diferentes tipos de control de concurrencia , es problemático. Incluso si cada programación local de una única base de datos es serializable, la programación global de un sistema completo no es necesariamente serializable. Los intercambios masivos de información de conflictos necesarios entre bases de datos para alcanzar la serialización de conflictos a nivel global conducirían a un rendimiento inaceptable, principalmente debido a la latencia de la computadora y la comunicación . Lograr la serialización global de manera efectiva sobre diferentes tipos de control de concurrencia ha sido una tarea abierta durante varios años.

El problema de la serialización global

Planteamiento del problema

Las dificultades descritas anteriormente se traducen en el siguiente problema:

Encontrar un método eficiente (de alto rendimiento y tolerante a fallos ) para hacer cumplir la serialización global (serialización global de conflictos) en un entorno distribuido heterogéneo de múltiples sistemas de bases de datos autónomos. Los sistemas de bases de datos pueden emplear diferentes métodos de control de concurrencia . No se debe imponer ninguna limitación a las operaciones de transacciones locales (confinadas a un único sistema de bases de datos) o transacciones globales (que abarcan dos o más sistemas de bases de datos).

Citas

La falta de una solución apropiada para el problema de la serialización global ha llevado a los investigadores a buscar alternativas a la serialización como criterio de corrección en un entorno de múltiples bases de datos (por ejemplo, consulte Flexibilización de la serialización global a continuación), y el problema se ha caracterizado como difícil y abierto . Las dos citas siguientes demuestran la mentalidad al respecto a fines del año 1991, con citas similares en numerosos otros artículos:

Soluciones propuestas

Se han propuesto varias soluciones, algunas de ellas parciales, para el problema de serialización global. Entre ellas:

Relajación de la serialización global

Se han desarrollado algunas técnicas para la serialización global relajada (es decir, no garantizan la serialización global; véase también Serialización relajada ). Entre ellas (cada una de ellas con varias publicaciones):

Otra razón común hoy en día para la relajación de la serialización global es el requisito de disponibilidad de productos y servicios de Internet . Este requisito se responde típicamente con la replicación de datos a gran escala . La solución sencilla para sincronizar las actualizaciones de las réplicas de un mismo objeto de base de datos es incluir todas estas actualizaciones en una única transacción distribuida atómica . Sin embargo, con muchas réplicas, dicha transacción es muy grande y puede abarcar varios ordenadores y redes , por lo que es probable que algunas de ellas no estén disponibles. Por lo tanto, es probable que dicha transacción termine con un aborto y pierda su propósito. [4] En consecuencia, la replicación optimista (replicación perezosa) se utiliza a menudo (por ejemplo, en muchos productos y servicios de Google , Amazon , Yahoo y similares), mientras que la serialización global se relaja y se compromete para la consistencia final . En este caso, la relajación se realiza solo para aplicaciones que no se espera que se vean perjudicadas por ella.

Las clases de programaciones definidas por propiedades de serialización global relajada contienen la clase de serialización global o son incomparables con ella. Lo que diferencia las técnicas para propiedades de serialización global relajada (RGCSR) de las de propiedades de serialización global relajada (RCSR) que no son RGCSR es, por lo general, la forma diferente en que se manejan los ciclos globales (que abarcan dos o más bases de datos) en el gráfico de conflictos globales . No existe distinción entre ciclos globales y locales para propiedades RCSR que no son RGCSR. RCSR contiene RGCSR. Por lo general, las técnicas RGCSR eliminan los ciclos locales, es decir, proporcionan serialización local (que se puede lograr de manera efectiva mediante métodos de control de concurrencia conocidos y regulares ); sin embargo, obviamente no eliminan todos los ciclos globales (que lograrían la serialización global).

Referencias

  1. ^ Amit Sheth, James Larson (1990): "Sistemas de bases de datos federados para gestionar bases de datos distribuidas, heterogéneas y autónomas" Archivado el 19 de octubre de 2007 en Wayback Machine , ACM Computing Surveys , vol. 22, n.º 3, págs. 183-236, septiembre de 1990 (cita de la página 227)
  2. ^ Weimin Du y Ahmed K. Elmagarmid (1989): "Quasi Serializabilidad: un criterio de corrección para el control de concurrencia global en InterBase" Archivado el 21 de diciembre de 2010 en Wayback Machine , Actas de la Decimoquinta Conferencia Internacional sobre Bases de Datos Muy Grandes (VLDB), 22-25 de agosto de 1989, Ámsterdam, Países Bajos, págs. 347-355, Morgan Kaufmann, ISBN  1-55860-101-5
  3. ^ Sharad Mehrotra, Rajeev Rastogi, Henry Korth, Abraham Silberschatz (1998): "Cómo garantizar la coherencia en bases de datos múltiples mediante la preservación de la serialización en dos niveles", ACM Transactions on Database Systems (TODS), vol. 23, n.º 2, págs. 199-230, junio de 1998 (cita del resumen del artículo)
  4. ^ Gray, J. ; Helland, P.; O'Neil, P. ; Shasha, D. (1996). Los peligros de la replicación y una solución . Actas de la Conferencia Internacional ACM SIGMOD de 1996 sobre Gestión de Datos . págs. 173–182. CiteSeerX 10.1.1.43.6498 . doi :10.1145/233269.233330.