Download - Modelo de Multiversão
![Page 1: Modelo de Multiversão](https://reader036.vdocuments.com.br/reader036/viewer/2022082422/5681492a550346895db66408/html5/thumbnails/1.jpg)
Modelo de Modelo de MultiversãoMultiversão
MVCC - MultiVersion MVCC - MultiVersion Concurrency ControlConcurrency Control
![Page 2: Modelo de Multiversão](https://reader036.vdocuments.com.br/reader036/viewer/2022082422/5681492a550346895db66408/html5/thumbnails/2.jpg)
Alunos: Ronald Alunos: Ronald BerteleBertele
Sidinei da Sidinei da SilvaSilva
![Page 3: Modelo de Multiversão](https://reader036.vdocuments.com.br/reader036/viewer/2022082422/5681492a550346895db66408/html5/thumbnails/3.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022082422/5681492a550346895db66408/html5/thumbnails/4.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022082422/5681492a550346895db66408/html5/thumbnails/5.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022082422/5681492a550346895db66408/html5/thumbnails/6.jpg)
DesvantagensDesvantagens
O MVCC ocasiona o aumento do tamanho das tabelas de forma muita rápida.
![Page 7: Modelo de Multiversão](https://reader036.vdocuments.com.br/reader036/viewer/2022082422/5681492a550346895db66408/html5/thumbnails/7.jpg)
Tipos de MVCCTipos de MVCC
Visão Pessimista
PostgreSql
Visão Otimista
ZODB
![Page 8: Modelo de Multiversão](https://reader036.vdocuments.com.br/reader036/viewer/2022082422/5681492a550346895db66408/html5/thumbnails/8.jpg)
FuncionamentoFuncionamento
Estado InicialEstado Inicial
![Page 9: Modelo de Multiversão](https://reader036.vdocuments.com.br/reader036/viewer/2022082422/5681492a550346895db66408/html5/thumbnails/9.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022082422/5681492a550346895db66408/html5/thumbnails/10.jpg)
FuncionamentoFuncionamento
Estado FinalEstado Final
![Page 11: Modelo de Multiversão](https://reader036.vdocuments.com.br/reader036/viewer/2022082422/5681492a550346895db66408/html5/thumbnails/11.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022082422/5681492a550346895db66408/html5/thumbnails/12.jpg)
Exemplo do VacuumExemplo do Vacuum
![Page 13: Modelo de Multiversão](https://reader036.vdocuments.com.br/reader036/viewer/2022082422/5681492a550346895db66408/html5/thumbnails/13.jpg)
Dúvidas???Dúvidas???