© Marcelo Bezerra de AlcântaraBanco de Dados II – BDD - 1 Disciplina Banco de Dados II Banco de...

33
© Marcelo Bezerra de Alcântara Banco de Dados II – BDD - 1 Disciplina Disciplina Banco de Dados II Banco de Dados II Banco de Dados Banco de Dados Distribuído Distribuído Msc, Marcelo Bezerra de Alcântara [email protected]

Transcript of © Marcelo Bezerra de AlcântaraBanco de Dados II – BDD - 1 Disciplina Banco de Dados II Banco de...

Page 1: © Marcelo Bezerra de AlcântaraBanco de Dados II – BDD - 1 Disciplina Banco de Dados II Banco de Dados Distribuído Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br.

© Marcelo Bezerra de Alcântara Banco de Dados II – BDD - 1

Disciplina Disciplina Banco de Dados IIBanco de Dados II

Banco de Dados Banco de Dados DistribuídoDistribuído

Msc, Marcelo Bezerra de Alcântara

[email protected]

Page 2: © Marcelo Bezerra de AlcântaraBanco de Dados II – BDD - 1 Disciplina Banco de Dados II Banco de Dados Distribuído Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br.

© Marcelo Bezerra de Alcântara

BD Distribuído (BDD)BD Distribuído (BDD)

• Definição– coleção de múltiplos BDs logicamente inter-

relacionados e dispersos sobre uma rede de computadores

• Motivação– organizações sofisticadas

• estrutura geograficamente distribuída e necessidade de compartilhar dados

– avanço da computação distribuída e das redes• maior eficiência de acesso e processamento

paralelo– integração de dados

• acesso unificado a dados heterogêneos

Page 3: © Marcelo Bezerra de AlcântaraBanco de Dados II – BDD - 1 Disciplina Banco de Dados II Banco de Dados Distribuído Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br.

© Marcelo Bezerra de Alcântara

BDC x BDDBDC x BDD

• BD Centralizado– BD único acessado por uma ou mais aplicações locais e/ou

remotas através de transações centralizadas

• BD Distribuído– vários BDs autônomos; aplicações o acessam através de

transações distribuídas (executam em um ou mais BDs)

rede

nodo 1 nodo 2

nodo 3

. . .nodo n

BD

rede

nodo 1 nodo 2

nodo 3 . . . nodo n

BD1

BD3

BD2

BDn

Page 4: © Marcelo Bezerra de AlcântaraBanco de Dados II – BDD - 1 Disciplina Banco de Dados II Banco de Dados Distribuído Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br.

© Marcelo Bezerra de Alcântara

BDD - ClassificaçãoBDD - Classificação

• BD Homogêneo– BDs são idênticos à nível de modelo e SGBD

• BD Heterogêneo (BDH)– pode apresentar diferenças a nível de

• SGBD• modelo e esquema de dados• DML

– se o BDH é o resultado de um processo de integração de dados, ele pode ser classificado em

• BD Federado (BDF)– há um esquema global compartilhado– mapeamento de instruções globais para cada BD

• BD Múltiplo (multidatabase)– não há esquema global– mapeamento de instruções entre pares de BDs

Page 5: © Marcelo Bezerra de AlcântaraBanco de Dados II – BDD - 1 Disciplina Banco de Dados II Banco de Dados Distribuído Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br.

© Marcelo Bezerra de Alcântara

BDF - ArquiteturaBDF - Arquitetura

Esquema Local 1

Esquema Componente 1

Esquema Exportação 1

Esquema Global

Esquema Externo 1

BDLocal 1

Esquema Externo 2 Esquema Externo m

Esquema Exportação 2 Esquema Exportação n

. . .

Esquema Local 2 Esquema Local n. . .

. . .

BDLocal 2

BDLocal n

Esquema Componente 2 Esquema Componente n. . . esquema local nomodelo canônico

porção do esquema local a ser integrada

resultado da integração semântica de esquemas de exportação (EG)

visões do esquema global

• arquitetura fortemente acoplada• oferece transparência de dados e esquemas locais

– visão uniforme de dados e esquemas locais heterogêneos

• overhead para geração/manutenção do EG + tradução DML

Page 6: © Marcelo Bezerra de AlcântaraBanco de Dados II – BDD - 1 Disciplina Banco de Dados II Banco de Dados Distribuído Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br.

© Marcelo Bezerra de Alcântara

MultidatabaseMultidatabase - Arquitetura - Arquitetura

Esquema Local 1

Esquema MultiDB 1

BDLocal 1

Esquema Correspondência 1 . . .

Esquema Local 2 Esquema Local n. . .

BDLocal 2

BDLocal n

Esquema MultiDB 2 Esquema MultiDB n. . . equivalente a um esquema de exportação

define mapeamentos entre 2 esquemas MultiDBs

• arquitetura fracamente acoplada• não há overhead para geração/manutenção de um EG• overhead para definição e manutenção de múltiplos mapeamentos entre BDs• trabalha com uma DML multidatabase (permite acesso ao BD local ou a outros

BDs (“expansão da DML”))– perde-se a transparência quanto a BDs participantes do BDD

Esquema Correspondência m

Page 7: © Marcelo Bezerra de AlcântaraBanco de Dados II – BDD - 1 Disciplina Banco de Dados II Banco de Dados Distribuído Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br.

© Marcelo Bezerra de Alcântara

BDD - VantagensBDD - Vantagens

• Transparência– omite detalhes sobre a distribuição dos dados

• transparência de localização e nomeação– uma instrução DML não se preocupa onde está o dado– uma vez informado um dado, ele é buscado em todos os

locais onde está definido, mesmo tendo nomes diferentes• transparência da forma de acesso

– define-se uma consulta sem se preocupar com futuras transformações sobre ela para alcançar os dados desejados

» transparência de dialeto DML - consulta não se preocupa com a DML de cada BD» transparência de fragmentação/replicação

- decomposição da consulta - busca-se o nodo mais próximo onde está o dado

• um catálogo robusto é requerido (DDD)

Page 8: © Marcelo Bezerra de AlcântaraBanco de Dados II – BDD - 1 Disciplina Banco de Dados II Banco de Dados Distribuído Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br.

© Marcelo Bezerra de Alcântara

BDD - VantagensBDD - Vantagens

• Confiabilidade e Disponibilidade– se um nodo falha, outros nodos podem processar

transações– dados são encontrados em diversos nodos

• Melhor Desempenho– mantém-se dados mais próximos do local onde são

mais necessários– BDs locais são independentes e menores que um

grande BDC• menor overhead para transações• menos transações executando do que em um BDC

– consultas globais podem ser desmembradas e executadas em paralelo em diferentes nodos

• Facilidade de Expansão– arquitetura de um BDD permite a inclusão de novos BDs

Page 9: © Marcelo Bezerra de AlcântaraBanco de Dados II – BDD - 1 Disciplina Banco de Dados II Banco de Dados Distribuído Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br.

© Marcelo Bezerra de Alcântara

Funções de um SGBDDFunções de um SGBDD

• Controle da Transparência de Armazenamento– uso de um DDD para controle da estrutura, RIs,

distribuição, replicação e fragmentação de dados nos nodos

• Processamento de Consultas Distribuídas– capacidade de transmissão de consultas a nodos

remotos (com possível tradução)– planejamento de estratégias de acesso

• quais dados de quais nodos serão acessados?, qual a ordem e a sincronização para execução da consulta nestes nodos?, ...

• Gerenciamento de Transações Distribuídas– técnicas adaptadas de controle de concorrência e

recovery• consideração de falhas em nodos e falhas de comunicação,

garantia de ACID distribuído, ...

Page 10: © Marcelo Bezerra de AlcântaraBanco de Dados II – BDD - 1 Disciplina Banco de Dados II Banco de Dados Distribuído Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br.

© Marcelo Bezerra de Alcântara

Projeto de BDDProjeto de BDD

• Projeto de BDC– definir e estruturar dados persistentes relevantes

para um domínio de aplicação• levantamento de requisitos, modelagem conceitual,

modelagem lógica e modelagem física• Projeto de BDD (do “zero”)

– modelagem lógica• definir adicionalmente a alocação do esquema lógico

nos BDs dos nodos– decisão sobre quais dados serão armazenados em quais

nodos– leva em conta fragmentação e replicação de dados

Page 11: © Marcelo Bezerra de AlcântaraBanco de Dados II – BDD - 1 Disciplina Banco de Dados II Banco de Dados Distribuído Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br.

© Marcelo Bezerra de Alcântara

Fragmentação de DadosFragmentação de Dados

• Separação dos dados de uma relação para fins de armazenamento nos nodos– definição de um esquema de fragmentação

• Princípios da fragmentação– completude

• dada uma relação R, não pode haver perda de dados de R quando R for fragmentada em vários nodos

– reconstrução• deve ser sempre possível reconstruir R a partir da

sua coleção de fragmentos• Tipos de fragmentação

– horizontal, vertical e mista

Page 12: © Marcelo Bezerra de AlcântaraBanco de Dados II – BDD - 1 Disciplina Banco de Dados II Banco de Dados Distribuído Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br.

© Marcelo Bezerra de Alcântara

Fragmentação Horizontal (FH)Fragmentação Horizontal (FH)

• Separação de R a nível de tupla

• Cada fragmento horizontal fhi de R (fhi (R)) é definido através de uma seleção– fhi (R) = c (R)

• R é obtida através da união de todos os seus fragmentos (princípios da fragmentação)

– R = fh1(R) fh2(R) ... fhn(R)

• FH com fragmentação derivada– tuplas de uma relação secundária S (com referência

à R) são também fragmentadas

Page 13: © Marcelo Bezerra de AlcântaraBanco de Dados II – BDD - 1 Disciplina Banco de Dados II Banco de Dados Distribuído Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br.

© Marcelo Bezerra de Alcântara

FH - ExemploFH - Exemplo

rua Q, 52Fpolis5

rua K, 87Fpolis4

rua E, 18Blumenau3

rua H, 55Blumenau2

rua X, 10Fpolis1

endereçocidadenúmero

21300,00vendedor15/05/74rua Q, 52Ana5

. . .

2

1

1

1

filial

14/01/73

13/08/72

12/04/71

11/11/70

DN

1000,00

1300,00

1200,00

1500,00

salário

caixa

vendedor

caixa

vendedor

cargo

rua K, 87Carlos4

rua E, 18Paulo3

rua H, 55Maria2

rua X, 10João1

endereçonomecódigo

Filiais Funcionários

cidade = ‘Fpolis’ (Filiais)cidade = ‘Blumenau’ (Filiais)

fh1 fh2 (derivada para Funcionários)

rua E, 18Blumenau3

rua H, 55Blumenau2

endereçocidadenúmero

rua Q, 52Fpolis5

rua K, 87Fpolis4

rua X, 10Fpolis1

endereçocidadenúmero

. . .

1

1

1

filial. . .

rua E, 18Paulo3

rua H, 55Maria2

rua X, 10João1

endereçonomecódigo

Page 14: © Marcelo Bezerra de AlcântaraBanco de Dados II – BDD - 1 Disciplina Banco de Dados II Banco de Dados Distribuído Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br.

© Marcelo Bezerra de Alcântara

Fragmentação Vertical (FV)Fragmentação Vertical (FV)

• Separação de R a nível de atributo

• Cada fragmento vertical fvi de R (fvi (R)) é definido através de uma projeção– fvi (R) = a1, ..., aj (R)

• R é obtida através da junção natural de todos os seus fragmentos

– R = fv1(R) fv2(R) ... fvn(R)

– requer a mesma chave candidata em todos os fragmentos

Page 15: © Marcelo Bezerra de AlcântaraBanco de Dados II – BDD - 1 Disciplina Banco de Dados II Banco de Dados Distribuído Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br.

© Marcelo Bezerra de Alcântara

FV - ExemploFV - Exemplo

21300,00vendedor15/05/74rua Q, 52Ana5

. . .

2

1

1

1

filial

14/01/73

13/08/72

12/04/71

11/11/70

DN

1000,00

1300,00

1200,00

1500,00

salário

caixa

vendedor

caixa

vendedor

cargo

rua K, 87Carlos4

rua E, 18Paulo3

rua H, 55Maria2

rua X, 10João1

endereçonomecódigo

Funcionários

código, cargo, salário, filial (Funcionários)fv2 (dados profissionais)

21300,00vendedor5

21000,00caixa4

. . .

1

1

1

filial

1300,00vendedor3

1200,00caixa2

1500,00vendedor1

saláriocargocódigo

código, nome, endereço, DN (Funcionários)fv1 (dados pessoais)

15/05/74rua Q, 52Ana5

14/01/73rua K, 87Carlos4

. . .

13/08/72

12/04/71

11/11/70

DN

rua E, 18Paulo3

rua H, 55Maria2

rua X, 10João1

endereçonomecódigo

Page 16: © Marcelo Bezerra de AlcântaraBanco de Dados II – BDD - 1 Disciplina Banco de Dados II Banco de Dados Distribuído Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br.

© Marcelo Bezerra de Alcântara

Fragmentação Mista (FM)Fragmentação Mista (FM)

• Separação de R a nível de tupla e atributo

• R é obtida através da execução de operações de reconstrução de fragmentos horizontais e verticais

– exemplo1. Funcionários são separados por filial

2. para cada filial, separar dados pessoais e profissionais de funcionários

• ordem de reconstrução1. junção natural dos FVs de funcionários em cada filial

2. união de dados de funcionários por filial

Page 17: © Marcelo Bezerra de AlcântaraBanco de Dados II – BDD - 1 Disciplina Banco de Dados II Banco de Dados Distribuído Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br.

© Marcelo Bezerra de Alcântara

Esquema de AlocaçãoEsquema de Alocação

• Definição dos nodos onde serão armazenados os fragmentos (ou relações completas)

– definição de associações fragmento – nodo

• Se associação é Fragmento [1,N] – 1 Nodo – não há replicação

• Se associação é Fragmento N – M Nodo– há replicação

• Possibilidades de replicação– total, nula ou parcial

Page 18: © Marcelo Bezerra de AlcântaraBanco de Dados II – BDD - 1 Disciplina Banco de Dados II Banco de Dados Distribuído Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br.

© Marcelo Bezerra de Alcântara

Possibilidades de ReplicaçãoPossibilidades de Replicação

• Total– desempenho bom para consultas

• não há necessidade de acesso remoto– muita redundância de dados e desempenho ruim para

atualizações• manutenção de cópias consistentes (uso de triggers, por

exemplo)• scheduler e recovery mais complexos

– bloqueios em todos os nodos e com interferências diferentes– UNDO e REDO em todos os nodos

• Nula– inverte-se as vantagens e desvantagens

• Parcial– meio termo entre as opções anteriores

Page 19: © Marcelo Bezerra de AlcântaraBanco de Dados II – BDD - 1 Disciplina Banco de Dados II Banco de Dados Distribuído Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br.

© Marcelo Bezerra de Alcântara

Projeto do Esquema de AlocaçãoProjeto do Esquema de Alocação

• Considera basicamente– metas de desempenho no acesso ao BDD

• ex.: rapidez nas atualizações (baixa distribuição) X confiabilidade (alta distribuição), ...

– freqüência de transações em cada nodo• pode ser o gargalo do BDD, se distribuição foi mal

definida (ex.:muitos dados concentrados em um nodo)

• Uso de replicação deve ser avaliado– maior disponibilidade de dados

– maior concorrência de transações

– overhead para integridade de cópias

Page 20: © Marcelo Bezerra de AlcântaraBanco de Dados II – BDD - 1 Disciplina Banco de Dados II Banco de Dados Distribuído Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br.

© Marcelo Bezerra de Alcântara

Projeto do Esquema de AlocaçãoProjeto do Esquema de Alocação

• Ponderações sobre replicação– deseja-se alta disponibilidade; transações podem

ser submetidas a qualquer nodo; grande parte das transações é de leitura• replicação total

– transações que acessam determinados dados partem geralmente dos mesmos nodos• replicação parcial destes dados nestes nodos

– atualizações ocorrem em dados cadastrados localmente• replicação nula (apenas fragmentação dos dados de

interesse local)

Page 21: © Marcelo Bezerra de AlcântaraBanco de Dados II – BDD - 1 Disciplina Banco de Dados II Banco de Dados Distribuído Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br.

© Marcelo Bezerra de Alcântara

Processamento de Consultas em BDDProcessamento de Consultas em BDD

• BDC– estimativas de custo baseiam-se principalmente

no número de acessos a disco

• BDD– consultas podem requisitar dados em vários

nodos, logo há outros fatores a estimar• custo do volume de dados transmitido na rede

– deve ser o menor possível!

• processamento paralelo de partes da consulta em diferentes nodos– DDD mantém a localização e as filtragens H e V que

indicam em quais nodos estão os fragmentos de dados

Page 22: © Marcelo Bezerra de AlcântaraBanco de Dados II – BDD - 1 Disciplina Banco de Dados II Banco de Dados Distribuído Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br.

© Marcelo Bezerra de Alcântara

• Dada uma consulta que envolva uma relação R, investiga-se como R está armazenada no BDD

– R está replicada em nodos remotos• escolhe-se o nodo com menor custo de

transmissão

– R está fragmentada em vários nodos• deve-se realizar transformações na consulta

– transformação é feita com base nas informações do DDD

– R está replicada e fragmentada• ambas as ações devem ser consideradas

Processamento de Consultas em BDDProcessamento de Consultas em BDD

Page 23: © Marcelo Bezerra de AlcântaraBanco de Dados II – BDD - 1 Disciplina Banco de Dados II Banco de Dados Distribuído Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br.

© Marcelo Bezerra de Alcântara

Exemplos de Dados no DDDExemplos de Dados no DDD

Nodo filialFpolis.empresa.brfragmento FFp

relação global: Filiaispredicado FH: cidade = ‘Fpolis’atributos FV: *

fragmento FuncFprelação global: Funcionáriospredicado FH: filial IN

(select código from FFp)atributos FV: código, nome,

endereço, cargo, DNNodo filialBlumenau.empresa.br

fragmento FBlu...

Page 24: © Marcelo Bezerra de AlcântaraBanco de Dados II – BDD - 1 Disciplina Banco de Dados II Banco de Dados Distribuído Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br.

© Marcelo Bezerra de Alcântara

• Duas categorias de transações– locais

• manipulam apenas dados locais não replicados

– globais (ou distribuídas)• manipulam dados de outros nodos

• Cada BD local possui um gerente de recovery e de scheduler

– capaz de coordenar a recuperação e o escalonamento de requisições de dados de transações locais

– pode ser capaz de realizar a mesma coordenação para transações distribuídas

Transações em BDDTransações em BDD

Page 25: © Marcelo Bezerra de AlcântaraBanco de Dados II – BDD - 1 Disciplina Banco de Dados II Banco de Dados Distribuído Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br.

© Marcelo Bezerra de Alcântara

• Replicação e Fragmentação de dados– scheduler deve manter cópias consistentes em

caso de atualização

– recovery deve manter atomicidade de valores de cópias e de fragmentos em caso de falha

• Novos tipos de falhas– falha em um nodo (ou no BD do nodo)

– falha de comunicação (na rede ou em mensagens)

Problemas Adicionais com Gerência de Problemas Adicionais com Gerência de Transações DistribuídasTransações Distribuídas

Page 26: © Marcelo Bezerra de AlcântaraBanco de Dados II – BDD - 1 Disciplina Banco de Dados II Banco de Dados Distribuído Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br.

© Marcelo Bezerra de Alcântara

• Controles adicionais– divide uma transação distribuída em sub-transações

para execução em outros nodos– coordena o commit ou o abort distribuído

• Técnicas de bloqueio são geralmente adotadas– bloqueios devem ocorrer em todas as cópias e

fragmentos de dados desejados por transações– deve haver nodos responsáveis pela coordenação do

escalonamento– algumas técnicas

• coordenador central• coordenador central e auxiliares• coordenação distribuída

SchedulerScheduler de um BDD de um BDD

Page 27: © Marcelo Bezerra de AlcântaraBanco de Dados II – BDD - 1 Disciplina Banco de Dados II Banco de Dados Distribuído Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br.

© Marcelo Bezerra de Alcântara

Coordenador CentralCoordenador Central

rede

nodo 1 nodo 2

nodo 3 . . . nodo n

BD1

BD3

BD2

BDn

(coordenador de bloqueio)

lock-X(Ty,D1)

lock-S(Tz,D1); unlock(Tx, D2) lock-S(Tw,D3)

• Vantagens– controle de concorrência é simples (gerência em um único local,

como em BDC)

– nodos que não são coordenadores com menor overhead de gerenciamento de transações

• Desvantagens– sobrecarga de gerência de concorrência em um único nodo– se o coordenador falha... (!)

Page 28: © Marcelo Bezerra de AlcântaraBanco de Dados II – BDD - 1 Disciplina Banco de Dados II Banco de Dados Distribuído Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br.

© Marcelo Bezerra de Alcântara

Coordenador Central c/ Auxiliar(es)Coordenador Central c/ Auxiliar(es)

rede

nodo 1 nodo 2

nodo 3 . . . nodo n

BD1

BD3

BD2

BDn

(coordenador de bloqueio)

lock-X(Ty,D1)

lock-S(Tz,D1); unlock(Tx, D2) info.bloq.

• Vantagens– controle de concorrência ainda é simples– se o coordenador falha, o(algum) auxiliar é eleito coordenador

• Desvantagem– overhead para sincronização das informações de bloqueio entre

o coordenador e o(s) auxiliar(es)

(auxiliar)

Page 29: © Marcelo Bezerra de AlcântaraBanco de Dados II – BDD - 1 Disciplina Banco de Dados II Banco de Dados Distribuído Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br.

© Marcelo Bezerra de Alcântara

Coordenação DistribuídaCoordenação Distribuída

rede

nodo 1 nodo 2

nodo 3 . . . nodo n

BD1

BD3

BD2

BDn

lock-X(Ty,D1)

lock-S(Tz,D1); unlock(Tx, D2)

• Cada nodo coordena os bloqueios dos seus dados• Vantagens

– nenhum nodo fica sobrecarregado com gerência de bloqueios– se um nodo falha, não compromete todas as transações ativas

• Desvantagem– difícil prever deadlock distribuído

• um nodo não tem conhecimento de todos os bloqueios no BDD• a menos que se use uma técnica que evite ou detecte deadlock (ex.:

2PL Conservador, grafo de espera global, ...)

lock-S(Tw,D3)

Page 30: © Marcelo Bezerra de AlcântaraBanco de Dados II – BDD - 1 Disciplina Banco de Dados II Banco de Dados Distribuído Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br.

© Marcelo Bezerra de Alcântara

• Técnicas de prevenção baseadas em timestamp para BDC podem ser adotadas

– cada transação com um TS global• gerado por um único nodo coordenador de TS• gerado pelo nodo que iniciou a transação

– requer relógios sincronizados

• Técnicas de detecção baseadas em grafo de espera

– grafo de espera global centralizado

– grafo de espera global distribuído

Controle de Controle de DeadlockDeadlock em BDD em BDD

Page 31: © Marcelo Bezerra de AlcântaraBanco de Dados II – BDD - 1 Disciplina Banco de Dados II Banco de Dados Distribuído Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br.

© Marcelo Bezerra de Alcântara

• Controles adicionais para transações distribuídas– detecção de falhas no ambiente distribuído

• nodo ou de comunicação (falhas distribuídas)

– tratamento de falhas em transações fica a cargo do nodo que gerou a transação

• o nodo que gera uma transação Tx é o coordenador de recovery de Tx

• Topologia do BDD– influencia o tratamento de falhas distribuídas– exemplos

• BDD com topologia estrela– menos conexões; disponibilidade zero se nodo central falha

• BDD totalmente conectado– mais conexões; alta disponibilidade

• BDD parcialmente conectado– número intermediário de conexões; grau de disponibilidade

depende do nodo que falhar

RecoveryRecovery em um BDD em um BDD

Page 32: © Marcelo Bezerra de AlcântaraBanco de Dados II – BDD - 1 Disciplina Banco de Dados II Banco de Dados Distribuído Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br.

© Marcelo Bezerra de Alcântara

• Detecção e tratamento de uma falha distribuída– uma transação de um nodo Ny deseja acessar um

nodo Nx que está inacessível• problemas na rede ou no próprio nodo• Ny informa aos demais nodos que Nx falhou

– outro nodo pode assumir o controle das transações de Nx • Ny pode abortar as transações advindas de Nx

– se ninguém assumir o controle das transações de Nx...– liberando os bloqueios mantidos por transações de Nx

» “desafoga” a quantidade de bloqueios sobre dados– Ny pode assumir o controle das transações de Nx

que estejam executando nele (em Ny)• decidindo por efetivar ou abortar essas transações

– ver técnica 2PC

RecoveryRecovery em um BDD em um BDD

Page 33: © Marcelo Bezerra de AlcântaraBanco de Dados II – BDD - 1 Disciplina Banco de Dados II Banco de Dados Distribuído Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br.

© Marcelo Bezerra de Alcântara

• Reintegração de Nx após falha– informa aos demais nodos que está ativo– atualiza as cópias de seus dados

• UNDO e/ou REDO de transações locais e distribuídas que atualizaram seus dados– consulta situação das transações distribuídas nos Logs

dos nodos responsáveis por elas

• Atomicidade e Durabilidade Distribuída– técnica 2PC (2-Phase Commit)

RecoveryRecovery em um BDD em um BDD