Documentos de Académico
Documentos de Profesional
Documentos de Cultura
AA10-EV3-Manejo de Transacciones, Bloqueos y Control de Concurrencia en Un Motor de PDF
AA10-EV3-Manejo de Transacciones, Bloqueos y Control de Concurrencia en Un Motor de PDF
MOTOR DE
PRESENTADO AL INSTRUCTOR:
PRESENTADO POR:
2020
INTRODUCCIÓN
Debemos entender que una transacción la calificamos con un evento secuencia dentro de una
base de datos y se emplean mecanismo tales como las peticiones, como pueden ser inserción
de datos, borrado y actualización de los mismo, pero también se pueden generar
transacciones mucho mas complejas y tener en cuenta las propiedades de transacción como
las relacionaremos a continuación:
Atomicidad: Nos permite cuidar la información de la forma que si la sentencia esta mal escrita
o posee errores ilógicos el sistema no generara los cambios y restaurara un punto antes de la
sentencia,
Consistencia: permite asegurándonos de que todos los cambios para la base s de datos sean
los correctos y con contengan errores.
Durabilidad: nos aseguraremos de que los cambios realizados sobre el sistema sean
permanentes sin que el sistema tenga fallas o errores.
En PostgreSQL podemos utilizar transacciones utilizando el comando BEGIN, para indicar que
terminamos de manera correcta todas las sentencias utilizamos el comando COMMIT y para
hacer la cancelación de alguna usamos ROLLBACK.
PostgreSQL nos ofrecen una seri de métodos de bloqueo para controla el acceso concurrente a
las tablas de datos, y algunos se configuran automáticamente, del resto observamos bloqueos
a nivel de tabla o a nivel de fila
AccessShareLock
RowShareLock
Adquirido por SELECT FOR UPDATE y LOCK TABLE para declaraciones IN ROW SHARE MODE.
RowExclusiveLock
Lo adquieren UPDATE, DELETE, INSERT y LOCK TABLE para declaraciones IN ROW EXCLUSIVE
MODE.
ShareLock
ShareRowExclusiveLock
ExclusiveLock
AccessExclusiveLock
Este tipo de bloqueos se producen cuando campos internos de una fila son actualizados (o
borrados o marcados para ser actualizados). PostgreSQL no retiene en memoria ninguna
información sobre filas modificadas y de este modo no tiene límites para el número de filas
bloqueadas sin incremento de bloqueo.
Sin embargo, tenga en cuenta que SELECT FOR UPDATE modificará las filas seleccionadas
marcándolas, de tal modo que se escribirán en el disco, Los bloqueos a nivel de fila no afectan
a los datos consultados. Estos son usados para bloquear escrituras a la misma fila únicamente.
• ¿Cómo se libera un bloqueo?
Índices hash
Se usa el bloqueo a nivel de página para acceso lectura/escritura. El bloqueo tiene lugar
después de que la página haya sido procesada.
Los bloqueos a nivel de página producen mejor concurrencia que los bloqueos a nivel de
índice, pero pueden provocar "puntos muertos".
Btree
Se maneja a través del bloqueo teniendo en cuenta los diferentes tipos de bloque, para de esta
forma dar prioridad a los usuarios que lo utilicen con mas prioridad.
BIBLIOGRAFÍA