Serialização Relaxada em Banco de Dados Múltiplos Andressa Sebben [email protected] Dados do artigo MEHROTRA, S., RASTOGI, R., KORTH, H. F., AND SILBERSCHATZ, A. 1992. Relaxing serializability in multidatabase systems. Second International Workshop on Research Issues on Data Engineering: Transaction and Query Processing, Mission Palms, Arizona, Feb. Sumário Introdução Modelo de banco de dados múltiplo Execuções não serializáveis Aplicação em ambientes MDBS Conclusão Introdução Modelo de transações padrão: Transações executadas isoladamente mapeiam o BD de um estado consistente para outro estado consistente Em Transações concorrentes, a consistência é garantida requerendo que a escala resultante da execução concorrente seja serializável Se cada transação isoladamente preserva a consistência, então uma escala serializável também preserva. Serialização: padrão de correção em BDs Difícil de ser alcançada em Bancos de Dados Múltiplos – MDBS São necessários outros critérios de correção além da serialização Bancos de Dados Múltiplos - MDBS Sistema que integra BDs pré-existentes e independentes Os SGBDs locais podem empregar hardware e software heterogêneo Podem utilizar diferentes modelos lógicos, linguagens DDL e DML, controle de concorrência, etc. Simula a integração lógica dos BDs, sem que haja uma integração física correspondente Permitem a execução de transações que acessam dados em diversos SGBDs locais Modelo de banco de dados múltiplo Transações: locais ou globais Ti é uma seqüência de leituras (ri) e escritas (wi) resultantes de um programa Escala global: execução concorrente de transações globais e locais Escala local: subconjunto da escala global Local Transaction Manager ou LTM em cada banco local Global Transaction Manager ou GTM, operando sobre todos os LTM Modelo de banco de dados múltiplo (2) SBGDs locais: Autonomia de arquitetura Autonomia de comunicação Impactos da autonomia no modelo MDBS: SGBDs locais não sabem da existência dos demais SGBDs É necessário um GTM para garantir a consistência Operações externas podem acessar o banco sem o conhecimento do GTM Controle de Concorrência em MDBS Dificuldades: Autonomia de arquitetura: Os diversos SGBDs possam utilizar diferentes esquemas de controle de concorrência, o que dificulta a serialização em MDBS. Autonomia de comunicação: Não comunicam ao GTM informações sobre controle de concorrência O GTM pode não tomar conhecimento da ordem de serialização das transações em vários locais Controle de Concorrência em MDBS (2) Papel do GTM: Para cada operação global a ser executada, o GTM seleciona o SGBD local onde a operação deverá ser executada; Para cada SGBD, o GTM aloca um servidor (um por SGBD por transação) e submete a operação ao servidor; O servidor encaminha a operação ao SGBD, que, por tê-la recebido de uma única máquina, trata-a como uma operação local. Execuções não serializáveis Restrições de integridade como critério de correção Trabalhar com 2 tipos de RI: explícitas: aquelas que podem ser formalmente definidas e facilmente expressadas; implícitas: aquelas que não são facilmente expressadas. Algumas transações necessitam visualizar o BD consistente com respeito a apenas restrições explícitas, enquanto que outras transações devem ver o banco consistente com relação a ambas. Execuções não serializáveis (2) Ex: um banco que suporta transações de crédito, transferência e auditoria. Uma restrição explícita seria que cada conta tenha saldo positivo Uma restrição implícita seria que qualquer transação que recupera dados de múltiplas contas veja uma soma correta dos saldos de todas as contas. Considere: T1 uma transação de transferência que transfere R$ 500,00 de uma conta A num site s1 para uma conta B num site s2. T2 uma transação de auditoria que retorna a soma das contas A e B Uma escala global não serializável S, resultante da execução concorrente de T1 e T2 As escalas locais S1 e S2, nos sites s1 e s2 respectivamente: S1: r1(a) w1(a) r2(a) S2: r2(b) r1(b) w1(b) Correção RS Nova noção de correção: RS-Correcteness garante que a consistência do BD é preservada e que cada transação vê um estado consistente do BD Transações RS Restrições explícitas e implícitas Transações não RS Apenas restrições explícitas Correção RS (2) Uma escala global S consistindo de transações RS e transações não RS é dita ser RS-correta se: preserva as restrições de integridade explícitas do banco de dados; transações em S visualizam estados consistentes com respeito às restrições de integridade explícitas nenhum ciclo no grafo de serialização de S contém uma transação RS (ou seja, nenhuma transação em S é serializada tanto antes como depois de uma transação RS). Convenções p/ o restante do trabalho Apenas restrições explícitas serão consideradas Assume-se que qualquer transação quando executada em isolamento, preserva as Restrições de Integridade do BD. Como resultado, qualquer escala serializável é dita RS correta. Aplicação em ambientes MDBS Novo protocolo: Forced Conflict 2PL ou FC2PL Deve ser seguido pelo GTM a fim de garantir a correção RS das escalas globais SGBSs locais que o adotam são denominados “2PLsites”. Os demais são chamados “não 2PL-sites”. O SGBD local em cada site si contém uma unidade de dados ticketi Bloqueios globais e locais. FC2PL Toda TG obtém o bloqueio global correspondente a um item de dado, junto ao GTM, antes de acessar o item de dado; Uma TG, uma vez que libera um bloqueio global, não obtém mais nenhum bloqueio global; Uma TG não pode obter um bloqueio global em um item de dado se um bloqueio conflitante é mantido no item por outra TG; Uma TG não libera um bloqueio global a não ser que todos os bloqueios locais correspondentes ao bloqueio global mantido pela TG para itens de dados em 2PL-sites terem sido obtidos; FC2PL (2) O bloqueio global para um item de dado acessado por uma TG em um não 2PL-site é liberado apenas após sua operação no item de dado completar a execução; Toda TG com operações em um não 2PL-site si faz um write(ticketi) antes de executar qualquer de suas operações no site; Qualquer transação não RS com operações em um 2PL-site si executa um read(ticketi); Transações RS executam write(ticketi) em qualquer 2PL site si . Teorema 1 Considere um MDBS onde todos os locais são Não2PL. Se o protocolo FC2PL for utilizado, então todas as escalas globais serão serializáveis. Teorema 2 Nenhum ciclo no grafo de serialização de uma escala FC2PL S contém transações RS. Teorema 3 Seja S uma escala FC2PL. Se não há restrições de integridade entre itens de dados locais e globais, e os programas de transação global possuem estrutura fixa, então S preserva a consistência do banco de dados, e as transações em S visualizam estados consistentes do banco de dados Conclusão O artigo propõe uma forma mais geral para garantir a correção de um MDBS; As escalas RS-corretas garantem, além das restrições de integridade, que as transações verão estados consistentes do banco; O protocolo proposto garante que as escalas são RScorretas, sem afetar a autonomia global dos sites.