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???
Download

Modelo de Multiversão MVCC - MultiVersion Concurrency