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"