Control de concurrencia
El problema de las actualizaciones perdidas: cuando dos transacciones concurrentes borran el efecto una de la otra
Recuperaciones inconsistentes: acceder a información modificada parcialmente por una transacción de LAN.
Soluciones
La data puede estar duplicada en un BDD, por tanto, el manejador de la BDD es responsable de localizar y actualizar la data duplicada.
Si un nodo falla o la comunicación con un nodo falla mientras se realiza una actualización, el manejador debe asegurarse de que los efectos se reflejen una vez el nodo se recupere del fallo.
La sincronización de transacciones en sitios o nodos múltiples es difícil ya que los nodos no pueden obtener información inmediata de las acciones realizadas en otros nodos concurrentemente.
11.2 Taxonomía de los mecanismos de control de concurrencia
Los algoritmos que se basan enacceso mutuamente exclusivo a los datos compartidos (de bloqueo), y las que intento de ordenar laejecución de las operaciones de acuerdo con un conjunto de reglas (protocolos)., estasprimitivas se pueden utilizar en los algoritmos con dos puntos de vista diferentes:
EL PESIMISTA ve que muchas de las transacciones entrarán en conflicto unos con otros
VISIÓN OPTIMISTA ve que no existan muchas transacciones sin no entrará en conflicto con otros. Agrupará los mecanismos de control de concurrencia en dos grandes clases:métodos de control de concurrencia pesimista y optimista métodos de control de concurrencia.
Algoritmos pesimistas sincronizar la ejecución concurrente de transacciones temprano ensu ciclo de vida ejecución, mientras que los algoritmos optimistas retrasar la sincronizaciónde las transacciones hasta su terminación.
El grupo consta de bloqueo pesimista algoritmos basados en pedidos (o transacción de pedido) y algoritmos basados en híbridosalgoritmos.
11.3 Bloqueo de algoritmos basados en control de concurrencia
La idea principal es garantizar que un elemento de datos que es compartida por operaciones en conflicto se accede por una operación a la vez. Esta se lleva a cabo mediante la asociación de un "bloqueo" con cada unidad de bloqueo. Este bloqueo se establece por una transacción antes de que se accede y se pone a cero al final de su uso. Una cerradura.
[b]11.3.1 2PL centralizado[/b]
2PL centralizado.
Se caracteriza por:
Hay un único planificador, o gestor de bloqueos (lock manager), para la totalidad del SGBD Distribuido que pueden garantizar (grant) y liberar (release) bloqueos.
2PL centralizado.
Funcionamiento:
El coordinador de transacciones local divide la transacción en subtransacciones, usando el catálogo global del sistema. Si la transacción implica actualizar un dato que está replicado, el coordinador solicita un bloqueo de escritura de todas las copias antes de actualizar cada copia y liberar los bloqueos. El coordinador puede elegir cualquiera de las copias de un dato
replicado para lectura.
El gestor de transacciones local, implicado en la transacción global, solicita y libera los bloqueos que mantiene el gestor centralizado de bloqueos usando las reglas usuales para el bloqueo en dos fases.
El gestor centralizado de bloqueos comprueba que las peticiones de bloqueo sobre un dato sean compatibles, de manera que el gestor de bloqueos envía un mensaje de vuelta al nodo que originó la petición reconociendo que el bloqueo ha sido concedido. En caso contrario, coloca la petición en una cola hasta que el bloqueo pueda ser realizado.