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.
Las dificultades descritas anteriormente se traducen en el siguiente problema:
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:
Se han propuesto varias soluciones, algunas parciales, para el problema de serialización global. Entre ellos:
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).