Post on 15-Jan-2016
description
Modelo de Modelo de MultiversãoMultiversão
MVCC - MultiVersion MVCC - MultiVersion Concurrency ControlConcurrency Control
Alunos: Ronald Alunos: Ronald BerteleBertele
Sidinei da Sidinei da SilvaSilva
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;
Existem muitos Bancos de Dados que utilizam este tipo de controle como o PostgreSql, Firebird, HiperSonic, Oracle, SyBase, ZoDB entre outros;
VantagensVantagens Os processos de leitura não bloqueiam processos de escrita e vice-versa;
Ele reduz drasticamente (às vezes, eliminando) a contenção entre transações concorrentes;
Ele diminui a paralisação parcial ou completa (deadlock);
Este modelo tem como objetivo auxiliar na implementação do padrão ACID (atomicidade, consistência, isolamento e durabilidade);
Este modelo garante melhora de performance em um ambiente onde vários usuários podem estar acessando os mesmos dados.
VantagensVantagens
DesvantagensDesvantagens
O MVCC ocasiona o aumento do tamanho das tabelas de forma muita rápida.
Tipos de MVCCTipos de MVCC
Visão Pessimista
PostgreSql
Visão Otimista
ZODB
FuncionamentoFuncionamento
Estado InicialEstado Inicial
FuncionamentoFuncionamento
Comando Sql que será Executado Comando Sql que será Executado
UPDATE FROM Clientes SET Debito = Debito - 2500 WHERE cod = 2;
FuncionamentoFuncionamento
Estado FinalEstado Final
comandocomando VACUUMVACUUM
Limpa a sujeira das tabelas, e evita que fiquem vácuos nos locais onde existiam registros;
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;
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.
ManutençãoManutenção
Exemplo do VacuumExemplo do Vacuum
Dúvidas???Dúvidas???