Modos de Desconexão para BD’s Móveis Sandberg Marcel Santos Baseado no artigo “Disconnection...

Post on 07-Apr-2016

213 views 0 download

Transcript of Modos de Desconexão para BD’s Móveis Sandberg Marcel Santos Baseado no artigo “Disconnection...

Modos de Desconexão para BD’s MóveisSandberg Marcel Santos

Baseado no artigo “Disconnection Modes for Mobile Databases”, de Holliday, Agrawal e El Abbadi

Índice Sistema Considerado Cenários Modelo do BD Tipos de Desconexão Implementação Implementação (Sistema Assíncrono)

Sistema Considerado Banco de dados distribuído Pequena equipe (laptops) Replicação do BD nos laptops: sim/não Redes ad hoc com/sem fio Capacidade de atualização do BD

Não-necessidade de conexão com um computador fixo

Desconexões planejadas/não-planejadas

Cenários Formas de interação com o BD

Basic sign-off Check-out Relaxed check-out

Basic Sign-off Desconexão por longos períodos de tempo

(ex.: viagem) Deve-se informar aos demais membros da

equipe Continuação do processamento de atualizações no

BD Ausência do processador

Não por falha Desconexão voluntária

Basic Sign-off Membro em viagem

Cópia (de parte) do BD (laptop) Processamento de transações read-only

Check-out “Desmarcação” de parte do BD Demais membros

Completamente inacessível Membro desconectado

Acesso total Outras partes: read-only

Retorno Sincronização e integração automáticas

Relaxed Check-out Relaxamento

Parte do BD que sofreu a “desmarcação”: read-only (demais membros)

Modelo do BD Sistema distribuído

n sites: S1, S2, ..., Sn

BD completamente replicado Interação dos usuários: invocação de

transações em qualquer site Transparência: múltiplas cópias físicas uma

única cópia lógica Transações: atomicidade

Modelo do BD Controle de concorrência (two-phase locking) Equipe

Número fixo de membros Desconexão freqüente Rede ad hoc

Ausência de alguns membros: possibilidade de atualizações

Participantes com mesmo “peso”

Tipos de Desconexão Não-planejada

Considera-se o site desconectado como uma falha Basic sign-off

Tipos de Desconexão Check-out

Partição do BD Check-out com leitura móvel Check-out com leitura do sistema Check-out relaxado Check-out otimista

Partição do BD

Check-out com Leitura Móvel

Check-out com Leitura do Sistema

Check-out Relaxado

Check-out Otimista

Check-out Otimista Assume-se, de maneira otimista

Não-ocorrência de atualizações conflitantes Integração das atualizações conflitantes (na

reconexão dos sites desconectados) Regras pré-definidas

Implementação – Basic Sign-off - Desconexão de um site Si - Si: seleção de um proxy

Passagem do poder de voto Poder de votar em nome de outro membro

Proxy de Si

Direito de votar (atualizações do BD) Conhecimento da situação de Si (atualizações

processadas/não-processadas)

Implementação – Basic Sign-off - Reconexão de Si - Contatar o proxy

Proxy desconectado: determinação do novo proxy (mensagens em broadcast)

Determinar as atualizações necessárias Retirar o poder de voto do proxy

Implementação – Basic Sign-off Correção

Garantida trivialmente

Implementação – Check-out - Desconexão - Si: seleção de um proxy Ao mesmo tempo: realização de uma pseudo-

transação (obtenção dos write locks em um certo conjunto de itens) Write locks: bloqueio de itens do BD Pseudo-transação: transação para a obtenção de

write locks

Implementação – Check-out - Reconexão - Idêntica à do basic sign-off, exceto

Transmissão dos novos valores dos itens Liberação dos write locks

Implementação – Check-out Regras (desconexão/reconexão) válidas para

todas as variações Correção da partição do BD

Garantida trivialmente

ImplementaçãoCheck-out com Leitura Móvel (ex.)

Correção: garantida pela serialização das transações (t1, t2, t3, t4) (desconexão)

ImplementaçãoCheck-out com Leitura do Sistema (ex.)

Correção: garantida pela serialização das transações (t2, t1, t3, t4) (reconexão)

ImplementaçãoCheck-out Relaxado Check-out com leitura móvel + acesso em

browse mode Browse mode

Sites conectados Itens “desmarcados” Não garante leitura consistente

ImplementaçãoCheck-out Relaxado (ex.)

Correção: não-garantida (dependência cíclica: t1 e t5)

ImplementaçãoCheck-out Otimista Problema

Atualizações conflitantes (necessidade de integração)

Roll back (reconexão) Sugestão: regras baseadas em check-out

Site que está desconectando (Si) Ajuda no processo de integração Desmarcação de algumas partes do BD Concordância dos outros sites

ImplementaçãoCheck-out Otimista Quando Si desmarca um certo conjunto de

itens:1) - Transação em Si que acessar somente itens

desmarcados (desconexão) commit - Reconexão de Si: prioridade de Si (das

atualizações feitas por Si) > prioridade dos outros

ImplementaçãoCheck-out Otimista2) - Transação em Si que acessar somente itens não-

desmarcados commit - Reconexão de Si: prioridade dos outros >

prioridade de Si

3) Transação em Si que acessar ambos conjuntos de itens Commit condicional Possibilidade: roll back e redo

ImplementaçãoCheck-out Otimista Correção: dependência

Da integração (atualizações) Da realização dos roll backs e dos redos

Implementação (Sistema Assíncrono) Redes distribuídas com congestionamento e

atrasos Execução local das transações

incorporação assíncrona dos efeitos em cópias remotas do BD

Não-necessidade de todos os sites estarem conectados (simultaneamente, em algum momento)

Implementação (Sistema Assíncrono) Comunicação epidêmica

Periodicamente: contato entre membros e troca de informações

Comunicação par-a-par: disseminação das atualizações por todo o sistema

Implementação (Sistema Assíncrono)SGBD distribuído epidemic-based Controle de concorrência (two phase locking) Transação t (momento do commit): escreve-se

um registro de pré-commit em um log de eventos

Propagação do registro (comunicação epidêmica)

Outros membros: sincronização

Implementação (Sistema Assíncrono)SGBD distribuído epidemic-based Cada membro

Vector clock: ordem causal dos eventos (pré-commits)

2D timetable (matrix clock): conhecimento mais recente sobre os eventos (de todos os membros) Inclusa em todas mensagens epidêmicas

Implementação (Sistema Assíncrono)Basic Sign-off (Desconexão) Si solicita um proxy (Sj) Si não aceita mais mensagens epidêmicas

(exceção: as de Sj) e vice-versa Sj não realiza mais pré-commits (transações

locais)

Implementação (Sistema Assíncrono)Basic Sign-off (Desconexão) Sj envia a Si: todos os registros de pré-commits

(que acredita que Si não viu) + respectiva informação temporal Si sabe de tudo que Sj sabe (antes da desconexão)

Si envia a Sj: seus registros de pré-commits + informação temporal Sj conhece o estado de Si (atualização de Si na

reconexão) desconexão de Si

Implementação (Sistema Assíncrono)Basic Sign-off (Desconexão) Sj: marcação do log de eventos (identificador

para Si) não descartar registros atualização de Si (reconexão)

Sj: (retorno) envio e recebimento de mensagens epidêmicas / proxy de Si

Implementação (Sistema Assíncrono)Basic Sign-off (Reconexão) Si: quem está agindo como Si? Sj: parar envio/recebimento mensagens

epidêmicas / fornecer log de eventos + timetable para Si (retorno) operações normais

Si: log de eventos e timetable = aos de Sj (retorno) operações normais

Implementação (Sistema Assíncrono)Check-out Variações de check-out: implementações

similares Ex.: check-out com leitura móvel

Desconexão Por definição: tentativa de atualização de um item

(se há uma transação concorrente conflitante) abort de todos os registros de pré-commits

Si (antes da desconexão): envio de todos os itens com um timestamp ∞

Implementação (Sistema Assíncrono)Check-out Desconexão (cont.)

∞ incomparável com qualquer timestamp: abort de todas as transações de leitura ou atualização de itens de Si

Reconexão Si: envio de mensagem epidêmica com todos os

itens e com um timestamp normal Site é o mesmo (registro conflitante com o valor

∞) sobrescrição do log atualização dos itens