Upload
pablo-vicente-munuera
View
52
Download
0
Embed Size (px)
DESCRIPTION
Multiversion concurrency control
Citation preview
MultiversionConcurrencyControl(MVCC)Oloquetodoelmundousaynosedacuenta
CreatedbyPabloVicente
Concurrency..what?
1981
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!!
Peroprimero,CC
Independenciaentretransacciones.•
Encasodeconflicto,unatransacciónnotendráefecto,hastaquesearesuelto.
•
Ejecutaratomicamentecadatransacción.•
Primeraaproximación‑CC
Enunaejecuciónconcurrente,T1yT2sondosentornosdeejecución.
confliCONFLICTO
Elcontroldeconcurrenciadebedecidircualdebeprevalecer.Unodeellosdeberáoesperarohacerunroll‑back
¿PorquéañadirlaMV?
ProblemaWaW,cúaleselválido?
✓
Abortaroperaciones.✓
Recuperarantiguasversiones.
✓
Items/ámbitosbloqueados?✓
1.‑Write
2.‑Write
¡MVCC!
PhilipA.Bernstein DavidP.Reed
"Esunatécnicadeconcurrenciaoptimistaendondeningunatareaohiloesbloqueadomientrasserealizaunaoperación,porqueelotrohilousasupropiacopia(versión)delobjetodentrodeunatransacción."‑PostgreSQL
MVCC‑Eloptimista
MVCCbyTimestamp
Marcasdetiempooidentificadoresdetransaccióncrecientes(consistenciatransaccional)
•
Mantienevariasversionesdelobjeto.•
EnalgunasBD'scadausuariotieneunainstanciadeella.
•
Elcosteespacialsedisparayañadimosmáscomplejidadalplanificador.
•
FACTS
Cada'write'existosocreaunanuevaversión.
•
Elpunteroapuntaalaúltimaversiónválida.
•
Sólocreanuevasversioneslaoperación'write'.
•
7
Nuevoindice
Versionesdeitem
Indiceactual
OtrosMVCC
Twophaselocking✓
Métodomixto✓
Eselpesimistadelgrupo,yaquefuncionaabasedebloqueos.Igualmente,elvalorX,tendráunduplicadoparaquepuedaserleido,mientrasalguienestámodificándolo.
Sustituyelasmarcasdetiempoporlistasdecommitsconlasoperaciones.Agregaelproblemadelageneraciónconsistentedemarcasdetiempo.Combinalosdosmétodosvistosanteriormente.
Vendehumos!
Distributedversioncontrol=MVCCenriquecido InnoDBMultiversion
(MySql)
PostgreSQL&MVCC
Ejemplopráctico‑PostgreSQL
*Col1=IDdetransacciónquelamodificó.*Col2=LatransacciónanterioraCol1.
UPDATEcreaunanuevafilaapartirdelaanterior.
•
Conflicto:muestralasfilasasociadasaesatransacción.
•
HotBackups.TomaunainstantáneadelaBDantesdeunaquery.
•
15
¡MUCHASGRACIAS!
PREGUNTAS?