Lendo dados temporais
de forma consistente em
Broadcast Disks
José Flávio M. V. Júnior
Baseado no artigo: Reading Temporally Consistent
Data in Broadcast Disks, Victor C. S. Lee, Joseph K.
Ng, Jo Y. P. Chong, Kwork-Wa Lam
Sumário
Introdução
Conceitos relacionados
Protocolos de controle de concorrência
Protocolo BCC-TI
Variações do Protocolo BCC-TI
Experimentos
Resultados
Conclusões
Introdução
Muitas aplicações para dispositivos móveis
possuem restrições de tempo para transações e
dados
Informações sobre bolsa de valores
Condições do tempo
Tráfego nas estradas
Os dados podem se tornar inválidos com o passar
do tempo;
Para refletir o estado atual do mundo real, os dados
devem ser periodicamente atualizados.
Introdução
Transações devem ler dados temporais
consistentes a fim de produzir resultados
corretos;
Os dados devem estar suficientemente
atualizados;
As transações devem ser completadas em
tempo hábil;
Introdução
Em ambiente de broadcast é mais difícil
manter a consistência dos dados;
pode levar tempo para as versões mais recentes
dos dados alcançarem os clientes;
dificulta a confirmação das transações
a validade dos dados expiram;
Protocolos especias foram desenvolvidos;
Conceitos relacionados
Broadcast Disks
Uma abordagem cliente-servidor para ambientes
móveis;
Explora a vantagem de largura de banda do
servidor para transmitir dados para múltiplos
clientes através de difusão;
Continuamente e repetidamente transmite dados
para os clientes;
O canal utilizado para broadcast se torna um
disco em que os clientes podem recuperar dados
enquanto se movem;
Conceitos relacionados
Broadcast Disks
Conceitos relacionados
Dado temporal
Dado temporal possui informação temporal
associada a cada nova versão
É atualizado periodicamente para refletir o estado
atual do mundo real
Dado não temporal não existe nenhuma restrição
sobre o tempo
Pode ser escrito aperiodicamente
Conceitos relacionados
Consistência Temporal
O valor atual de um item de dado do ambiente deve ser
próximo o bastante do valor armazenado no banco de
dados;
Mecanismos para verificação de consistência temporal
baseados em:
rótulo de tempo (timestamp): indica o tempo
quando o valor do dado foi gravado;
controle de versão (versioning): a idade e
dispersão da idade dos dados;
intervalo de validade absoluta (avi): por quanto
tempo o valor do dado é válido;
Protocolos de controle de
concorrência
A consistência do banco de dados pode ser
violada quando ele é acessado
concorrentemente;
Abordagem comum baseada em locking é
impraticável
Requer comunicação bi-direcional;
Sobrecarga de requisições de lock.
Protocolos de controle de
concorrência
Optimistic concurrency control (OCC)
Evita o reinicio das transações pelo atraso na
resolução de conflitos;
Transações podem executar até o ponto de
commit;
Elevado consumo de largura de banda dos
clientes;
Possui variantes (OCC-BC, OCC-FC, OCC-TI,
entre outras).
Protocolos de controle de
concorrência
Optimistic concurrency control with broadcast commit
(OCC-BC);
As transações podem ser processadas sem espera
na fase de leitura;
Somente o conjunto de operações de escrita é
verificado;
Quando uma transação é confirmada, uma verificação
é executada frente as outras transações ativas para
determinar se houve conflitos;
Protocolos de controle de
concorrência
OCC-BC
Se uma transação Ti ativa leu dados escritos pela
transação em validação, Ti é reiniciada;
As transações de somente leitura (ROT) não
precisam ser verificadas;
As ROTs podem fazer commit de forma
independente;
Sofre com o reinicio tardio das ROT;
Protocolos de controle de
concorrência
Datacycle
Ler todos os dados em um único ciclo;
Durante a execução das transações de leitura o
stream é escaneado;
É muito caro em termos de conexão.
Protocolo BCC-TI
Broadcast concurrency control using
timestamp interval (BCC-TI);
Oferecer autonomia entre clientes móveis e
servidores;
Leitura de dados consistentes sem contatar o
servidor;
Reduzir o número de reinícios
desnecessários das transações.
Protocolo BCC-TI
A idéia básica:
Ajustar dinâmicamente a posição (ordem de
serialização) das ROTs;
Intervalo de tempo (timestamp) é associado a
cada ROT;
O conflito de dados é verificado pelo fechamento
do intervalo;
Protocolo BCC-TI
Do lado do servidor:
Armazena informações das transações de
atualização;
Possui uma estrutura de dados chamada control
information table (CIT);
A CIT é transmitida periodicamente pelo servidor,
junto com os dados;
O tamanho das informações de controle é
proporcional ao número de itens de dado
atualizados no último ciclo.
Protocolo BCC-TI
Do lado do servidor:
Para todo objeto de dado d o servidor armazena
junto o último timestamp de gravação WTS(d);
Registra na CIT o timestamp TS(U) quando a
transação é confirmada;
As operações de escrita WS(U) também são
armazenadas na CIT;
Protocolo BCC-TI
Do lado do cliente:
Quando ele inicia uma ROT um intervalo de
tempo é associado;
Limite inferior (LB) e limite superior (UB);
O intervalo é ajustado para induzir a ordem serial
das transações de leitura (ROT) e de atualização
(WT).
A CIT e o WTS(d) são utilizados;
Protocolo BCC-TI
Ajustando o intervalo de tempo de uma transação ROT
O cliente lê a tabela de controle (CIT)
1.
2.
UB(Q) = mini ( TS(Ui), UB(Q) )
Se LB(Q) >= UB(Q) a transação é reiniciada;
Quando a transação Q ler o objeto de dado d os seguintes
passos são executados:
1.
2.
LB(Q) = max( LB(Q), WTS(d) )
Se LB(Q) >= UB(Q) a transação é reiniciada;
Protocolo BCC-TI
Primeiro ciclo de transmissão
WTS(z) = 3
Z
WTS(y) = 3 WTS(x) = 3
Y
WS(U) = {}
X
RS(Q) = {x, y, z}
Protocolo BCC-TI
Segundo ciclo de transmissão
WTS(y) = 3
X
Y
WTS(x) = 5
WTS(z) = 5
Z
WS(U) = {x, z} RS(Q) = {x, y, z}
Protocolo BCC-TI
Apenas um tipo de conflito pode acontecer
entre ROT e WT
WS(U) ∩ RS(Q) != {}
A ordem de serialização deve ser Q → U
Protocolo BCC-TI
O custo desses benefícios
manter e fazer broadcast da CIT;
gerenciamento de intervalo de tempo;
pode ser feito através de uma tabela de transações
nos clientes
Variações do Protocolo BCC-TI
BCC-TI com controle de versão
(Versioning)
Objetos de dados temporais são tratados de
forma diferente;
Um número de versão é associado ao objeto de
dado temporal;
Utiliza limiar absoluto e relativo para definir a
consistência temporal dos dados;
Variações do Protocolo BCC-TI
BCC-TI com controle de versão
(Versioning)
Consistência absoluta:
at(x) <= A (A >= 0), onde A é o limiar absoluto
Consistência relativa:
Dada sobre a dispersão temporal dos dados:
dt(x, y) = | at (x) - at (y) |
dt(x, y) <= R (R >= 0) , onde R é o limiar relativo
Variações do Protocolo BCC-TI
BCC-TI com intervalo de tempo válido
(TVI)
objetos de dados temporais são tratados de
forma diferente;
um intervalo de tempo é associado ao objeto de
dado temporal (data deadline);
se o deadline do dado for perdido uma
inconsistência temporal é detectada e a
transação é reiniciada;
Experimentos
Os seguintes protocolos foram
analisados
Datacycle
Puro BCC-TI
BCC-TI Versioning 0
BCC-TI Versioning 1
BCC-TI Versioning 2
BCC-TI TVI
Experimentos
Experimentos
300 objetos de dados sendo 30 dados
temporais
Cada objeto de dado possui igual chance de ser
acessado;
Experimentos
Avaliação do desempenho
Os principais números avaliados:
miss rate: % de transações que perderam seus
deadlines
restart rate: número médio reinicio de transações
transaction response time: tempo decorrido do início
até o final da transação
Resultados
D
TVI
V0
D
TVI
V0
P
P
V1
V1
V2
Gráfico 1: Taxa de perda de
transações
V2
Gráfico 2: Média de reinício
de transações
Resultados
TVI
P
V0
P
D
V1
V2
V1
V2
V0
TVI
Gráfico 3: Tempo de resposta
Gráfico 4: Taxa de reinício por
inconsistência nos dados
Resultados
TVI
V0
V1
V2
Gráfico 5: Taxa de reinício por
inconsistência temporal
Conclusões
O ajuste dinâmico reduz significativamente o
número de reinícios das transações;
Em particular, o desempenho desses
protocolos melhoram quanto menos severa é
a restrição temporal;
Os requisitos de consistência temporal e a
semântica dos dados podem melhorar o
desempenho do sistema;
Bibliografia
Victor C. S. Lee, Joseph K. Ng, Jo Y. P. Chong, Kwork-Wa Lam:
“Reading temporally consistent data in broadcast disks”,
2004.
Victor C. S. Lee, Kwok-Wa Lam, and Sang H. Son.
“Concurrency control using timestamp ordering in
broadcast environments”. The Computer Journal, 2002.
Sanjay Kumar Madria and Mukesh Mohania. “Mobile data and
transaction management”. Inf. Sci. Inf. Comput. Sci., 2002.
Swarup Acharya, Rafael Alonso, Michael Franklin, and Stanley
Zdonik. "Broadcast Disks : Data Management for
Asymmetric Communication Environments"