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

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

© 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

Apresentações semelhantes


Apresentação em tema: "© 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"— Transcrição da apresentação:

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

2 © Marcelo Bezerra de Alcântara 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

3 © Marcelo Bezerra de Alcântara BDC 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 BD 1 BD 3 BD 2 BD n

4 © Marcelo Bezerra de Alcântara BDD - 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

5 © Marcelo Bezerra de Alcântara BDF - Arquitetura Esquema Local 1 Esquema Componente 1 Esquema Exportação 1 Esquema Global Esquema Externo 1 BD Local 1 Esquema Externo 2Esquema Externo m Esquema Exportação 2Esquema Exportação n... Esquema Local 2 Esquema Local n... BD Local 2 BD Local n Esquema Componente 2Esquema Componente n... esquema local no modelo 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

6 © Marcelo Bezerra de Alcântara Multidatabase - Arquitetura Esquema Local 1 Esquema MultiDB 1 BD Local 1 Esquema Correspondência 1... Esquema Local 2 Esquema Local n... BD Local 2 BD Local 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

7 © Marcelo Bezerra de Alcântara BDD - 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)

8 © Marcelo Bezerra de Alcântara BDD - 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

9 © Marcelo Bezerra de Alcântara Funçõ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,...

10 © Marcelo Bezerra de Alcântara Projeto 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

11 © Marcelo Bezerra de Alcântara Fragmentaçã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

12 © Marcelo Bezerra de Alcântara Fragmentação Horizontal (FH) Separação de R a nível de tupla Cada fragmento horizontal fh i de R (fh i (R)) é definido através de uma seleção – fh i (R) = c (R) R é obtida através da união de todos os seus fragmentos (princípios da fragmentação) –R = fh 1 (R) fh 2 (R)... fh n (R) FH com fragmentação derivada –tuplas de uma relação secundária S (com referência à R) são também fragmentadas

13 © Marcelo Bezerra de Alcântara FH - Exemplo rua Q, 52Fpolis5 rua K, 87Fpolis4 rua E, 18Blumenau3 rua H, 55Blumenau2 rua X, 10Fpolis1 endereçocidadenúmero 21300,00vendedor15/05/74rua Q, 52Ana filial 14/01/73 13/08/72 12/04/71 11/11/70 DN 1000, , , ,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) fh 1 fh 2 (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 filial... rua E, 18Paulo3 rua H, 55Maria2 rua X, 10João1 endereçonomecódigo

14 © Marcelo Bezerra de Alcântara Fragmentação Vertical (FV) Separação de R a nível de atributo Cada fragmento vertical fv i de R (fv i (R)) é definido através de uma projeção – fv i (R) = a1,..., aj (R) R é obtida através da junção natural de todos os seus fragmentos –R = fv 1 (R) fv 2 (R)... fv n (R) –requer a mesma chave candidata em todos os fragmentos

15 © Marcelo Bezerra de Alcântara FV - Exemplo 21300,00vendedor15/05/74rua Q, 52Ana filial 14/01/73 13/08/72 12/04/71 11/11/70 DN 1000, , , ,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) fv 2 (dados profissionais) 21300,00vendedor ,00caixa filial 1300,00vendedor3 1200,00caixa2 1500,00vendedor1 saláriocargocódigo código, nome, endereço, DN (Funcionários) fv 1 (dados pessoais) 15/05/74rua Q, 52Ana5 14/01/73rua K, 87Carlos /08/72 12/04/71 11/11/70 DN rua E, 18Paulo3 rua H, 55Maria2 rua X, 10João1 endereçonomecódigo

16 © Marcelo Bezerra de Alcântara 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 –exemplo 1.Funcionários são separados por filial 2.para cada filial, separar dados pessoais e profissionais de funcionários ordem de reconstrução 1.junção natural dos FVs de funcionários em cada filial 2.união de dados de funcionários por filial

17 © Marcelo Bezerra de Alcântara Esquema 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

18 © Marcelo Bezerra de Alcântara Possibilidades 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

19 © Marcelo Bezerra de Alcântara Projeto 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

20 © Marcelo Bezerra de Alcântara Projeto 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)

21 © Marcelo Bezerra de Alcântara Processamento 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

22 © 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 BDD

23 © Marcelo Bezerra de Alcântara Exemplos de Dados no DDD Nodo filialFpolis.empresa.br fragmento FFp relação global: Filiais predicado FH: cidade = Fpolis atributos FV: * fragmento FuncFp relação global: Funcionários predicado FH: filial IN (select código from FFp) atributos FV: código, nome, endereço, cargo, DN Nodo filialBlumenau.empresa.br fragmento FBlu...

24 © 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 BDD

25 © 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 Transações Distribuídas

26 © 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 Scheduler de um BDD

27 © Marcelo Bezerra de Alcântara Coordenador Central rede nodo 1 nodo 2 nodo 3... nodo n BD 1 BD 3 BD 2 BD n (coordenador de bloqueio) lock-X(Ty,D 1 ) lock-S(Tz,D 1 ); unlock(Tx, D 2 ) lock-S (Tw,D 3 ) 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... (!)

28 © Marcelo Bezerra de Alcântara Coordenador Central c/ Auxiliar(es) rede nodo 1 nodo 2 nodo 3... nodo n BD 1 BD 3 BD 2 BD n (coordenador de bloqueio) lock-X(Ty,D 1 ) lock-S(Tz,D 1 ); unlock(Tx, D 2 ) 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)

29 © Marcelo Bezerra de Alcântara Coordenação Distribuída rede nodo 1 nodo 2 nodo 3... nodo n BD 1 BD 3 BD 2 BD n lock-X(Ty,D 1 ) lock-S(Tz,D 1 ); unlock(Tx, D 2 ) 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,D 3 )

30 © 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 Deadlock em BDD

31 © 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 T x é o coordenador de recovery de T x 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 Recovery em um BDD

32 © Marcelo Bezerra de Alcântara Detecção e tratamento de uma falha distribuída – –uma transação de um nodo N y deseja acessar um nodo N x que está inacessível problemas na rede ou no próprio nodo N y informa aos demais nodos que N x falhou – –outro nodo pode assumir o controle das transações de N x N y pode abortar as transações advindas de N x – –se ninguém assumir o controle das transações de N x... – –liberando os bloqueios mantidos por transações de N x » »desafoga a quantidade de bloqueios sobre dados – –N y pode assumir o controle das transações de N x que estejam executando nele (em N y ) decidindo por efetivar ou abortar essas transações – –ver técnica 2PC Recovery em um BDD

33 © Marcelo Bezerra de Alcântara Reintegração de N x 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) Recovery em um BDD


Carregar ppt "© 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"

Apresentações semelhantes


Anúncios Google