• Nenhum resultado encontrado

Aula5

N/A
N/A
Protected

Academic year: 2021

Share "Aula5"

Copied!
30
0
0

Texto

(1)

Banco de Dados Distribuído

Rogério Morais Rocha

Bacharel em Ciência da Computação

Pós-Graduação Gestão Estratégica da Informação

e-mail : moraisrocha@gmail.com

(2)

• Transações

– A transação é uma ação executada sobre um banco de dados que gera uma nova versão do banco de dados, porém esta ação deve ser atômica e confiável a fim de manter a consistência dos dados.

– Uma transação em um banco de dados encontra

algumas dificuldades para a sua execução, tais como:

transações concorrentes e ocorrência de falhas durante a sua execução.

– Dentro de uma transação de banco de dados podem ocorrer várias ações como as seguintes: leitura de

dados, gravação de dados e computação sobre os dados.

(3)

• Transações

– Uma transação para garantir sua eficiência necessita das seguintes características (ACID):

• Atomicidade: Todas as operações são executadas ou nenhuma;

• Consistência: uma transação sai de um estado consistente para outro;

• Isolamento: uma transação não enxerga outra concorrente;

• Durabilidade: uma vez a transação completada os seus dados são persistidos no banco de dados e não podem mais ser apagados.

(4)

• Transações

– Uma transação distribuída deve respeitar as propriedades ACID, porém em um ambiente distribuído.

– As transações podem ser Locais ou Globais, as

transações locais são aquelas que mantém acesso e

atualizam apenas a base de dados local, já as

transações globais mantêm acesso e atualizam

diversas bases de dados locais e remotas.

(5)

• Transações

– Para processar uma transação, cada nó do sistema contém dois subsistemas:

• o Gerenciador de Transações é responsável pelo gerenciamento de execuções das transações (ou subtransações), que acessam dados armazenados em um nó local, além de garantir as propriedades ACID.

• e o Coordenador de Transações coordena a execução de várias transações (locais e globais) iniciados naquele nó e deve garantir a atomicidade da transação através do protocolo de efetivação.

(6)

• Transações

– Transações distribuídas podem ocorrer devido a

diversos fatores, entre os quais incluem [DEMP, 1997]: • Itens de informações pertencentes a uma operação

podem estar distribuídas em diversos servidores (nós);

• Uma transação pode necessitar de acesso a mais de um recurso e talvez, conseqüentemente, mais de um servidor;

• Um servidor provendo um serviço pode ter que contactar outro servidor para poder prover este mesmo serviço;

(7)

• Transações – Protocolo Two-Phase Commit

– O protocolo Two-phase Commit (2PC) é um protocolo muito simples que assegura a consolidação atômica de transações distribuídas. Uma transação distribuída necessita de um commit especial.

– Durante uma transação, o gerenciador de uma transação não pode simplesmente aguardar a

resposta de commit de um dos sites, pois, durante o

commit de um deles, pode haver um erro, e se os

outros já deram commit, não será possível dar

rollback na transação. Por isso o 2PC divide esta tarefa

em duas fases [MIT, 1995]

(8)

• Transações – Protocolo Two-Phase Commit – Fase de preparação

– Na fase de preparação o gerenciador de transação envia uma mensagem “prepare” a todos os sites participantes e entra no estado de espera. Então os gerenciadores locais de cada site participante da transação verificam se é possível consolidar a transação.

– Depois de receber uma resposta de todos os

participantes, o gerenciador decide entre consolidar ou abortar a transação (Fase Commit). Esta resposta uma vez enviada não poderá ser alterada.

(9)

• Transações – Protocolo Two-Phase Commit – Fase Commit

– Para o gerenciador chegar a uma decisão de término global de uma transação,duas regras governam essa decisão; juntas elas formam a regra de consolidação

global:

– Se até mesmo um participante votar por abortar a transação, o gerenciador tem de chegar a uma

decisão de abortar global.

– Se todos os participantes votarem por consolidar a transação, o gerenciador tem de chegar a uma

decisão de consolidação global.

(10)

• Sucesso na Two-Phase Commit

(11)

• Insucesso na Two-Phase Commit

(12)

• Algoritmo Coordenador Two-Phase Commit

(13)

• Algoritmo Participante Two-Phase Commit

(14)

• Problemas – Protocolo Two-Phase Commit

– Um dos problemas do consenso é garantir que a transação seja completada, pois pode ocorrer uma falha de um participante e a transação ficar em um estado de incerteza, porque os participantes não

conseguem alterar o seu voto e abortar a transação. – Um dos grandes problemas nos protocolos de commit

atômicos é o tempo em que as transações ficam nos estados de incerteza porque em alguns casos pode ocorrer que todos tenham aceitado realizar o commit e ocorrer uma falha de algum participante e a

(15)

• Problemas – Protocolo Two-Phase Commit

– Por exemplo, pode ocorrer uma falha do coordenador que vai ficar por tempo indeterminado fora, e neste período os dados da transação ficam bloqueados. Nesta situação, os participantes somente irão

completar a transação após a recuperação do coordenador.

(16)

• Transações – Protocolo Three-Phase Commit

– Este protocolo possui um conjunto de estados locais da transação (tr). Antes de iniciar o protocolo de

commit a transação encontra-se no estado de

execução (E) e logo após sua finalização, ele pode estar no estado de commit ( C ) ou de aborto (A). O processador entra no estado de incerteza (U) logo após votar sim para a operação de commit e o

próximo estado que ele vai entrar é o de committable (Ce) . Neste último estado é possível abortar a

transação, porém esta decisão não é local, mas um consenso entre os participantes. No caso de abortar

(17)

• Transações – Protocolo Three-Phase Commit

– Este protocolo utiliza estes estados para gravar o log da transação que pode ser utilizado em um processo de recuperação. Caso não ocorra falhas o 3PC

comporta-se como 2PC, porém incrementado com uma fase.

(18)

• Transição de estados de 3PC

(19)

• Algoritmo Coordenador Three-Phase Commit

(20)

• Algoritmo Participante Two-Phase Commit

(21)

• Conclusão

– Os algoritmos 2PC e 3PC são algoritmos planejados para suportar falhas de participantes e garantir a confiabilidade, atomicidade e durabilidade das transações.

– O comportamento do algoritmo 3PC, no caso de não ocorrer falhas, é idêntico ao algoritmo 2PC, porém com uma fase incrementada.

– O 3PC é um algoritmo não bloqueante, ou seja, permite que uma transação seja finalizada sem a necessidade de realizar bloqueios. No caso de falha de um participante, ele deve se recuperar sozinho, pois o protocolo vai guiar a transação a um estado de finalização independente dele.

– O 3PC tem a vantagem de não ser bloqueante, porém troca

(22)

• Controle Distribuído de Concorrência

– O mecanismo de controle de concorrência de um SGBD distribuído assegura que a consistência do

banco de dados seja mantida, assim se as transações são consistentes internamente, a maneira mais

simples de alcançar esse objetivo é executar cada

transação sozinha, mas claramente esta alternativa só tem interesse teórico e não pode ser implementada em sistema prático, pois minimiza a concorrência do sistema, em que o nível de concorrência talvez seja o parâmetro mais importante em sistemas distribuídos [BALTER, 1982].

(23)

• Controle Distribuído de Concorrência

– Há diversos modos de classificar as abordagens de controle da concorrência.

– Alguns algoritmos propostos exigem um banco de

dados totalmente replicado, enquanto outros operam sobre banco de dados parcialmente replicados.

– A análise dos algoritmos resulta em duas classes:

• Os que se baseiam em acesso mutuamente exclusivos a dados compartilhados (bloqueio);

• Os que ordenam a execução das transações de acordo com um conjunto de regras (protocolos).

(24)

• Controle Distribuído de Concorrência

– Os algoritmos são usados com dois pontos de vista:

• Visão pessimista – muitas transações entraram em conflitos entre si.

• Visão otimista – não haverá um número muito grande de transações que entrarão em conflito entre si.

– Na abordagem baseada em bloqueios, a sincronização das transações é alcançada empregando-se bloqueio físicos ou lógicos em alguma porção ou grânulo do banco de dados.

(25)

• Classificação de algoritmos de controle a concorrência

(26)

• Controle Distribuído de Concorrência

– Essa classe é subdividida, de acordo com o local em que as atividades de gerenciamento de bloqueios são executadas.

• Bloqueio centralizado, um dos sites da rede é designado como o site primário no qual são armazenadas as

tabelas de bloqueio para o banco de dados inteiro e recebe a responsabilidade de conceder bloqueios a transações.

• Bloqueio da cópia primária, uma das cópias (se houver várias) de cada unidade de bloqueio é designada como a cópia primária; essa é a cópia que tem que ser

bloqueada para o propósito de acessar essa unidade

(27)

• Bloqueio da cópia primária

Banco de Dados Distribuído

A unidade de bloqueio D é replicada em Paris,

Memphis e Los Angeles. Um site, por exemplo, LA é

selecionado como o site primário para D.

Todas as transações que desejam acesso a D obtêm seu bloqueio no site de LA antes de

poderem acessar uma cópia de D.

(28)

• Controle Distribuído de Concorrência

• Bloqueio descentralizado, a tarefa de gerenciamento de bloqueios é compartilhada por todos os sites de uma rede. Nesse caso, a execução de uma transação envolve a participação e a coordenação de escalonadores

presentes em mais de um site.

– A classe de ordenação de timbres de horas(TO –

timestamp ordering) envolve a organização da ordem de execução das transações de tal forma que elas

mantenham a consistência mútua de transações. Essa ordenação é mantida pela atribuição de timbres de hora às transações e também aos itens de dados que

(29)

• Controle Distribuído de Concorrência

– Em alguns algoritmos baseados em bloqueios, também são usados timbres de hora.

– Isto é feito principalmente para melhorar a eficiência e o nível de concorrência.

– Esta classe é denominada de algoritmo híbrido.

– Este algoritmo nunca foi implementado em nenhum SGBD distribuído comercial ou de pesquisa.

(30)

• Conclusão

– O mecanismo distribuído de controle de concorrência de um SGBD distribuído assegura que a consistência do banco de dados distribuído será mantida e,

portanto, é um dos componentes fundamentais de um SGBD distribuído.

– E isto é evidenciado pela quantidade significativa de pesquisas que foram conduzidas nessa área.

Referências

Documentos relacionados

Alguns dos principais desafios encontrados no desenvolvimento de um ambiente de co-simulação são sincronização, conversão de dados, desempenho de comunicação (tempo de

No campo da antropologia da ciência e tec- nologia temos, por exemplo, as ciências da vida que trazem mudanças na noção de pessoa, de política e de ética; a tecnologia web

Minulet ® não deve ser utilizado por mulheres que apresentem qualquer uma das seguintes condições: história anterior ou atual de trombose venosa profunda

Nas pr´oximas sec¸˜oes s˜ao descritos experimentos realizados para abordar duas quest˜oes pertinentes `a integrac¸˜ao das tecnologias de SGBD e DHT sobre a arquitetura proposta:

As fórmulas infantis são indicadas somente quando há impossibilidade do aleitamento materno, sua composição alcança grande parte dos nutrientes que compõem o leite

Nessa seção serão expostos os resultados obtidos ao aplicar os conceitos do modelo InVEST de armazenamento e sequestro de carbono aos cenários atual e futuro da região

Quando os dados são analisados categorizando as respostas por tempo de trabalho no SERPRO, é possível observar que os respondentes com menor tempo de trabalho concordam menos que

Entre os principais benefícios destacam-se: provimento das informações demandadas a qualquer hora e a partir de qualquer lugar possibilitando o uso simultâneo,