Modos de Desconexão
para BD’s Móveis
Sandberg 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


Membro desconectado



Completamente inacessível
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”: readonly (demais membros)
Modelo do BD

Sistema distribuído



BD completamente replicado
Interação dos usuários: invocação de
transações em qualquer site


n sites: S1, S2, ..., Sn
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 pseudotransaçã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ção
Check-out com Leitura Móvel (ex.)

Correção: garantida pela serialização das
transações (t1, t2, t3, t4) (desconexão)
Implementação
Check-out com Leitura do Sistema (ex.)

Correção: garantida pela serialização das
transações (t2, t1, t3, t4) (reconexão)
Implementação
Check-out Relaxado


Check-out com leitura móvel + acesso em
browse mode
Browse mode



Sites conectados
Itens “desmarcados”
Não garante leitura consistente
Implementação
Check-out Relaxado (ex.)

Correção: não-garantida (dependência cíclica:
t1 e t5)
Implementação
Check-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ção
Check-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ção
Check-out Otimista
2) - 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ção
Check-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
Download

ad hoc - Computação UFCG