65
CONTROLE DISTRIBUÍDO DE CONCORRÊNCIA Dennis Williams e Wanderson de Lima

CONTROLE DISTRIBUÍDO DE CONCORRÊNCIA Dennis Williams e Wanderson de Lima

Embed Size (px)

Citation preview

Page 1: CONTROLE DISTRIBUÍDO DE CONCORRÊNCIA Dennis Williams e Wanderson de Lima

CONTROLE DISTRIBUÍDO DE CONCORRÊNCIADennis Williams e Wanderson de Lima

Page 2: CONTROLE DISTRIBUÍDO DE CONCORRÊNCIA Dennis Williams e Wanderson de Lima

Roteiro Introdução Três problemas de concorrência Teoria da Serializabilidade Taxonomia dos mecanismos de controle de

concorrência Bloqueios Algoritmos baseados em TO Algoritmos otimistas Gerenciamento de impasses Controle de concorrência Relaxado Conclusão

Page 3: CONTROLE DISTRIBUÍDO DE CONCORRÊNCIA Dennis Williams e Wanderson de Lima

Introdução Os SGBDs permitem que muitas

transações tenham acesso ao mesmo banco de dados ao mesmo tempo

Através da concorrência, é possível obter uma melhor vazão do SGBD

É necessário um mecanismo para garantir o isolamento das transações e a consistência do BD

Page 4: CONTROLE DISTRIBUÍDO DE CONCORRÊNCIA Dennis Williams e Wanderson de Lima

Três problemas de concorrência Atualização perdida

T1 T2Read(X)X=X-M

Read(X)X=X+M

Write(X)Write(X)

Tem

po

O elemento X tem um valor incorreto porque sua atualização por T1 se perdeu

Page 5: CONTROLE DISTRIBUÍDO DE CONCORRÊNCIA Dennis Williams e Wanderson de Lima

Três problemas de concorrência Leitura Suja

T1 T2Read(X)X=X-MWrite(X)

Read(X)X=X+MWrite(X)

Rollback

Tem

po

A transação T1 falha e deve voltar o valor de X ao seu valor antigo, porém T2 já leu o valor incorreto de X

Page 6: CONTROLE DISTRIBUÍDO DE CONCORRÊNCIA Dennis Williams e Wanderson de Lima

Três problemas de concorrência Análise inconsistente

T1 T2Soma=0Read(A)Soma=Soma+A

Read(X)X=X-NWrite(X)

Read(X)Soma=Soma+XRead(Y)Soma=Soma+Y

Read(Y)Y=Y+NWrite(Y)

Tem

po

T1 lê X depois de subtrair de N e lê Y depois de somar N, portanto efetuou uma análise inconsistente

Page 7: CONTROLE DISTRIBUÍDO DE CONCORRÊNCIA Dennis Williams e Wanderson de Lima

Teoria da Serializabilidade Um escalonamento S de n transações

T1,T2,..,TN é um ordenamento para as operações das transações sujeito a restrição de que, para cada transação Ti que participe em S, as operações de Ti em S devem aparecer na mesma ordem que ocorrem em em Ti. As operações de outras transações Tj podem se

intercalar com as operações de Ti em S Se, em um escalonamento S, as operações de

todas as transações não estão intercaladas, então o escalonamento é serial

Bernadette Farias Lóscio
slide com muito texto... dividir em dois
Page 8: CONTROLE DISTRIBUÍDO DE CONCORRÊNCIA Dennis Williams e Wanderson de Lima

Teoria da Serializabilidade Considere as três transações a seguir:

T1: T2: T3:Read(X) Write(X) Read(X)Write(X) Write(Y) Read(Y)Commit Read(Z) Read(Z)Commit Commit

O escalonamento S = {W2(X), W2(Y), R2(Z), C2, R1(X), W1(X), C1, R3(X), R3(Y), R3(Z), C3} é serial

Page 9: CONTROLE DISTRIBUÍDO DE CONCORRÊNCIA Dennis Williams e Wanderson de Lima

Teoria da Serializabilidade Duas operações Oij(X) e Okl(X) estão em

conflito se tem acesso a mesma entidade de banco de dados X e se uma das operações é uma operação de gravação

Dois escalonamentos S1 e S2 definidos sobre o mesmo conjunto de transações são ditos equivalentes em conflito se, para cada par de operações conflitantes Oij(X) e Okl(X) (i≠k) sempre que Oij <1 Okl então Oij <2 Okl

Bernadette Farias Lóscio
essa defiição está confusa!
Page 10: CONTROLE DISTRIBUÍDO DE CONCORRÊNCIA Dennis Williams e Wanderson de Lima

Teoria da Serializabilidade Considere os dois escalonamentos a

seguir:

S = {W2(X), W2(Y), R2(Z), C2, R1(X), W1(X), C1, R3(X), R3(Y), R3(Z), C3}

S’ = {W2(X), R1(X), W1(X), C1, R3(X), W2(Y), R3(Y), R2(Z), C2, R3(Z), C3}

S e S’ são equivalentes em conflito

Page 11: CONTROLE DISTRIBUÍDO DE CONCORRÊNCIA Dennis Williams e Wanderson de Lima

Teoria da Serializabilidade Um escalonamento é serializável se e

somente se ele é equivalente de conflitos com um escalonamento serial

A principal função de um controle de concorrência é gerar um escalonamento serializável para a execução de transações pendentes

Page 12: CONTROLE DISTRIBUÍDO DE CONCORRÊNCIA Dennis Williams e Wanderson de Lima

Teoria da Serializabilidade O escalonamento da execução da transação

em cada site é chamando escalonamento local Em BDD não replicados, se cada

escalonamento local for serializável, sua união (chamada escalonamento global) é serializável, desde que as ordens de serialização local sejam idênticas

Se o BDD for replicado é possível que os escalonamentos locais sejam serializáveis, mas a consistência mútua do BD pode estar comprometida

Page 13: CONTROLE DISTRIBUÍDO DE CONCORRÊNCIA Dennis Williams e Wanderson de Lima

Teoria da Serializabilidade Considere dois sites e um item de dado (X)

que é duplicado em ambos os sites. Além disso, considere as transações a seguir:

T1: T2:Read(X) Read(X)X = X + 5 X = X * 10Write(X) Write(X)Commit Commit

S1 = {R1(X), W1(X), C1, R2(X), W2(X), C2} S2 = {R2(X), W2(X), C2, R1(X), W1(X), C1}

Os dois escalonamentos são seriais. Se X=1, então S1 gera como saída 60 e S2 gera como saída 15 e a consistência mútua dos dois BDs é violada

Page 14: CONTROLE DISTRIBUÍDO DE CONCORRÊNCIA Dennis Williams e Wanderson de Lima

Teoria da Serializabilidade Os escalonamentos que podem manter a

consistência mútua são chamados serializáveis de cópia única e atendem às seguintes condições: Cada escalonamento local deve ser

serializável Duas operações conflitantes devem estar

na mesma ordem relativa em todos os escalonamentos locais em que elas aparecem juntas

Bernadette Farias Lóscio
achei a definição deste slide um pouco confusa... acho que vcs poderiam rever
Page 15: CONTROLE DISTRIBUÍDO DE CONCORRÊNCIA Dennis Williams e Wanderson de Lima

Taxonomia dos mecanismos de controle de concorrência

Page 16: CONTROLE DISTRIBUÍDO DE CONCORRÊNCIA Dennis Williams e Wanderson de Lima

Taxonomia dos mecanismos de controle de concorrência Algoritmos pessimistas sincronizam a

execução concorrente mais cedo em seu ciclo de execução

A visão pessimista é a de que muitas transações entrarão em conflito entre si

Algoritmos otimistas atrasam a sincronização das transações até seu término

A visão otimista é a de que não haverá um número muito de transações que entram em conflito entre si

Bernadette Farias Lóscio
muito grande???
Page 17: CONTROLE DISTRIBUÍDO DE CONCORRÊNCIA Dennis Williams e Wanderson de Lima

Bloqueios A ideia de bloqueio é que quando uma

transação necessita de uma garantia que um objeto no qual está interessada não mudará de algum modo enquanto a transação estiver ativa, então a transação adquire um bloqueio sobre o objeto

Page 18: CONTROLE DISTRIBUÍDO DE CONCORRÊNCIA Dennis Williams e Wanderson de Lima

Bloqueios Bloqueio de modo múltiplo

Tipos de bloqueio Bloqueio de leitura(rl – read lock) Bloqueio de gravação(wl – write lock)

Operações read_lock(x) write_lock(x) unlock(x)

Page 19: CONTROLE DISTRIBUÍDO DE CONCORRÊNCIA Dennis Williams e Wanderson de Lima

Bloqueios Regras:

Se uma transação A mantiver um bloqueio de gravação sobre uma unidade de bloqueio X, então uma solicitação de bloqueio de uma transação distinta B sobre X será negada

Se uma transação A mantiver um bloqueio de leitura sobre uma unidade de bloqueio X, então: Uma solicitação de uma transação distinta B de

bloqueio de gravação sobre X será negada Uma solicitação de uma transação distinta B de

bloqueio de leitura sobre X será concedida

Page 20: CONTROLE DISTRIBUÍDO DE CONCORRÊNCIA Dennis Williams e Wanderson de Lima

Bloqueios As regras podem ser resumidas por meio

de uma matriz de compatibilidade de tipos de bloqueio Dois modos de bloqueios são compatíveis

se duas transações que acessam o mesmo item de dados podem obter esses bloqueios sobre esse item de dados ao mesmo tempo

RLi(X) WLi(X)RLi(X) COMPATÍVEL NÃO

COMPATÍVELWLi(X) NÃO

COMPATÍVELNÃO COMPATÍVEL

Page 21: CONTROLE DISTRIBUÍDO DE CONCORRÊNCIA Dennis Williams e Wanderson de Lima

Bloqueios Protocolo de acesso a dados

Uma transação que deseja ler um item de bloqueio X tem de adquirir um bloqueio de leitura sobre X

Uma transação que deseja gravar um item de bloqueio X deve adquirir um bloqueio de gravação sobre X

Page 22: CONTROLE DISTRIBUÍDO DE CONCORRÊNCIA Dennis Williams e Wanderson de Lima

Bloqueios O SGBD deve se encarregar de gerenciar

os bloqueios. Assim, o usuário não precisa especificar quando e como os dados devem ser bloqueados

Em sistemas baseados em bloqueio, o escalonador é um gerenciador de bloqueio e ele se comunica com o gerenciador de transação para estabelecer ou não o bloqueio e passar a operação ao processador de dados

Page 23: CONTROLE DISTRIBUÍDO DE CONCORRÊNCIA Dennis Williams e Wanderson de Lima

Bloqueios Considere as duas transações e um

escalonamento gerado pelo bloqueio descrito anteriormente:T1:

T2:Read(X) Read(X)X=X+1 X=X*2Write(X)Write(X)Read(Y) Read(Y)Y=Y-1 Y=Y+2Write(Y)Write(Y)Commit CommitS = {wl1(X), R1(X), W1(X), lr1(X), wl2(X), R2(X), W2(X), lr2(X), wl2(Y), R2(Y), W2(Y), lr2(Y), C2, wl1(Y), R1(Y), W1(Y), lr1(Y), C1} S não é um escalonamento serializável

Se X=50 e Y=20, então S gera como saída X=102 e Y=38 se T1 for executada antes de T2 e X=101 e Y=39 se T2 for executada antes de T1

Page 24: CONTROLE DISTRIBUÍDO DE CONCORRÊNCIA Dennis Williams e Wanderson de Lima

Bloqueios Como as operações de bloqueio e

liberação não são coordenadas, ele pode gerar escalonamentos não serializáveis

Para garantir a serializabilidade é necessário usar o bloqueio de duas fases ou 2PL(two-phase locking) A regra do bloqueio de duas fases é que

nenhum bloqueio deve ser adquirido pela transação após ela liberar um de seus bloqueios

Page 25: CONTROLE DISTRIBUÍDO DE CONCORRÊNCIA Dennis Williams e Wanderson de Lima

Bloqueios As duas fases do 2PL são:

Fase de crescimento ou expansão Fase de contração ou encolhimento

Pode sofrer deadlock ou rollback em cascata

Page 26: CONTROLE DISTRIBUÍDO DE CONCORRÊNCIA Dennis Williams e Wanderson de Lima

Bloqueios Bloqueio de duas fases com rollback em

cascata

Se T5 for abortada depois do passo read(A) da transação T7 ocasiona o rollback em cascata de T6 e T7

Page 27: CONTROLE DISTRIBUÍDO DE CONCORRÊNCIA Dennis Williams e Wanderson de Lima

Bloqueios Bloqueio de duas fases sofrendo

deadlock

T3 já mantém um bloqueio de gravação sobre B e T4 solicita um bloqueio de leitura sobre B. Analogamente, T4 já mantém um um bloqueio de leitura sobre B e T3 está solicitando um bloqueio de gravação sobre A

Page 28: CONTROLE DISTRIBUÍDO DE CONCORRÊNCIA Dennis Williams e Wanderson de Lima

Bloqueios Bloqueio de duas fases estrito

Libera todos os bloqueios juntos quando a transação termina(consolida ou aborta)

Evita rollbacks em cascata, mas pode sofrer deadlock

Page 29: CONTROLE DISTRIBUÍDO DE CONCORRÊNCIA Dennis Williams e Wanderson de Lima

Bloqueios Refinamento no bloqueio de duas fases

Conversão de bloqueio de leitura para escrita Chamado de promoção ou upgrade Só pode ocorrer durante a fase de crescimento

Conversão de bloqueio de escrita para leitura Chamado de rebaixamento ou downgrade Só pode ocorrer durante a fase de contração

Page 30: CONTROLE DISTRIBUÍDO DE CONCORRÊNCIA Dennis Williams e Wanderson de Lima

Bloqueios Considere o escalonamento abaixo:

S = {W1(X), R2(X), R3(Y), W1(Y)} S não é permitido pelo 2PL, pois T1

precisaria obter um bloqueio de gravação sobre Y depois de liberar seu bloqueio de gravação sobre X

Portanto, o 2PL ele não permite obter todos os escalonamentos que são serializáveis de conflito

Page 31: CONTROLE DISTRIBUÍDO DE CONCORRÊNCIA Dennis Williams e Wanderson de Lima

Bloqueios 2PL centralizado

Um dos sites é designado como site primário é ele responsável pelo armazenamento das tabelas de bloqueio para todo o banco de dados, assim como concessão de bloqueios as transações

Os gerenciadores de transação dos outros sites se comunicam com o gerenciamento de bloqueio centralizado

Gargalo em torno do site central, menor confiabilidade devido a falha no site central

Page 32: CONTROLE DISTRIBUÍDO DE CONCORRÊNCIA Dennis Williams e Wanderson de Lima

Bloqueios 2PL centralizado

Page 33: CONTROLE DISTRIBUÍDO DE CONCORRÊNCIA Dennis Williams e Wanderson de Lima

Bloqueios 2PL de cópia primária

Uma das cópias(se houver várias) é escolhida como cópia primária e essa cópia tem de ser bloqueada para propósito de acessar essa unidade específica

Por exemplo, se a unidade de bloqueio X é replicada nos sites 1,2,3 e 1 é o site primário para X, a transação deve obter bloqueio em 1 para poder acessar uma cópia de x

Se x não tiver cópia, então a responsabilidade pelo gerenciamento de bloqueio fica entre diversos sites

Em relação ao 2PL centralizado, a única mudança é que os locais de cópias primárias têm de ser definidas para cada item de dados, antes de se enviar uma solicitação de bloqueio ou desbloqueio ao gerenciador de bloqueio

Page 34: CONTROLE DISTRIBUÍDO DE CONCORRÊNCIA Dennis Williams e Wanderson de Lima

Bloqueios 2PL distribuído

A tarefa de gerenciamento de bloqueio é compartilhada por todos os sites de uma rede

Cada escalonador local é responsável pelas unidades de bloqueio locais a esse site

Em relação ao 2PL centralizado, a primeira mudança é que as solicitações de bloqueios são solicitadas aos gerenciadores de bloqueio de todos os sites participantes

A segunda mudança é que as operações são repassadas pelos gerenciadores de bloqueio participantes

Page 35: CONTROLE DISTRIBUÍDO DE CONCORRÊNCIA Dennis Williams e Wanderson de Lima

Bloqueios 2PL distribuído

Page 36: CONTROLE DISTRIBUÍDO DE CONCORRÊNCIA Dennis Williams e Wanderson de Lima

Algoritmos Baseados em TO Algoritmos que tentam não manter a

serializabilidade baseada em exclusão mútua.

Atribuição de um timbre de hora (timestamp) ts(Ti) a cada transação Ti.

Timbre de Hora: Identificador de cada transação de forma

exclusiva. Propriedades: exclusividade e caráter

monotônico.

Bernadette Farias Lóscio
acrescentei o termo timestamp porque ele é mais conhecido do que timbro de horas... eu sugiro que vcs troquem timbre de horas por timestamp
Bernadette Farias Lóscio
vcs devem dizer o que significa TO
Page 37: CONTROLE DISTRIBUÍDO DE CONCORRÊNCIA Dennis Williams e Wanderson de Lima

Algoritmos Baseados em TO Atribuição de timbres de hora:

Uso de contadores globais. Uso de contadores locais.

Identificação por: <contador local, identificador de site>.

Clock do sistema. Regra de TO:

“Dada duas operações conflitantes Oij e Okl, que pertencem respectivamente às transações Ti e Tk, Oij só será executada antes de Okl se e somente se ts(Ti) < ts(Tk)”.

Page 38: CONTROLE DISTRIBUÍDO DE CONCORRÊNCIA Dennis Williams e Wanderson de Lima

Algoritmos Baseados em TO Um escalonador que impõe a regra de TO

verifica cada nova operação que chega. Pode existir uma situação em que as

operações chegam ao escalonador numa sequência desordenada.

Atribuir a cada item de dados dois timbres de hora: Leitura (rts(x)) Gravação (wts(x))

Page 39: CONTROLE DISTRIBUÍDO DE CONCORRÊNCIA Dennis Williams e Wanderson de Lima

Algoritmos Baseados em TO Algoritmo Básico de TO:

O gerenciador de transações fica no aguardo Se aparece uma operação do BD, verifica se:

Está no início de uma transação Atribui um timbre de hora à transação.

É leitura/escrita Envia a operação e seu timbre de hora ao escalonador do site.

É abort/commit Envia a operação ao escalonador.

Se a operação foi rejeitada pelo escalonador: Aborta a transação, reinicia e atribui um novo timbre de hora a

ele. Se a operação foi realizada com sucesso, informar ao

usuário.

Page 40: CONTROLE DISTRIBUÍDO DE CONCORRÊNCIA Dennis Williams e Wanderson de Lima

Algoritmos Baseados em TO Algoritmo do Escalonador:

O escalonador fica no aguardo Armazena os valores de rts(x) e wts(x) iniciais. Se aparece uma operação, verifica se:

É leitura, verifica se ts(T) > rts(x): Envia ao processador de dados e atribui rts(x) <= ts(T).

É escrita, verifica se ts(T) > wts(x) e se ts(T) > wts(x): Envia ao processador de dados. Atribui rts(x) <= ts(T) e wts(x) <= ts(T).

É commit: Envia ao processador de dados.

É abort: Identifica os itens de dados acessados por T. Redefine os valores inicias de rts(x) e wts(x). Envia ao processador de dados.

Page 41: CONTROLE DISTRIBUÍDO DE CONCORRÊNCIA Dennis Williams e Wanderson de Lima

Algoritmos Baseados em TO O escalonador garante que a transação

pode ser executada em outra oportunidade, caso tenha sido rejeitada anteriormente.

Isso pode ocorrer muitas vezes. Podem ocorrer em sites que estão

desativados há muito tempo. Pode-se usar contadores sincronizados

ou clocks como alternativas.

Page 42: CONTROLE DISTRIBUÍDO DE CONCORRÊNCIA Dennis Williams e Wanderson de Lima

Algoritmos Baseados em TO Algoritmos de TO Conservadores:

Usados para reduzir essas probabilidades de reinicializações.

Atrasam as operações até que nenhuma das operações do escalonador tenham um timbre de hora menor do que o da transação.

Abordagem: Cada escalonador possui uma fila para cada

gerenciador de transações do sistema. O escalonador de um site i pode armazenar

operações que recebe do gerenciador de transações do site j.

Page 43: CONTROLE DISTRIBUÍDO DE CONCORRÊNCIA Dennis Williams e Wanderson de Lima

Algoritmos Baseados em TO Algoritmos de TO Conservadores:

Page 44: CONTROLE DISTRIBUÍDO DE CONCORRÊNCIA Dennis Williams e Wanderson de Lima

Algoritmos Baseados em TO Algoritmos de TO Conservadores:

Esse esquema reduz o número de reinicializações, mas não garante a eliminação delas.

Existem algoritmos extremamente conservadores que só admitem uma operação no processador de dados se em todas as filas de cada escalonador houvesse ao menos uma operação.

Page 45: CONTROLE DISTRIBUÍDO DE CONCORRÊNCIA Dennis Williams e Wanderson de Lima

Algoritmos Baseados em TO Algoritmo de TO de várias versões:

Cada operação de gravação cria uma versão do item de dados.

Cada versão do item de dados é marcada pelo timbre de hora da transação que a cria.

Ele processa cada transação em um estado do banco de dados.

Page 46: CONTROLE DISTRIBUÍDO DE CONCORRÊNCIA Dennis Williams e Wanderson de Lima

Algoritmos Otimistas Algoritmos pessimistas:

Algoritmos otimistas:

Page 47: CONTROLE DISTRIBUÍDO DE CONCORRÊNCIA Dennis Williams e Wanderson de Lima

Algoritmos Otimistas Nos algoritmos otimistas, os timbres de

hora estão associados apenas as transações e não a itens de dados.

Os timbres de hora são atribuídos no início da validação.

O algoritmo que será discutido foi proposto em [Kung e Robinson, 1981] e estendido para SGBD's distribuídos [Ceri e Owicki, 1982].

Page 48: CONTROLE DISTRIBUÍDO DE CONCORRÊNCIA Dennis Williams e Wanderson de Lima

Algoritmos Otimistas Cada transação é subdividida em várias subtransações.

Seja Tij uma subtransação de Ti executada no site j. A validação local de Tij é feita de acordo com as regras a

seguir, que são mutuamente exclusivas: Se todas as transações Tk tal que ts(Tk) < ts(Tij) tiverem

completado a fase de gravação antes de Tij iniciar sua fase leitura: A validação terá sucesso porque estarão em ordem sequencial.

Se houver qualquer transação Tk tal que ts(Tk) < ts(Tij) que complete a fase de gravação antes de Tij concluir sua fase leitura: A validação terá sucesso se ws(Tk)^rs(Tij) = 0.

Se houver qualquer transação Tk tal que ts(Tk) < ts(Tij) que complete a fase de leitura antes de Tij concluir sua fase leitura: A validação terá sucesso se ws(Tk)^rs(Tij) = 0 e ws(Tk)^ws(Tij) = 0

Page 49: CONTROLE DISTRIBUÍDO DE CONCORRÊNCIA Dennis Williams e Wanderson de Lima

Algoritmos Otimistas

Page 50: CONTROLE DISTRIBUÍDO DE CONCORRÊNCIA Dennis Williams e Wanderson de Lima

Algoritmos Otimistas É preciso assegurar a consistência

global, para garantir a regra de consistência mútua.

Não há um algoritmo otimista para isso. A transação é validada em termos globais

se todas as transações a precedem numa ordem terminam.

Bernadette Farias Lóscio
nao deveria ser "que a precedem"?
Page 51: CONTROLE DISTRIBUÍDO DE CONCORRÊNCIA Dennis Williams e Wanderson de Lima

Algoritmos Otimistas Vantagens:

Quando os conflitos são raros, o algoritmo otimista comporta-se melhor que o algoritmo de bloqueio.

Possibilitam alto nível de concorrência. Desvantagens:

Alto custo de armazenamento. Uma transação pode falhar repetidamente

na validação.

Page 52: CONTROLE DISTRIBUÍDO DE CONCORRÊNCIA Dennis Williams e Wanderson de Lima

Gerenciamento de Impasses Ocorrem em situações de exclusão mútua

ao acesso de recursos compartilhados. E as transações podem esperar em bloqueios.

É uma situação permanente. WFG (Wait for Graph).

Grafo orientado que representa o relacionamento entre as transações.

Os nós desse grafo representam as relações concorrentes do sistema.

Page 53: CONTROLE DISTRIBUÍDO DE CONCORRÊNCIA Dennis Williams e Wanderson de Lima

Gerenciamento de Impasses Formação de um WFG é mais complicada

em sistemas distribuídos. LWFG e GWFG.

Page 54: CONTROLE DISTRIBUÍDO DE CONCORRÊNCIA Dennis Williams e Wanderson de Lima

Gerenciamento de Impasses Métodos para tratamento de Impasses:

Prevenção Anulação Detecção e Resolução de Impasses

Page 55: CONTROLE DISTRIBUÍDO DE CONCORRÊNCIA Dennis Williams e Wanderson de Lima

Gerenciamento de Impasses Prevenção:

O gerenciador de transações verifica da possibilidade de um impasse por uma transação.

Para executar essa verificação é preciso que os itens de dados sejam declarados previamente.

Vantagens: Redução de sobrecarga na avaliação de uma transação. Útil para sistemas que não desfazem processos.

Desvantagens: É difícil saber com exatidão quais itens de dados serão

acessados por uma transação.

Page 56: CONTROLE DISTRIBUÍDO DE CONCORRÊNCIA Dennis Williams e Wanderson de Lima

Gerenciamento de Impasses Anulação:

São métodos mais adequados que a prevenção. Envolve técnicas de controle de concorrência ou

exigem que os escalonadores detectem a possibilidade do impasse.

A forma mais simples de resolver impasses: ordenar os recursos e insistir que cada processo solicite acesso aos recursos nessa ordem.

Unidades de bloqueio são ordenadas. Pode haver ordenação local ou global.

Page 57: CONTROLE DISTRIBUÍDO DE CONCORRÊNCIA Dennis Williams e Wanderson de Lima

Gerenciamento de Impasses Anulação:

Uma abordagem é utilizar timbres de hora. Se a transação Ti é negada, então o

gerenciador de bloqueio não força Ti a esperar. Mas aplica um teste de prevenção na transação que solicita (Ti) e na transação que mantém bloqueio (Tj). Se aprovada Ti, espera por Tj, senão será

abortada.

Page 58: CONTROLE DISTRIBUÍDO DE CONCORRÊNCIA Dennis Williams e Wanderson de Lima

Gerenciamento de Impasses Detecção e Resolução de Impasses:

É feita pela seleção de transações que serão abortadas para romper os ciclos GWFG.

É preciso avaliar alguns fatores: A quantidade de esforço investido na transação. O custo de abortar uma transação. A quantidade de esforço necessária para

concluir a execução da transação. O número de ciclos que contém a transação.

Page 59: CONTROLE DISTRIBUÍDO DE CONCORRÊNCIA Dennis Williams e Wanderson de Lima

Gerenciamento de Impasses Detecção e Resolução de Impasses:

Detecção Centralizada: Um site é o responsável por detectar os impasses

para todo o sistema. Cada site envia seu LWFG ao detector de impasses,

que forma os GWFG e procura os ciclos nesse grafo. Comunicação x atraso.

Detecção Hierárquica: Os sites são dispostos em níveis. Cada site envia seu LWFG ao nível superior, até o nó

raiz.

Page 60: CONTROLE DISTRIBUÍDO DE CONCORRÊNCIA Dennis Williams e Wanderson de Lima

Gerenciamento de Impasses Detecção e Resolução de Impasses:

Detecção Distribuída: Cada site será responsável por detectar os impasses.

No entanto, cada um deles comunica os WFG locais. Como cada site recebe os ciclos de impasses

potenciais de outros sites, as arestas responsáveis são adicionadas aos WFG locais.

As arestas representam que as transações locais estão esperando por transações remotas e vice-versa.

Ciclos envolvendo as arestas externas deverão ser comunicadas aos outros detectores de impasses.

Page 61: CONTROLE DISTRIBUÍDO DE CONCORRÊNCIA Dennis Williams e Wanderson de Lima

Gerenciamento de Impasses Detecção e Resolução de Impasses:

Page 62: CONTROLE DISTRIBUÍDO DE CONCORRÊNCIA Dennis Williams e Wanderson de Lima

Controle de Concorrência Relaxado Algoritmos que não usam da

serializabilidade como critério de correção. Escalonamento não serializável Transações Aninhadas

Page 63: CONTROLE DISTRIBUÍDO DE CONCORRÊNCIA Dennis Williams e Wanderson de Lima

Controle de Concorrência Relaxado Escalonamento não serializável:

Utilizado em casos onde o escalonamento é restrito para certas aplicações.

Baseia-se no uso da observação intuitiva. Atomicidade Semântica Relativa:

Agrupar transações em classes, baseado em suas etapas.

As transações de mesma classe são compatíveis e podem ser intercaladas.

Page 64: CONTROLE DISTRIBUÍDO DE CONCORRÊNCIA Dennis Williams e Wanderson de Lima

Controle de Concorrência Relaxado Transações Aninhadas:

Fechadas: O controle de concorrência de transações

aninhadas é muito similar a da baseada em bloqueios.

As transações aninhadas "relaxam" a durabilidade e o isolamento.

Abertas: Os bloqueios mantidos por uma subtransação

são liberados logo que ela se consolida ou aborta.

Page 65: CONTROLE DISTRIBUÍDO DE CONCORRÊNCIA Dennis Williams e Wanderson de Lima

Conclusão O mecanismo distribuído do controle de

concorrência de um SGBD distribuído deve garantir a consistência do banco.

Os algoritmos de controle de concorrência visam tornar o SGBD distribuído em uma ferramenta confiável em um ambiente não confiável.

No geral, os algoritmos de controle de concorrência são de difícil implementação na prática.

O estudo de desempenho dos algoritmos estudados é algo que carece de maiores aprofundamentos.