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

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

Concorrência - 1 Bloqueios partilhados m Elaborar o modelo para aumentar a concorrência m distinguir transacções que não alteram a BD m bloqueio partilhado.

Apresentações semelhantes


Apresentação em tema: "Concorrência - 1 Bloqueios partilhados m Elaborar o modelo para aumentar a concorrência m distinguir transacções que não alteram a BD m bloqueio partilhado."— Transcrição da apresentação:

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

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

3 Concorrência - 3 Exemplo q Bloqueio em duas fases garantiria escalonamento serializável T 1 T 2 T 3 T 4 WLOCK A RLOCK B UNLOCK A RLOCK A UNLOCK B WLOCK B RLOCK A UNLOCK B WLOCK B UNLOCK A WLOCK A UNLOCK B RLOCK B UNLOCK A UNLOCK B T3T3 T2T2 T1T1 T4T4 Não serializável

4 Concorrência - 4 Recuperação de falhas m 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 m falhas que envolvam destruição de memória permanente podem exigir recurso ao arquivo de dados (backup) m 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 Concorrência - 5 Cometimento m Transacção q activa - ainda em processamento q completa - já não é possível abortar pelas razões (1) a (3) q terminada m Ponto de cometimento q momento em que todos os bloqueios estão obtidos e todo o processamento está efectuado q esse momento é marcado por uma instrução COMMIT m Dados sujos q são dados escritos na BD antes de a transacção ter cometido q outra transacção que leia tais dados arrisca-se a ficar com valores inconsistentes, no caso de a primeira abortar

6 Concorrência - 6 Leitura de dados sujos m Ocorrendo uma falha no passo (14) é preciso 1 - remover o bloqueio em B 2 - repor o valor de A anterior ao início de T 1 (jornal) 3 - (uma vez que o valor de A lido por T 2 está errado) desfazer todos os efeitos de T 2 e voltar a corre-la 4 - se alguma transacção T 3 tiver lido algum valor alterado por T 2, também terá que ser desfeita, etc. T 1 T 2 (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

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

8 Concorrência - 8 Aspectos de desempenho m 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 m Para melhorar (1) q minimizar o overhead do escalonador (bloqueios, sequenciação de transacções, detecção de encravamentos) q minimizar o tempo gasto em transacções que acabam por abortar e a eliminar bloqueios que sobraram q 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 Concorrência - 9 Início da transacção m Já se viu como disciplinar o fim das transacções q ponto de cometimento q e o início? Depende dos casos. m Protocolo agressivo q escalonador simples e rápido mesmo que acabe por cair numa situação em que deva abortar q espera-se que o tempo a resolver encravamentos seja menor que o que seria gasto a gerir os bloqueios m Protocolo conservador q evita-se fazer a primeira parte da transacção se não houver garantias de ela se possa completar

10 Concorrência - 10 Protocolo conservador m 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 q problema: bloqueio activo (pode haver sempre uma transacção a bloquear um dos itens requeridos em cada momento) q 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 q 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 Concorrência - 11 Protocolo agressivo m Transacção pede bloqueio num item mesmo antes de o ler ou escrever q primeiro RLOCK e depois, antes de escrever, WLOCK q continua a desbloquear só depois de todos os bloqueios (2 fases) q continua a desbloquear só depois de estar tudo escrito na BD (2 fases estrito) q sujeito a encravamento por pedido cruzado de dois itens q 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 m Como escolher? q 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 "Concorrência - 1 Bloqueios partilhados m Elaborar o modelo para aumentar a concorrência m distinguir transacções que não alteram a BD m bloqueio partilhado."

Apresentações semelhantes


Anúncios Google