15
Multiversion Concurrency Control (MVCC) O lo que todo el mundo usa y no se da cuenta Created by Pablo Vicente

Multiversion concurrency control

Embed Size (px)

DESCRIPTION

Multiversion concurrency control

Citation preview

Page 1: Multiversion concurrency control

MultiversionConcurrencyControl(MVCC)Oloquetodoelmundousaynosedacuenta

CreatedbyPabloVicente

Page 2: Multiversion concurrency control

Concurrency..what?

Page 3: Multiversion concurrency control

1981

Page 4: Multiversion concurrency control

Bibliografía

SepuededecirquedeellosnaceeltérminoMVCC.

Unocitaalotro,aunquefueelsegundo,elquesentólasbases.

Elúltimoesenelquesebasaestetrabajo.

Reed,DavidP.(1978)"NamingandSynchronizationinaDecentralizedComputerSystem"

Bernstein,PhilipA.;Goodman,Nathan(1981)."ConcurrencyControlinDistributedDatabaseSystems"

Bernstein,PhilipA.;Hadzilacos,Vassos;Goodman,Nathan(1987)."ConcurrencyControlandRecoveryinDatabaseSystems"

Y...naceMVCC!!

Page 5: Multiversion concurrency control

Peroprimero,CC

Independenciaentretransacciones.•

Encasodeconflicto,unatransacciónnotendráefecto,hastaquesearesuelto.

Ejecutaratomicamentecadatransacción.•

Page 6: Multiversion concurrency control

Primeraaproximación‑CC

Enunaejecuciónconcurrente,T1yT2sondosentornosdeejecución.

confliCONFLICTO

Elcontroldeconcurrenciadebedecidircualdebeprevalecer.Unodeellosdeberáoesperarohacerunroll‑back

Page 7: Multiversion concurrency control

¿PorquéañadirlaMV?

ProblemaWaW,cúaleselválido?

Abortaroperaciones.✓

Recuperarantiguasversiones.

Items/ámbitosbloqueados?✓

1.‑Write

2.‑Write

Page 8: Multiversion concurrency control

¡MVCC!

PhilipA.Bernstein DavidP.Reed

Page 9: Multiversion concurrency control

"Esunatécnicadeconcurrenciaoptimistaendondeningunatareaohiloesbloqueadomientrasserealizaunaoperación,porqueelotrohilousasupropiacopia(versión)delobjetodentrodeunatransacción."‑PostgreSQL

MVCC‑Eloptimista

Page 10: Multiversion concurrency control

MVCCbyTimestamp

Marcasdetiempooidentificadoresdetransaccióncrecientes(consistenciatransaccional)

Mantienevariasversionesdelobjeto.•

EnalgunasBD'scadausuariotieneunainstanciadeella.

Elcosteespacialsedisparayañadimosmáscomplejidadalplanificador.

Page 11: Multiversion concurrency control

FACTS

Cada'write'existosocreaunanuevaversión.

Elpunteroapuntaalaúltimaversiónválida.

Sólocreanuevasversioneslaoperación'write'.

7

Nuevoindice

Versionesdeitem

Indiceactual

Page 12: Multiversion concurrency control

OtrosMVCC

Twophaselocking✓

Métodomixto✓

Eselpesimistadelgrupo,yaquefuncionaabasedebloqueos.Igualmente,elvalorX,tendráunduplicadoparaquepuedaserleido,mientrasalguienestámodificándolo.

Sustituyelasmarcasdetiempoporlistasdecommitsconlasoperaciones.Agregaelproblemadelageneraciónconsistentedemarcasdetiempo.Combinalosdosmétodosvistosanteriormente.

Page 13: Multiversion concurrency control

Vendehumos!

Distributedversioncontrol=MVCCenriquecido InnoDBMultiversion

(MySql)

PostgreSQL&MVCC

Page 14: Multiversion concurrency control

Ejemplopráctico‑PostgreSQL

*Col1=IDdetransacciónquelamodificó.*Col2=LatransacciónanterioraCol1.

UPDATEcreaunanuevafilaapartirdelaanterior.

Conflicto:muestralasfilasasociadasaesatransacción.

HotBackups.TomaunainstantáneadelaBDantesdeunaquery.

15

Page 15: Multiversion concurrency control

¡MUCHASGRACIAS!

PREGUNTAS?