stringtranslate.com

Serialización global

En el control de concurrencia de bases de datos , procesamiento de transacciones ( gestión de transacciones ) y otras aplicaciones transaccionales distribuidas , la serializabilidad global (o serializabilidad modular ) es una propiedad de un cronograma 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, una base de datos federada ). Cumplir con la serialización global significa que la programación global es serializable , tiene la propiedad de serialización , 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 serialización general del sistema, lo cual suele ser incorrecto. La necesidad de corrección entre bases de datos en sistemas de múltiples bases de datos hace que la serialización global sea un objetivo importante 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 Grid y los dispositivos informáticos pequeños, portátiles y potentes (por ejemplo, teléfonos inteligentes ), así como el aumento de la sofisticación de la gestión de sistemas , la necesidad de transacciones distribuidas atómicamente y, por tanto, de técnicas efectivas de serialización global, 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 de base de datos múltiple definido de manera más vaga, que generalmente se distribuye en una red de comunicación, las transacciones abarcan múltiples bases de datos (y posiblemente distribuidas ). Hacer cumplir la serialización global en dicho sistema, donde diferentes bases de datos pueden usar 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 comunicación de información sobre conflictos necesarios entre bases de datos para alcanzar la serialización de conflictos a nivel mundial conducirían a un rendimiento inaceptable, principalmente debido a la latencia de la computadora y las comunicaciones . Lograr la serialización global de manera efectiva a través de diferentes tipos de control de concurrencia ha estado abierto durante varios años.

El problema de la serialización global

Planteamiento del problema

Las dificultades descritas anteriormente se traducen en el siguiente problema:

Encuentre un método eficiente (de alto rendimiento y tolerante a fallas ) para imponer la serialización global (serialización de conflictos globales) 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 deben imponer limitaciones a las operaciones de transacciones locales (limitadas a un único sistema de base de datos) o transacciones globales (que abarcan dos o más sistemas de bases de datos).

Cotizaciones

La falta de una solución adecuada 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 Relajació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 finales del año 1991, con citas similares en muchos otros artículos:

Soluciones propuestas

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

Serialización global relajante

Se han desarrollado algunas técnicas para una serialización global relajada (es decir, no garantizan una serialización global; consulte también Serializabilidad relajada ). Entre ellos (con varias publicaciones cada uno):

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 normalmente se responde mediante 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 varias computadoras y redes , algunas de las cuales probablemente no estén disponibles. Por lo tanto, es probable que una transacción de este tipo acabe en aborto y no cumpla su propósito. [4] En consecuencia, la replicación optimista (replicación diferida) 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 una eventual coherencia . En este caso, la relajación se realiza sólo para aplicaciones que no se espera que se vean perjudicadas por ella.

Las clases de programaciones definidas por propiedades de serialización global relajadas contienen la clase de serialización global o son incomparables con ella. Lo que diferencia las técnicas de propiedades de serialización de conflictos globales relajados (RGCSR) de aquellas de propiedades de serialización de conflictos relajados (RCSR) que no son RGCSR es típicamente la forma diferente en que se manejan los ciclos globales (que abarcan dos o más bases de datos) en el gráfico de conflicto global . No existe distinción entre ciclos globales y locales para propiedades RCSR que no son RGCSR. RCSR contiene RGCSR. Normalmente, las técnicas RGCSR eliminan los ciclos locales, es decir, proporcionan serialización local (que puede lograrse eficazmente mediante métodos de control de concurrencia conocidos y regulares ); sin embargo, obviamente no eliminan todos los ciclos globales (lo que lograría 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): "Cuasi serialización: 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 a 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): "Garantizar la coherencia en bases de datos múltiples preservando la serialización de dos niveles", Transacciones ACM en sistemas de bases de datos (TODS), vol. 23, No. 2, pp. 199-230, junio de 1998 (cita del resumen del artículo)
  4. ^ Gris, 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.