Você está na página 1de 25

Controle de

Concorrência

Celso Luiz de
Souza

Registro de
Timestamp

Técnicas de
Multiversão
Bloqueio em
Duas Fases
Controle de Concorrência
Multiversão

Técnicas
(Otimistas)
de Validação Celso Luiz de Souza
Bloqueios p/
Cont. de
Conc. em
Índices
Registros
Fantasmas
Trancas 2018
(Latches) Rev. Nov./2020
Granularidade
de Itens de
Dados

São João del-Rei

1/25
Controle de
Concorrência

Celso Luiz de
Souza
1 Registro de Timestamp
Registro de
Timestamp

Técnicas de
Multiversão 2 Técnicas de Multiversão
Bloqueio em
Duas Fases
Multiversão
Bloqueio em Duas Fases Multiversão
Técnicas
(Otimistas)
de Validação
Bloqueios p/ 3 Técnicas (Otimistas) de Validação
Cont. de
Conc. em
Índices
Bloqueios p/ Cont. de Conc. em Índices
Registros
Fantasmas Registros Fantasmas
Trancas
(Latches) Trancas (Latches)
Granularidade
de Itens de
Dados
4 Granularidade de Itens de Dados

São João del-Rei

2/25
Controle de
Concorrência

Celso Luiz de
Registro de Timestamp
Souza

Registro de
Timestamp

Técnicas de
Multiversão A técnica de controle de concorrência baseado em registro de
Bloqueio em
Duas Fases timestamp garante a serialização utilizando registros de times-
Multiversão

Técnicas
tamp para ordenar a execução de transações para um escalona-
(Otimistas)
de Validação
mento serial equivalente.
Bloqueios p/
Cont. de
Conc. em Um registro de timestamp é um identificador único criado pelo
Índices
Registros
Fantasmas
SGBD para identificar uma transação.
Trancas
(Latches)
Podem ser gerados por um contador incremental ou podem utili-
Granularidade
de Itens de zar o valor corrente do relógio do sistema (data/ hora/ minuto/
Dados
segundo/ milissegundo).

São João del-Rei

3/25
Controle de
Concorrência

Celso Luiz de
Registro de Timestamp
Souza

Registro de
Timestamp

Técnicas de
Multiversão
Bloqueio em
O escalonamento produzido é equivalente à ordem serial espe-
Duas Fases
Multiversão cífica correspondente à ordem dos registros de timestamp das
Técnicas transações.
(Otimistas)
de Validação
Bloqueios p/
Cont. de
O algoritmo deve garantir que, para cada item acessado por ope-
Conc. em
Índices rações conflitantes no escalonamento, a ordem em que o item é
Registros
Fantasmas acessado não transgride a ordem de serialização.
Trancas
(Latches)

Granularidade Essa técnica não utiliza bloqueios e, portanto, deadlocks não


de Itens de
Dados podem ocorrer.

São João del-Rei

4/25
Controle de
Concorrência

Celso Luiz de
Registro de Timestamp
Souza

Registro de
Timestamp

Técnicas de A cada item X do banco de dados são associados dois valores de


Multiversão
Bloqueio em registro de timestamp (TS):
Duas Fases
Multiversão

Técnicas
(Otimistas)
• read_TS(X): é o maior de todos os registros de timestamp
de Validação de transações que tenham lido com sucesso o item X .
Bloqueios p/
Cont. de
Conc. em
• read_TS(X) = TS(T), onde T é a transação mais recente
Índices
Registros
que leu X.
Fantasmas
Trancas
(Latches)
• write_TS(X): é o maior de todos os registros de timestamp
Granularidade
de transações que tenham gravado com sucesso o item X.
de Itens de
Dados
• write_TS(X) = TS(T), onde T é a transação mais recente
que gravou X.

São João del-Rei

5/25
Controle de
Concorrência

Celso Luiz de
Registro de Timestamp - Algoritmo
Souza

Registro de
Timestamp

Técnicas de
Multiversão Algoritmo de Ordenamento Básico de Registro de Timestamp:
Bloqueio em
Duas Fases
Multiversão 1 A transação T emite uma operação write_item(X):
Técnicas A Se read_TS(X) > TS(T) ou se write_TS(X) > TS(T),
(Otimistas)
de Validação então aborte (desfaça) T e rejeite a operação (T é subme-
Bloqueios p/
Cont. de
tida novamente ao sistema como uma nova transação com
Conc. em
Índices
um novo registro de timestamp).
Registros
Fantasmas
• Alguma transação mais recente já leu ou gravou o valor
Trancas
(Latches)
do item X .
Granularidade B Senão execute a operação write_item(X) de T e ajuste
de Itens de
Dados write_TS(X) para TS(T ).

São João del-Rei

6/25
Controle de
Concorrência

Celso Luiz de
Registro de Timestamp - Algoritmo
Souza

Registro de
Timestamp

Técnicas de
Multiversão
Bloqueio em
Duas Fases
2 A transação T emite uma operação read_item(X):
Multiversão
A Se write_TS(X) > TS(T), então aborte (desfaça) T e
Técnicas
(Otimistas)
rejeite a operação (T é submetida novamente com um novo
de Validação timestamp).
Bloqueios p/
Cont. de • Alguma transação mais recente já gravou o valor do item
Conc. em
Índices X.
Registros
Fantasmas
Trancas
B Senão execute a operação read_item(X) de T e ajuste
(Latches)
read_TS(X) para o maior valor entre TS(T ) e o valor
Granularidade
de Itens de corrente de read_TS(X).
Dados

São João del-Rei

7/25
Controle de
Concorrência

Celso Luiz de
Registro de Timestamp - Algoritmo
Souza

Registro de
Timestamp

Técnicas de
Multiversão O algoritmo anterior pode provocar rollback em cascata. Uma
Bloqueio em
Duas Fases
Multiversão
regra adicional deve ser imposta para garantir escalonamentos
Técnicas estritos.
(Otimistas)
de Validação
Bloqueios p/ Algoritmo de Ordenamento Estrito de Registro de Times-
Cont. de
Conc. em
Índices tamp: Variação do algoritmo básico com a seguinte regra adicio-
Registros
Fantasmas nal: uma transação T que emita um read_item(X) ou write_item
Trancas
(Latches) tal que TS(T) > write_TS(X), tem sua operação de leitura
Granularidade
de Itens de
ou gravação retardada até que a transação T 0 que gravou o valor
Dados
de X tenha sido committed ou abortada.

São João del-Rei

8/25
Controle de
Concorrência

Celso Luiz de
Registro de Timestamp - Algoritmo
Souza

Registro de
Timestamp

Técnicas de
Multiversão
Bloqueio em
Duas Fases
Para implementar esse algoritmo, é necessário simular o bloqueio
Multiversão
de um item X que tenha sido gravado pela transação T 0 até que
Técnicas
(Otimistas) T 0 tenha sido committed ou abortada.
de Validação
Bloqueios p/ • Não causa deadlock porque T espera por T 0 somente se
Cont. de
Conc. em
Índices TS(T) > TS(T’).
Registros
Fantasmas
Trancas
(Latches)
Com registros de timestamp pode ocorrer starvation se uma
Granularidade
de Itens de transação for continuamente abortada e reiniciada.
Dados

São João del-Rei

9/25
Controle de
Concorrência

Celso Luiz de
Técnicas de Multiversão
Souza

Registro de
Timestamp As técnicas de controle de concorrência multiversão mantêm os
Técnicas de valores antigos de um item de dado quando o item é atualizado.
Multiversão
Bloqueio em
Duas Fases
Multiversão

Técnicas
(Otimistas) • Algumas operações de leitura que seriam rejeitadas em ou-
de Validação
Bloqueios p/
tras técnicas passam a ser aceitas através da leitura de uma
Cont. de
Conc. em
Índices
versão anterior do item para manter a serialização.
Registros
Fantasmas • Quando uma transação grava um item, grava uma nova
Trancas
(Latches) versão e a versão antiga do item é retida.
Granularidade
de Itens de • Desvantagem: maior volume de armazenamento para man-
Dados
ter várias versões dos itens do banco de dados.

Ideal para banco de dados temporal.


São João del-Rei

10/25
Controle de
Concorrência

Celso Luiz de
Técnicas de Multiversão
Souza

Registro de
Timestamp

Técnicas de
Multiversão
Bloqueio em
Duas Fases
Multiversão Exemplos de técnicas de multiversão:
Técnicas
(Otimistas)
de Validação • Técnica multiversão baseada no ordenamento de registro de
Bloqueios p/
Cont. de
Conc. em
timestamp.
Índices
Registros
Fantasmas
• Bloqueio em duas fases multiversão utilizando bloqueios de
Trancas
(Latches) certificação.
Granularidade
de Itens de
Dados

São João del-Rei

11/25
Controle de
Concorrência

Celso Luiz de
Bloq. em Duas Fases Multiversão
Souza

Registro de
Timestamp

Técnicas de
Multiversão Na técnica de bloqueio em duas fases multiversão utilizando
Bloqueio em
Duas Fases bloqueios de certificação o estado de um LOCK (X ) para um
Multiversão

Técnicas
item X pode ser:
(Otimistas)
de Validação
Bloqueios p/
Cont. de
• bloqueado para leitura: compartilhado com leitura e gra-
Conc. em
Índices vação.
Registros
Fantasmas
Trancas • bloqueado para gravação: compartilhado com leitura.
(Latches)

Granularidade • bloqueado para certificação: exclusivo


de Itens de
Dados • desbloqueado

São João del-Rei

12/25
Controle de
Concorrência

Celso Luiz de
Bloq. em Duas Fases Multiversão
Souza

Registro de
Timestamp

Técnicas de
Esquema de funcionamento:
Multiversão
Bloqueio em
• Permite que outras transações T 0 leiam um item X enquanto
Duas Fases
Multiversão uma única transação T mantém um bloqueio de gravação em X .
Técnicas
(Otimistas) • Permite duas versões de cada item X ; uma versão deve sempre ter
de Validação
Bloqueios p/
sido gravada por alguma transação concluída. A segunda versão
Cont. de
Conc. em X 0 é criada quando uma transação T adquire um bloqueio de
Índices
Registros gravação no item.
Fantasmas
Trancas
(Latches) • Outras transações podem continuar a ler a versão committed de
Granularidade X enquanto T mantém o bloqueio de gravação.
de Itens de
Dados
• A transação T pode gravar o valor de X 0 conforme necessário
sem afetar o valor da versão committed de X .

São João del-Rei

13/25
Controle de
Concorrência

Celso Luiz de
Bloq. em Duas Fases Multiversão
Souza

Registro de
Timestamp

Técnicas de • Quando T estiver pronta para ser concluída (committed ), ela


Multiversão
Bloqueio em
deve obter um bloqueio de certificação (bloqueio exclusivo)
Duas Fases
Multiversão
em todos os itens nos quais ela mantenha bloqueios de gravação.
Técnicas
(Otimistas)
de Validação • A transação pode ter que retardar sua conclusão até que
Bloqueios p/
Cont. de todos os itens bloqueados para gravação sejam liberados.
Conc. em
Índices
Registros
Fantasmas
• Ao adquirir os bloqueios de certificação, a versão committed de
Trancas
(Latches)
X é ajustada para o valor da versão X 0 , a versão X 0 é descartada
Granularidade
e os bloqueios de certificação são então liberados.
de Itens de
Dados
Esse esquema evita rollback em cascata (as transações somente leêm
a versão committed de X ) mas podem ocorrer deadlocks se o upgrade
leitura/gravação for permitido.

São João del-Rei

14/25
Controle de
Concorrência

Celso Luiz de
Técnicas (Otimistas) de Validação
Souza

Registro de
Timestamp
Em técnicas otimistas de controle de concorrência (ou téc-
Técnicas de nicas de validação ou certificação), nenhuma verificação é
Multiversão
Bloqueio em
realizada enquanto a transação está sendo executada.
Duas Fases
Multiversão

Técnicas
(Otimistas)
• Diminuindo um custo adicional durante a execução da
de Validação transação.
Bloqueios p/
Cont. de
Conc. em
Índices
Registros
Fantasmas
Um dos métodos otimista propõe o seguinte esquema:
Trancas
(Latches)

Granularidade • Atualizações na transação não são aplicadas diretamente aos


de Itens de
Dados
itens do banco de dados até que a transação atinja seu final.

• Todas as atualizações são aplicadas a cópias locais dos


itens de dados.
São João del-Rei

15/25
Controle de
Concorrência

Celso Luiz de
Técnicas (Otimistas) de Validação
Souza

Registro de
Timestamp

Técnicas de
Multiversão
Bloqueio em
Duas Fases
• Ao final da execução da transação, a fase de validação
Multiversão

Técnicas
verifica se qualquer uma das atualizações da transação viola
(Otimistas) a serialização.
de Validação
Bloqueios p/ Se a serialização não for violada, a transação é concluída e o
Cont. de
Conc. em
Índices banco de dados é atualizado a partir das cópias locais; caso
Registros
Fantasmas contrário a transação é abortada e posteriormente reiniciada.
Trancas
(Latches)

Granularidade
A técnica funciona bem se houver pouca interferência entre as
de Itens de
Dados
transações (suposição otimista).

São João del-Rei

16/25
Controle de
Concorrência

Celso Luiz de
Bloqueios p/ Cont. de Conc. em
Souza
Índices
Registro de
Timestamp

Técnicas de
O bloqueio em duas fases pode também ser aplicado para con-
Multiversão
Bloqueio em
trole de concorrência em índices.
Duas Fases
Multiversão
A abordagem tradicional degrada a performance, pois a pesquisa
Técnicas
(Otimistas) sempre começa pela raiz e esta estaria sempre bloqueada.
de Validação
Bloqueios p/
Cont. de Aproveitando a estrutura de árvore do índice pode-se desenvolver
Conc. em
Índices
Registros
outros esquemas:
Fantasmas
Trancas • Para bloqueios de leitura, uma vez que o bloqueio no nó filho
(Latches)
seja obtido, o bloqueio no pai pode ser liberado.
Granularidade
de Itens de • Para bloqueios de gravação, se uma inclusão está sendo aplicada
Dados
a um nó folha, este deve ser bloqueado em modo exclusivo.
No entanto, se esse nó não estiver preenchido, a inclusão não
causará alterações em nós índices de nível mais elevado, o que
implica que eles não precisam ser bloqueados exclusivamente.
São João del-Rei

17/25
Controle de
Concorrência

Celso Luiz de
Bloqueios p/ Cont. de Conc. em
Souza
Índices
Registro de
Timestamp Uma abordagem conservadora para inclusões:
Técnicas de
Multiversão Bloquear o nó raiz em modo exclusivo e em seguida acessar o nó
Bloqueio em
Duas Fases
Multiversão
filho apropriado da raiz. Se o nó filho não estiver preenchido, o
Técnicas bloqueio no nó raiz pode ser liberado.
(Otimistas)
de Validação
Bloqueios p/ Essa abordagem pode ser aplicada durante todo o percurso para
Cont. de
Conc. em
Índices baixo da árvore até a folha.
Registros
Fantasmas
Trancas
(Latches)
Outra abordagem mais otimista para inclusões:
Granularidade
de Itens de • Requisitar e manter bloqueios compartilhados nos nós que levam
Dados
até o nó folha, com um bloqueio exclusivo na folha.
• Se a inclusão fizer com que a folha se parta, a inclusão irá se
propagar até um ou mais nós de nível mais elevado.
• Então, os bloqueios no nó ou nós de nível mais elevado podem
São João del-Rei

sofrer um upgrade para o modo exclusivo.


18/25
Controle de
Concorrência

Celso Luiz de
Registros Fantasmas
Souza

Registro de
Timestamp
Uma situação conhecida como problema de fantasma (phan-
Técnicas de
Multiversão tom) pode ocorrer quando um novo registro que esteja sendo
Bloqueio em
Duas Fases
Multiversão
inserido através de alguma transação T satisfaz a mesma con-
Técnicas dição que um conjunto de registros acessados por uma outra
(Otimistas)
de Validação
transação T 0 .
Bloqueios p/
Cont. de
Conc. em Exemplo:
Índices
Registros T está inserindo um registro na tabela EMPREGADO cujo atributo
Fantasmas
Trancas NUMDEPTO = 5, enquanto T 0 está acessando todos os registros da
(Latches)
tabela EMPREGADO cujo atributo é NUMDEPTO = 5.
Granularidade
de Itens de
Dados Se a ordem serial equivalente for T seguida de T 0 , então T 0 deve ler
o novo registro em EMPREGADO. Para a ordem serial T 0 seguida
de T , o novo registro não deve ser incluído.

São João del-Rei

19/25
Controle de
Concorrência

Celso Luiz de
Registros Fantasmas
Souza

Registro de
Timestamp

Técnicas de
Multiversão
Bloqueio em
Duas Fases
Multiversão

Técnicas As transações conflitam logicamente e um registro fantasma


(Otimistas)
de Validação pode aparecer repentinamente no banco de dados. Se outras
Bloqueios p/
Cont. de
operações nas duas transações conflitam, o conflito devido ao
Conc. em
Índices registro fantasma pode não ter sido reconhecido pelo protocolo
Registros
Fantasmas
Trancas
de controle de concorrência.
(Latches)

Granularidade
de Itens de
Dados

São João del-Rei

20/25
Controle de
Concorrência

Celso Luiz de
Trancas (Latches)
Souza

Registro de
Timestamp

Técnicas de
Multiversão Trancas (latches) são bloqueios mantidos durante uma curta
Bloqueio em
Duas Fases duração.
Multiversão

Técnicas
(Otimistas)
As trancas não seguem o protocolo usual de controle de concor-
de Validação
Bloqueios p/
rência como o bloqueio em duas fases.
Cont. de
Conc. em
Índices
Registros
Exemplo:
Fantasmas
Trancas
Uma tranca pode ser utilizada para garantir a integridade física de
(Latches)
uma página quando essa página estiver sendo gravada do buffer
Granularidade
de Itens de para o disco. Uma tranca seria obtida para a página, a página
Dados
gravada para o disco, e em seguida a tranca seria liberada.

São João del-Rei

21/25
Controle de
Concorrência

Celso Luiz de
Granularidade de Itens de Dados
Souza

Registro de
Timestamp

Técnicas de
Multiversão
Todos os mecanismos de controle de concorrência assumem que
Bloqueio em
Duas Fases
um banco de dados é formado por uma coleção de itens de dados.
Multiversão
Um item de dado pode ser um dos seguintes:
Técnicas
(Otimistas)
de Validação
Bloqueios p/
Cont. de • um registro do banco de dados;
Conc. em
Índices
Registros • um valor de campo de um registro do banco de dados;
Fantasmas
Trancas
(Latches) • um bloco de disco;
Granularidade
de Itens de
• um arquivo inteiro;
Dados
• todo o banco de dados.

São João del-Rei

22/25
Controle de
Concorrência

Celso Luiz de
Granularidade de Itens de Dados
Souza

Registro de
Timestamp

Técnicas de
Multiversão
Bloqueio em
Duas Fases
Multiversão A escolha da granularidade dos itens de dados é fundamental
Técnicas para se determinar o grau de concorrência permitido.
(Otimistas)
de Validação
Bloqueios p/
• Quanto maior o tamanho do item de dado, menor o grau de
Cont. de
Conc. em concorrência permitido.
Índices
Registros
Fantasmas • Quanto menor o tamanho do item de dado, maior o número
Trancas
(Latches) de itens no banco de dado a serem gerenciados.
Granularidade
de Itens de
Dados

São João del-Rei

23/25
Controle de
Concorrência

Celso Luiz de
Granularidade de Itens de Dados
Souza

Registro de
Timestamp

Técnicas de
Multiversão Qual o melhor tamanho do item de dado? Depende dos
Bloqueio em
Duas Fases
Multiversão
tipos de transações envolvidas
Técnicas
(Otimistas)
de Validação Um sistema de banco de dados deve suportar diversos níveis de
Bloqueios p/
Cont. de
granularidade, diferentes para várias combinações de transações.
Conc. em
Índices
Registros
Fantasmas
Trancas
(Latches)
Em um protocolo de bloqueio em duas fases de nível de vá-
Granularidade
de Itens de rias granularidades, um bloqueio pode ser solicitado a qualquer
Dados
nível.

São João del-Rei

24/25
Controle de
Concorrência

Celso Luiz de
Granularidade de Itens de Dados
Souza

Registro de
Timestamp

Técnicas de
Multiversão São necessários tipos adicionais de bloqueios, denominados blo-
Bloqueio em
Duas Fases
Multiversão
queios de intenção:
Técnicas
(Otimistas)
de Validação Compartilhados por intenção, exclusivos por intenção e com-
Bloqueios p/
Cont. de
partilhados exclusivos por intenção.
Conc. em
Índices
Registros
Fantasmas
Trancas
Em bloqueios de intenção, a transação deve indicar, ao longo do
(Latches)
caminho desde a raiz até o nó desejado, qual o tipo de bloqueio
Granularidade
de Itens de (compartilhado ou exclusivo) que ela irá requisitar, a partir de
Dados
um dos descendentes do nó.

São João del-Rei

25/25

Você também pode gostar