350 likes | 451 Views
Gerência de Transações em MDS Consistência de dados em conectividade intermitente. Francisco de Assis UFCG/COPIN Pós-graduação - Banco de Dados - 2007.1. Gerência de Transações em MDS. Como manter a consistência de dados se a conectividade é intermitente?
E N D
Gerência de Transações em MDSConsistência de dados em conectividade intermitente Francisco de Assis UFCG/COPIN Pós-graduação - Banco de Dados - 2007.1
Gerência de Transações em MDS Como manter a consistência de dados se a conectividade é intermitente? Como fazer o controle de concorrência em MDS?
Tópico1 Consistência de dados em conectividade intermitente
Motivação O modelo de consistência Operando em conectividade fraca Restaurando a consistência Agenda – Consistência de dados
Variação na conectividade De alta velocidade até alta latência Clientes móveis devem operar desconectados Clientes móveis podem operar em conectividade fraca A conexão será, eventualmente, restaurada Motivação – Consistência de dados
Conceitos - Cluster BD Distribuído • Dados nos “sítios” fortemente conectados possuem alta consistência – formam um cluster. • Um certo grau de inconsistência é admitido para cópias dos dados em clusters diferentes. Fraca conectividade Cluster Site
Leitura fraca Weak Read (WR) Lê cópias (possivelmente) inconsistentes Leitura estrita (explícita, rígida, ...) Strict Read (SR) Lê cópias consistentes Conceitos - Leitura
Escrita fraca Weak Write (WW) Faz “atualização condicional” Escrita estrita (explícita) Strict Write (SW) Grava dados de forma permanente Conceitos - Escrita
O grau de inconsistência pode ser adaptado as condições de uso. Usando Weak e Strict de forma balanceada Provê adaptabilidade variável: A aplicação sempre decide o grau de inconsistência; ou O BD sempre decide o grau de inconsistência. Conceitos - Vantagens
O modelo de consistência p-cluster - Objetivo: reduzir comunicação inter-cluster (entre p-clusters). - Usar WR e WW para acesso direto aos dados do mesmo p-cluster (maximizar processamento local). - Temos dois tipos de cópia: core: valor permanente. quasi: valor sob validação condicional. (são “reconciliados” no restabelecimento da comunicação) • p-cluster = physicalcluster • Definido se: • Há baixa latência; • A banda é muito larga;
Modelo “extendido” Extensões
Exemplo práticoAmbiente cooperativo Cópia core para Grupo A Cópia quasi para Grupo B p-cluster Grupo A Servidor Notebook p-cluster Grupo B PDA
O modelo de consistência • Para realizar uma transação, o DMS (Database Management System) consulta várias cópias do dado • Traduz o resultado num único valor
O modelo de consistência • A transação pode ser: • Strict (não inclui operações Weak) • São ACID! • Weak (não inclui operações Strict) • São executadas em cópias locais de um p-cluster • São visíveis apenas em operações weak • Weak + Strict • Difíceis de definir! • São separadas em sub-transações • “sub-weak + sub-strict”
Exatidão dos dados • Restrições de integridade são “relaxadas” • Não há como garantir “corretude total” em conexão intermitente
Exatidão dos dados O problema! A cópia quasi de X foi alterada sem se preocupar com a restrição!
Exatidão dos dados A solução! • Ao fazer SW imediata, as cópias quasi devem verificar a consistência • Ao fazer SW imediata, as operações de leitura devem ser feitas nas cópias quasi • Adiar a atualização das cópias quasi
Exatidão dos dados • Conceito de l-cluster (logical cluster) • É o conjunto de cópias quasi de um p-cluster • As restrições são aplicadas nesses l-clusters • Restrições intra-cluster definem se o estado do banco é ou não consistente • Deve haver uma medida de divergências (d) entre restrições inter-cluster
Operando em conectividade fraca • Como fazer o agendamento correto da transação (scheduling)? • Como garantir a corretude da transação? • Como serializar a transação?
Agendamento completo intra-cluster • Intra-cluster é: • Num mesmo p-cluster • Entre as cópias quasi
Agendamento completo intra-cluster • IAS = IntrA-cluster Schedule • Operações sobre um dado são traduzidas em operações nas cópias; • A ordem das transações é respeitada; • Operações conflitantes são gravadas; • A transação deve operar sempre na mesma cópia de um dado; • Transações weak não podem ver resultados parciais de transações strict;
Critério de corretude • Corretude fraca de um IAS • A execução concorrente pode manter inconsistência • Limiarizada! • As transações weak devem ler dados consistentes • As transações strict devem ser equivalentes a transações em cópia única • Não garante corretude em clusters diferentes
Critério de corretude • Corretude forte de um IAS • Há divergências entre l-clusters diferentes • Tenta fazer a correspondência entre: • IAS de transações strict E agendamento serial. • Ainda pode existir inconsistência
Serializando • Atestar a corretude de um IAS • Usando um grafo de serialização modificado • Incluir no grafo: • Todas as transações strict • Adicionar arestas que representem operações em cópias • Incluir transações weak • Incluir arestas: dependência, precedência • Se uma IAS têm um grafo acíclico, então a corretude é forte
Serializando • Controle de coerência • Todas as cópias têm o mesmo valor • Vale globalmente para cópias core • Vale localmente para cópias quasi • Controle de concorrência • Mantém as outras restrições de integridade
Limitando a divergência • Em cada p-cluster, “d” é o grau de divergência entre cópias quasi e core, podendo ser: • Número máximo de cópias divergentes; • Faixa de valores aceitável para o dado; • Número máximo de transações que podem agir numa cópia quasi; • ...
Outras vantagens do modelo • Leituras weak = dados “imprecisos” • Mais flexibilidade para o usuário • Oferece bons resultados se a aplicação tratar com dados estatísticos
Tópico1I Mecanismo de controle de concorrÊncia
Motivação Modelos disponíveis Adaptando modelos Agenda – Controle de concorrência
Adaptar mecanismos existentes Ou não! Analisar o overhead Deve ser mínimo para MDS! Motivação – Controle de concorrência
Baseado em travamento 2 fases, centralizado Um nó é responsável pelo travamento 2 fases, com cópia primária Vários nós são responsáveis pelo travamento 2 fases, distribuída Qualquer nó é responsável pelo travamento Nenhum resolve o problema da comunicação intermitente! Modelos disponíveis
Poucas alternativas foram pensadas! Distributed HP-PPL CCM Resolve conflitos usando: Prioridade Status (bloqueado, gravando) Acrescenta timeout para MDS Adaptando modelos
EpsilonSerializability Coloca limites para inconsistência Uma transação importa inconsistência Lendo dados não validados Uma transação exporta inconsistência Permitindo a leitura de dados não validados Melhor alternativa, segundo Kumar Adaptando modelos
Então... Como manter a consistência de dados se a conectividade é intermitente? R: Relaxando... Como fazer o controle de concorrência em MDS? R: Usando “EpsilonSerializability”
http://citeseer.ist.psu.edu/ramamritham94formal.html http://www.cs.uoi.gr/~pitoura/distribution/Mobile/icdcs95-slides.ps http://ieeexplore.ieee.org/iel5/69/17849/00824602.pdf?arnumber=824602 http://doi.ieeecomputersociety.org/10.1109/69.824602 Bibliografia