A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Bloqueios partilhados

Apresentações semelhantes


Apresentação em tema: "Bloqueios partilhados"— Transcrição da apresentação:

1 Bloqueios partilhados
Elaborar o modelo para aumentar a concorrência distinguir transacções que não alteram a BD bloqueio partilhado (ou de leitura) RLOCK A pedido por transacções que só pretendam ler o item impede outra transacção de escrever pode haver mais transacções com RLOCK em A bloqueio exclusivo (ou de escrita) WLOCK A pedido por transacções que pretendam escrever o item idêntico ao do modelo simples: mais nenhum bloqueio é aceite transacção com RLOCK pode pedir um WLOCK UNLOCK desbloqueia ambos

2 Novo teste de seriabilidade
Escalonamentos equivalentes produzem o mesmo valor para cada item cada bloqueio partilhado ocorre em ambos os escalonamentos em momentos em que o item tem o mesmo valor Teste de seriabilidade com bloqueios partilhados criar um grafo dirigido cujos nós são as transacções para cada passo Tk: RLOCK Am ou WLOCK Am, se existir a seguir um passo Tl: WLOCK Am, com k  l, desenhar um arco de Tk para Tl. para cada passo Tk: WLOCK Am, se a seguir a Tk desbloquear Am e antes de outro WLOCK Am existir um passo Tl: RLOCK Am, com k  l, desenhar um arco de Tk para Tl. escalonamento serializável se não houver ciclos no grafo ordenação topológica é um escalonamento série equivalente

3 Exemplo T1 T2 T4 T3 Não serializável
WLOCK A RLOCK B UNLOCK A RLOCK A UNLOCK B WLOCK B T1 T2 T4 T3 Não serializável Bloqueio em duas fases garantiria escalonamento serializável

4 Recuperação de falhas Razões para ocorrerem falhas
1 falha na transacção (interrupção do utilizador; divisão por zero; tentativa de acesso a dados não autorizados) 2 deadlock: o escalonador aborta a transacção para libertar outras 3 transacção abortada para garantir a seriabilidade 4 erro de hardware ou de software provoca falha no SGBD falhas que envolvam destruição de memória permanente podem exigir recurso ao arquivo de dados (backup) pretende-se que o SGBD seja resistente aos outros tipos de falhas (quer nos casos de falha de só uma transacção, quer nos de falha do sistema)

5 Cometimento Transacção Ponto de cometimento Dados sujos
FEUP/LEIC TSGBD Cometimento Transacção activa - ainda em processamento completa - já não é possível abortar pelas razões (1) a (3) terminada Ponto de cometimento momento em que todos os bloqueios estão obtidos e todo o processamento está efectuado esse momento é marcado por uma instrução COMMIT Dados sujos são dados escritos na BD antes de a transacção ter cometido outra transacção que leia tais dados arrisca-se a ficar com valores inconsistentes, no caso de a primeira abortar Gabriel David

6 Leitura de dados sujos Ocorrendo uma falha no passo (14) é preciso
T1 T2 (1) LOCK A (2) READ A (3) A:= A-1 (4) WRITE A (5) LOCK B (6) UNLOCK A (7) LOCK A (8) READ A (9) A:= A*2 (10) READ B (11) WRITE A (12) COMMIT (13) UNLOCK A (14) B:=B/A Ocorrendo uma falha no passo (14) é preciso 1 - remover o bloqueio em B 2 - repor o valor de A anterior ao início de T1 (jornal) 3 - (uma vez que o valor de A lido por T2 está errado) desfazer todos os efeitos de T2 e voltar a corre-la 4 - se alguma transacção T3 tiver lido algum valor alterado por T2, também terá que ser desfeita, etc.

7 Bloqueio em duas fases estrito
O fenómeno de ter que desfazer (rollback) várias transacções devido à falha de uma designa-se desfazer em cascata protocolo de bloqueio em duas fases estrito uma transacção não pode escrever na BD até atingir o ponto de cometimento não se liberta nenhum bloqueio até se acabar de escrever na BD a primeira condição é necessária se não se conseguir repor valores antigos de itens em caso de falha este protocolo evita a necessidade de suportar desfazer em cascata

8 Aspectos de desempenho
Compromisso entre (1) obter a melhor taxa de execução (throughput) - número de transacções terminadas por unidade de tempo, para uma determinada mistura de transacções (2) conseguir que cada transacção individual termine sem excessivo atraso Para melhorar (1) minimizar o overhead do escalonador (bloqueios, sequenciação de transacções, detecção de encravamentos) minimizar o tempo gasto em transacções que acabam por abortar e a eliminar bloqueios que sobraram minimizar o tempo gasto a repor a BD em caso de desfazer em cascata (se o protocolo não for de duas fases estrito)

9 Início da transacção Já se viu como disciplinar o fim das transacções
ponto de cometimento e o início? Depende dos casos. Protocolo agressivo escalonador simples e rápido mesmo que acabe por cair numa situação em que deva abortar espera-se que o tempo a resolver encravamentos seja menor que o que seria gasto a gerir os bloqueios Protocolo conservador evita-se fazer a primeira parte da transacção se não houver garantias de ela se possa completar

10 Protocolo conservador
Transacção começa por pedir, no início, todos os bloqueios de que vai necessitar e ou são todos concedidos ou nenhum e vai para fila de espera problema: bloqueio activo (pode haver sempre uma transacção a bloquear um dos itens requeridos em cada momento) exemplo do cálculo do saldo global de uma agência bancária pode haver sempre um movimento a ser efectuado política FIFO pode “pendurar” transacções pequenas até a grande poder avançar é necessário ver se cada transacção está a pedir recursos que estejam bloqueados ou que virão a ser bloqueados por transacções mais antigas na fila de espera pedir os bloqueios a priori pode obrigar a bloquear demais bloquear toda uma tabela em vez de apenas os blocos que ao longo do processamento do índice se mostrarem relevantes

11 Protocolo agressivo Transacção pede bloqueio num item mesmo antes de o ler ou escrever primeiro RLOCK e depois, antes de escrever, WLOCK continua a desbloquear só depois de todos os bloqueios (2 fases) continua a desbloquear só depois de estar tudo escrito na BD (2 fases estrito) sujeito a encravamento por pedido cruzado de dois itens novo tipo de encravamento: duas transacções que detenham RLOCK no mesmo item e peçam ambas a respectiva promoção a bloqueios de escrita Como escolher? depende do padrão de bloqueios típico probabilidade de bloqueio simultâneo do mesmo item baixa  agressivo ocorrência frequente de bloqueios não disponíveis  conservador


Carregar ppt "Bloqueios partilhados"

Apresentações semelhantes


Anúncios Google