Modelo de Multiversão

13
Modelo de Modelo de Multiversão Multiversão MVCC - MultiVersion MVCC - MultiVersion Concurrency Control Concurrency Control

description

Modelo de Multiversão. MVCC - MultiVersion Concurrency Control. Alunos: Ronald Bertele Sidinei da Silva. - PowerPoint PPT Presentation

Transcript of Modelo de Multiversão

Page 1: Modelo de Multiversão

Modelo de Modelo de MultiversãoMultiversão

MVCC - MultiVersion MVCC - MultiVersion Concurrency ControlConcurrency Control

Page 2: Modelo de Multiversão

Alunos: Ronald Alunos: Ronald BerteleBertele

Sidinei da Sidinei da SilvaSilva

Page 3: Modelo de Multiversão

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;

Page 4: Modelo de Multiversão

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);

Page 5: Modelo de Multiversão

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

Page 6: Modelo de Multiversão

DesvantagensDesvantagens

O MVCC ocasiona o aumento do tamanho das tabelas de forma muita rápida.

Page 7: Modelo de Multiversão

Tipos de MVCCTipos de MVCC

Visão Pessimista

PostgreSql

Visão Otimista

ZODB

Page 8: Modelo de Multiversão

FuncionamentoFuncionamento

Estado InicialEstado Inicial

Page 9: Modelo de Multiversão

FuncionamentoFuncionamento

Comando Sql que será Executado Comando Sql que será Executado

UPDATE FROM Clientes SET Debito = Debito - 2500 WHERE cod = 2;

Page 10: Modelo de Multiversão

FuncionamentoFuncionamento

Estado FinalEstado Final

Page 11: Modelo de Multiversão

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

Page 12: Modelo de Multiversão

Exemplo do VacuumExemplo do Vacuum

Page 13: Modelo de Multiversão

Dúvidas???Dúvidas???