Transacciones replicadas y concurrencia

Las transacciones replicadas en un nodo NPS primario pueden ejecutarse con cualquier combinación de aislamiento serializable y aislamiento instantáneo (serializabilidad relajada).

Un DBMS proporciona aislamiento serializable si impone la ejecución serializable de las transacciones (para aquellas transacciones que eligen o por defecto el aislamiento serializable). Una implementación de aislamiento serializable generalmente ofrece menos concurrencia y menor rendimiento que la de un nivel de aislamiento más débil.

Por defecto, Netezza sólo admite el aislamiento de transacciones serializable. Sólo las transacciones de replicación admiten el aislamiento de instantáneas. Para obtener más información sobre el aislamiento de transacciones en Netezza, consulte Concurrencia y aislamiento de transacciones.

Bajo el aislamiento de instantáneas, cada transacción ve una "instantánea" consistente de la base de datos que refleja sólo aquellas transacciones que fueron confirmadas cuando se inició la transacción en particular. Tampoco se permiten las actualizaciones y eliminaciones de la misma fila por transacciones concurrentes. (Algunos SGBD aplican esta última propiedad en el momento de la confirmación de la transacción; NPS la aplica cuando se ejecuta la sentencia concurrente de actualización o eliminación) Netezza® admite el aislamiento instantáneo para aplicaciones que requieren una mayor concurrencia que la que permite el aislamiento serializable y que pueden compensar la aplicación de restricciones de coherencia entre filas. El aislamiento de instantáneas se admite para transacciones replicadas con IBM® Netezza Replication Services 2.0 y versiones posteriores.

El orden de confirmación de las transacciones replicadas en el primario define el orden en el que se aplican las transacciones en un nodo NPS réplica. A cada transacción replicada se le asigna un número de secuencia de confirmación (CSN) creciente en el momento de la confirmación, que se utiliza para realizar un seguimiento de la transacción y aparece en varias vistas y registros de replicación. Un identificador de secuencia de confirmación (CSI) es un par <source-id>, <CSN>, donde <source-id> identifica el nodo primario en el momento en que se confirmó la transacción activa.