Modelo de Multiversão MVCC - MultiVersion Concurrency Control Alunos: Ronald Bertele Sidinei da Silva q Sistema de controle de concorrência para aplicações concorrentes altamente escaláveis, onde ele visa manter a consistência dos dados em um Sistema Gerenciador de Banco de Dados; q Existem muitos Bancos de Dados que utilizam este tipo de controle como o PostgreSql, Firebird, HiperSonic, Oracle, SyBase, ZoDB entre outros; Vantagens q Os processos de leitura não bloqueiam processos de escrita e vice-versa; q Ele reduz drasticamente (às vezes, eliminando) a contenção entre transações concorrentes; q Ele diminui a paralisação parcial ou completa (deadlock); Vantagens Este modelo tem como objetivo auxiliar na implementação do padrão ACID (atomicidade, consistência, isolamento e durabilidade); q Este modelo garante melhora de performance em um ambiente onde vários usuários podem estar acessando os mesmos dados. q Desvantagens O MVCC ocasiona o aumento do tamanho das tabelas de forma muita rápida. q Tipos de MVCC q Visão Pessimista PostgreSql q Visão Otimista ZODB Funcionamento Estado Inicial Funcionamento Comando Sql que será Executado UPDATE FROM Clientes SET Debito = Debito - 2500 WHERE cod = 2; Funcionamento Estado Final Manutenção comando VACUUM q Limpa a sujeira das tabelas, e evita que fiquem vácuos nos locais onde existiam registros; q Quando executado, ele faz uma varredura na tabela em busca de dados marcados como inúteis e exclui-os, posteriormente, realoca os registros de forma que não fiquem espaços entre dois registros; q Dependendo da forma que for usado, ele atualiza as estatísticas utilizadas pelo otimizador para determinar o modo mais eficiente de executar uma consulta no PostgreSQL. Exemplo do Vacuum Dúvidas???