ABD 10 UNIDAD II ControlConcurrencia PDF

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 31

UNIVERSIDAD TÉCNICA DE MANABÍ

DEPARTAMENTO DE INFORMÁTICA

Administración de Base
de Datos

Tercer Semestre
Ing. Lorena Bowen Mendoza
ADMINISTRACIÓN DE BASES DE DATOS

PROCESAMIENTO DE
TRANSACCIONES
UNIDAD II
ADMINISTRACIÓN DE BASES DE DATOS

CONTENIDO A TRATAR HOY:


Control de Concurrencia

Objetivo de la Clase:
Explicar los conceptos de recuperación y transparencia
de concurrencia.
Entender la función de los candados para evitar
problemas de interferencia entre varios usuarios.

8/14/2020 Cognitive Cities Management Research Group (CMMA) 3


CONTROL DE
CONCURRENCIA
8/14/2020 Cognitive Cities Management Research Group (CMMA) 4
PROCESAMIENTO DE TRANSACCIONES
CONTROL DE CONCURRENCIA
La mayoría de las organizaciones no podrían funcionar sin bases de
datos para usuarios múltiples.
Por ejemplo, las bases de datos de líneas aéreas, tiendas detallistas,
bancos y servicios de ayuda pueden tener miles de usuarios que tratan
de hacer negociaciones al mismo tiempo. En estas bases de datos
varios usuarios tienen acceso concurrente, es decir, al mismo tiempo.
Si el acceso estuviera limitado a un usuario a la vez, se realizaría una
parte mínima del trabajo y la mayoría de los usuarios se llevarían su
negocio a otra parte. Sin embargo, los usuarios concurrentes no se
pueden inferir entre ellos.
PROCESAMIENTO DE TRANSACCIONES
CONTROL DE CONCURRENCIA
DEFINICIÓN DE CONCURRENCIA
En el campo informático, el termino concurrencia se refiere a la
capacidad de los Sistemas de Administración de Base de Datos, de
permitir que múltiples procesos sean ejecutados al mismo tiempo, y
que también puedan interactuar entre sí. Los procesos concurrentes
pueden ser ejecutados realmente de forma simultánea, sólo cuando
cada uno es ejecutado en diferentes procesadores. En cambio, la
concurrencia es simulada si sólo existe un procesador encargado de
ejecutar todos los procesos, simulando la concurrencia, ocupándose de
forma alternada de uno y otro proceso a muy pequeños intervalos de
tiempo. De esta manera simula que se están ejecutando a la vez.
PROCESAMIENTO DE TRANSACCIONES
CONTROL DE CONCURRENCIA
PROCESAMIENTO DE TRANSACCIONES
CONTROL DE CONCURRENCIA

Aplicaciones Estructuradas Diseño de Sistemas


Multiprogramación
La programación Operativos
Tiempo de procesador es
estructurada se implementa Los cuales se implementan
compartido dinámicamente
como un conjunto de como un conjunto de
por varios procesos
procesos concurrentes procesos

CASOS DE CONCURRENCIA
CONTROL DE CONCURRENCIA
OBJETIVOS DEL CONTROL DE CONCURENCIA
El objetivo del control de la concurrencia es maximizar el caudal de procesamiento de
transacciones y, al mismo tiempo, evitar la interferencia entre varios usuarios.
El caudal de procesamiento de transacciones, es el número de transacciones procesadas
por unidad de tiempo, es una importante medida del trabajo que realiza un DBMS. Por
lo regular, el caudal de procesamiento se reporta en transacciones por minuto. En un
ambiente de alto volumen, como el comercio electrónico, los DBMS quizá Necesiten
procesar miles de transacciones por minuto.
Desde la perspectiva del usuario, el caudal de procesamiento de transacciones está
relacionado Con el tiempo de respuesta. Un caudal de procesamiento más alto significa
tiempos de respuesta más largos. Por lo general, los usuarios no están dispuestos a
esperar más de unos cuantos segundos para la realización de una transacción.
CONTROL DE CONCURRENCIA
OBJETIVOS DEL CONTROL DE CONCURENCIA
Las transacciones que se ejecutan de manera simultánea no pueden interferirse entre sí, a
menos que manipulen datos comunes. La mayor parte de las transacciones concurrentes
manipulan sólo pequeñas cantidades de datos comunes.
Un punto decisivo son los datos comunes que varios usuarios tratan de cambiar al mismo
tiempo. En esencia, un punto decisivo representa un recurso escaso por el que los usuarios
deben esperar. Los puntos decisivos típicos son los asientos libres en los vuelos de mayor
demanda, la cantidad disponible de artículos populares en un inventario y los lugares
disponibles en los cursos ofrecidos. En un mundo ideal, los DBMS sólo registrarían los
puntos decisivos, pero, por desgracia, puede ser difícil conocerlos por anticipado, de modo
que los DBMS registran el acceso a cualquier parte de una base de datos. La interferencia
en los puntos decisivos puede dar lugar a datos perdidos y a la toma de decisiones
equivocadas. Las secciones siguientes describen los problemas de interferencia y las
herramientas para prevenirlos.
CONTROL DE CONCURRENCIA
PROBLEMAS DE CONCURRENCIA
Hay tres problemas que se pueden presentar debido al acceso simultáneo a una
base de datos:

Actualización Dependencia sin Recuperaciones


Perdida realización Inconsistente
PROBLEMAS DE CONCURRENCIA
ACTUALIZACIÓN PERDIDA
Una actualización perdida es el problema de interferencia más serio porque los cambios a
una base de datos se pierden sin que nadie se dé cuenta. En una actualización perdida, la
actualización de un usuario sobrescribe la de otro
Dos transacciones concurrentes (asientos libres SR).

Ambas transacciones guardan el valor 10 para SR en los


búfers locales.
Ambas transacciones realizan cambios a su copia local de
SR, sin darse cuenta de la actividad de la otra transacción.
El valor después de terminar ambas transacciones debe ser
8 y no 9. Se perdió uno de los cambios.

Una actualización perdida comprende dos o más


transacciones que tratan de cambiar (escribir en)
la misma parte de la base de datos.
PROBLEMAS DE CONCURRENCIA
ACTUALIZACIÓN PERDIDA
PROBLEMAS DE CONCURRENCIA
DEPENDENCIA SIN REALIZACIÓN
Una dependencia sin realización sucede cuando una transacción lee los datos que
escribe otra antes de que la otra transacción se realice. Una dependencia sin realización
también se conoce como lectura sucia porque la provoca una transacción que lee datos
sucios (sin realizar).
La transacción A lee el campo SR.

Cambia su copia local del campo SR y escribe el nuevo


valor en la base de datos

La transacción B lee el valor cambiado.

Se detecta un error y la transacción A emite una


restauración al estado original.

Una dependencia sin realización comprende una transacción que escribe y otra que lee en
la misma parte de la base de datos. Sin embargo, una dependencia sin realización no
puede ocasionar un problema a menos que ocurra una restauración al estado original.
PROBLEMAS DE CONCURRENCIA
DEPENDENCIA SIN REALIZACIÓN
PROBLEMAS DE CONCURRENCIA
RECUPERACIONES INCONSISTENTES
El problema de resumen incorrecto es el más importante entre los que comprenden
recuperaciones inconsistentes. Un resumen incorrecto ocurre cuando una transacción,
mientras calcula la función de resumen, lee algunos valores antes de que otra transacción
los cambie, pero lee otros valores después de que otra transacción los cambió.
La transacción B lee SR1. después que la transacción A
cambió el valor

Lee SR2 antes de que la transacción A lo cambie.

Para que haya consistencia, la transacción B debe utilizar


todos los valores antes o después de que otras
transacciones los cambien
PROBLEMAS DE CONCURRENCIA
RECUPERACIONES INCONSISTENTES
Un segundo problema que comprende recuperaciones inconsistentes se conoce como
problema de lectura fantasma.
Un problema de lectura fantasma se
presenta cuando una transacción realiza una
consulta con condiciones de registro. Luego,
otra transacción inserta o modifica los datos
que la consulta recuperaría. Por último, la
transacción original ejecuta la misma
consulta otra vez. La segunda ejecución de la
consulta recupera distintos registros que los
que recuperó la primera. Los registros
nuevos y cambiados son fantasmas porque
no existen en el resultado de la ejecución de
la primera consulta.
PROBLEMAS DE CONCURRENCIA
RECUPERACIONES INCONSISTENTES
Un tercer problema que comprende recuperaciones inconsistentes se conoce
como problema de lectura no repetible.

Un problema de lectura no repetible


ocurre cuando una transacción lee el
mismo valor más de una vez. Entre
una y otra lectura de datos, otra
transacción los modifica. La segunda
recuperación contiene un valor
diferente que la primera por el cambio
que realiza otra transacción.
PROBLEMAS DE CONCURRENCIA
RECUPERACIONES INCONSISTENTES
Los problemas de lectura no repetible y fantasma son ligeramente diferentes.
Un problema de lectura no repetible ocurre si otro usuario cambia el valor de
una columna de una fila de consulta, de modo que la consulta regresa un
valor diferente en la siguiente ejecución. Un problema de lectura fantasma
ocurriría al insertar una nueva fila que coincida con una condición en una
consulta, de modo que esta última recupera una fila adicional en la siguiente
ejecución. La diferencia clave es el requisito de la condición de a fila para el
problema de lectura fantasma.
CONTROL DE CONCURRENCIA
HERRAMIENTAS DE CONTROL DE
CONCURRENCIA

CANDADO GRANULARIDAD DE CANDADOS


• Herramienta fundamental del control de • El tamaño del elemento de una base de
concurrencia. Un candado en un datos con candados. La granularidad del
elemento de una base de datos evita que candado es un intercambio entre el
se realicen otras transacciones que tiempo de espera (cantidad de
ponen en conflicto las acciones en el concurrencia permitida) y el trabajo
mismo elemento. adicional (número de candados que
tiene).
HERRAMIENTAS DE CONTROL DE CONCURRENCIA
CANDADOS
Los candados ofrecen una forma de evitar que otros usuarios tengan acceso a un
elemento de una base de datos que está en uso. Un elemento de una base de datos
puede ser una fila, un bloque, un subconjunto de filas o incluso una tabla completa.
Antes de tener acceso al elemento de la base de datos, es necesario obtener un candado.
Otros usuarios deben esperar si tratan de obtener un candado en el mismo elemento.

Es preciso obtener un candado compartido (S)


antes de leer un elemento de una base de
datos, mientras que necesitamos un candado
exclusivo (X) antes de escribir en él. Como
muestra la tabla, cualquier cantidad de
usuarios puede tener un candado compartido
en el mismo elemento. Sin embargo, sólo un
usuario puede tener un candado exclusivo.
HERRAMIENTAS DE CONTROL DE CONCURRENCIA
Un candado asegura que un objeto que va a ser utilizado por una transacción no cambie
de manera impredecible, si esto puede afectar la confiabilidad del resultado. El efecto del
bloqueo es no permitir que otras transacciones tengan acceso al objeto.

Bloque exclusivo:
Si una transacción A tiene un bloqueo X sobre el objeto R, cualquier otra transacción B
que solicite un bloqueo (de cualquier tipo) sobre R, entrará en un estado de espera, hasta
que A libere el bloqueo sobre R.

Bloqueo compartido:
Si una transacción A tiene un bloqueo S sobre el objeto R:
Si ora transacción B solicita un bloqueo X sobre el objeto R, entrará en un estado de
espera, hasta que A, libere a R.
Si en cambio B, solicita un bloqueo S, su solicitud sería concedida.
X: escritura S: lectura
HERRAMIENTAS DE CONTROL DE CONCURRENCIA
El administrador del control de concurrencia es la parte del DBMS responsable de
administrar los candados. Este administrador conserva una tabla oculta para registrar los
candados que tienen diversas transacciones. Un registro de candados contiene un
identificador de transacciones, un identificador de registros, un tipo y una cuenta.

En el esquema más simple, el tipo es compartido o exclusivo. La mayor parte de los DBMS
tienen otros tipos de candados para mejorar la eficiencia y permitir mayor acceso
concurrente. El administrador del control de concurrencias realiza dos operaciones en los
registros de candados. El operador de candado agrega una fila en la tabla de candados,
mientras que el operador para abrir candados u operador de liberación elimina una fila
de la tabla de candados.
HERRAMIENTAS DE CONTROL DE CONCURRENCIA
GRANULARIDAD DE CANDADOS
La granularidad de candados representa una complicación en
relación con los candados. La granularidad se refiere al
tamaño del elemento de la base de datos que tiene candado.
La mayor parte de los DBMS manejan candados de distintas
granularidades. El candado más extenso abarca toda la base
de datos. Si toda la base tiene un candado exclusivo, ningún
otro usuario tiene acceso a la base de datos hasta quitarlo.
Por otro lado, el candado más pequeño abarca sólo una
columna individual. También puede haber candados en
partes de la base de datos que no ven los usuarios en
general. Por ejemplo, es posible tener candados en los
índices y en las páginas (registros físicos).
HERRAMIENTAS DE CONTROL DE CONCURRENCIA
HERRAMIENTAS DE CONTROL DE CONCURRENCIA
GRANULARIDAD DE CANDADOS
Los candados de intención se utilizan por lo regular para aligerar el bloqueo
en forma compartida o exclusiva causado por los candados más fuertes en los
elementos. Los candados de intención soportan más concurrencia en los
elementos pesados que los candados compartidos o exclusivos. Además,
permiten la detección eficiente de los conflictos entre candados en
elementos de diversa granularidad.

Para soportar la lectura y la escritura en niveles de granularidad más bajos, se


utilizan tres tipos de candados de intención:
HERRAMIENTAS DE CONTROL DE CONCURRENCIA
GRANULARIDAD DE CANDADOS
Por ejemplo, una
Candado de • Cuando se quieren leer transacción debe
intención
compartido elementos de nivel más bajo. solicitar un candado de
intención compartido en
una tabla en la que
quiera leer las filas. El
Candado de • Cuando se van a escribir candado de intención
intención exclusivo elementos de nivel más bajo. compartido en la tabla
sólo entra en conflicto
Candados de con los candados
intención • Cuando la idea es leer y escribir exclusivos en la tabla o en
compartidos y elementos de nivel más bajo. elementos de menor
exclusivos, granularidad.
HERRAMIENTAS DE CONTROL DE CONCURRENCIA
PUNTOS MUERTOS
El uso de candados para evitar problemas de interferencia puede dar lugar a puntos
muertos. Un punto muerto es un problema de espera mutua. Una transacción tiene un
recurso que necesita una segunda transacción, y esta última ocupa un recurso que la
primera necesita.
La transacción A adquiere un candado exclusivo en la
primera ruta (digamos de Denver a Chicago)

La transacción B que adquiere un candado en la


segunda ruta (digamos de Chicago a Nueva York)

La transacción A trata de poner un candado en la


segunda ruta, pero está bloqueada porque la
transacción B tiene un candado exclusivo.

La transacción B debe esperar con el fin de


Los puntos muertos pueden comprender más de obtener un candado para la primera ruta.
dos transacciones, pero el patrón es más complejo
HERRAMIENTAS DE CONTROL DE CONCURRENCIA
PROTOCOLO DE CANDADO EN DOS ETAPAS
Para asegurarse de que no se presenten problemas de actualizaciones
perdidas, el administrador de control de concurrencia pide que todas las
transacciones sigan el protocolo de candados en dos etapas (2PL). Protocolo
es un término elegante para referirnos a una regla de comportamiento de
grupo. Un protocolo pide a todos los miembros de un grupo que se
comporten de una manera específica.
Para el control de concurrencia, todas las transacciones deben seguir el
protocolo 2PL para garantizar que no ocurran problemas de concurrencia.
HERRAMIENTAS DE CONTROL DE CONCURRENCIA
PROTOCOLO DE CANDADO EN DOS ETAPAS
Los candados en dos etapas tienen tres condiciones:

Antes de leer o escribir en un elemento de datos, la


transacción debe adquirir el candado aplicable para el
elemento de datos.

Espere si hay un candado problemático en el elemento de


datos.

Después de abrir un candado, la transacción no adquiere


ningún nuevo candado.
HERRAMIENTAS DE CONTROL DE CONCURRENCIA
PLANTEAMIENTOS OPTIMISTAS
Los planteamientos de control de concurrencia optimistas suponen que los
conflictos son raros. Si es así, es más eficiente revisar la presencia de
conflictos que utilizar candados que obliguen a esperar. En los
planteamientos optimistas, las transacciones pueden tener acceso a la base
de datos sin adquirir candados. En vez de ello, el administrador de control de
concurrencia revisa si ocurrió algún conflicto. La revisión se puede llevar a
cabo antes de realizar la transacción o después de cada lectura y escritura.
Revisando el tiempo relativo de las lecturas y escrituras, el administrador de
control de concurrencia puede determinar si ha ocurrido algún conflicto. En
caso de que así sea, el administrador indica que todo debe volver a su estado
inicial y empezar la transacción que provocó el conflicto.

También podría gustarte