Multiversion	
Concurrency	
Control	(MVCC)	
O	lo	que	todo	el	mundo	usa	y	no	se	da	
cuenta	
Created	by	Pablo	Vicente
Concurrency..	what?
1981
Bibliografía	
Se	puede	decir	que	de	
ellos	nace	el	término	
MVCC.		
Uno	cita	al	otro,	aunque	
fue	el	segundo,	el	que	
sent...
Pero	primero,	CC	
Independencia	entre	transacciones.	•
	
En	caso	de	conflicto,	una	transacción	no	tendrá	efecto,	
hasta	qu...
Primera	aproximación	‑	CC	
		En	una	ejecución	
concurrente,	T1	y	T2	son	dos	
entornos	de	ejecución.	
confli	
CONFLICTO
	
E...
¿Por	qué	añadir	la	MV?	
Problema	WaW,	cúal	es	el	
válido?		
✓
Abortar	operaciones.	✓
Recuperar	antiguas	
versiones.	
✓
Ite...
¡MVCC!	
	Philip	A.	Bernstein	 David	P.	Reed
"Es	una	técnica	de	concurrencia	optimista	en	donde	ninguna	
tarea	o	hilo	es	bloqueado	mientras	se	realiza	una	operación,	
...
MVCC	by	Timestamp	
Marcas	de	tiempo	o	identificadores	de	transacción	
crecientes	(consistencia	transaccional)	
•
Mantiene	...
FACTS	
Cada	'write'	existoso	crea	
una	nueva	versión.	
•
El	puntero	apunta	a	la	
última	versión	válida.	
•
Sólo	crea	nueva...
Otros	MVCC	
Two	phase	locking	✓
	
Método	mixto	✓
Es	el	pesimista	del	grupo,	ya	que	
funciona	a	base	de	bloqueos.	
	
Igualm...
Vende	humos!	
Distributed	version	control	
=	MVCC	enriquecido	 	InnoDB	Multiversion	
(MySql)	
PostgreSQL	&	MVCC
Ejemplo	práctico	‑	PostgreSQL	
*Col	1	=	ID	de	transacción	que	la	
modificó.	
*Col	2	=	La	transacción	anterior	
a	Col	1.	
U...
¡MUCHAS	GRACIAS!	
		
	PREGUNTAS?
Prochain SlideShare
Chargement dans…5
×

Multiversion concurrency control

290 vues

Publié le

Multiversion concurrency control

Publié dans : Formation
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
290
Sur SlideShare
0
Issues des intégrations
0
Intégrations
4
Actions
Partages
0
Téléchargements
2
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Multiversion concurrency control

  1. 1. Multiversion Concurrency Control (MVCC) O lo que todo el mundo usa y no se da cuenta Created by Pablo Vicente
  2. 2. Concurrency.. what?
  3. 3. 1981
  4. 4. Bibliografía Se puede decir que de ellos nace el término MVCC. Uno cita al otro, aunque fue el segundo, el que sentó las bases. El último es en el que se basa este trabajo. Reed, David P. (1978) "Naming and Synchronization in a Decentralized Computer System" ✓ Bernstein, Philip A.; Goodman, Nathan (1981). "Concurrency Control in Distributed Database Systems" ✓ Bernstein, Philip A.; Hadzilacos, Vassos; Goodman, Nathan (1987). "Concurrency Control and Recovery in Database Systems" ✓ Y... nace MVCC!!
  5. 5. Pero primero, CC Independencia entre transacciones. • En caso de conflicto, una transacción no tendrá efecto, hasta que sea resuelto. • Ejecutar atomicamente cada transacción. •
  6. 6. Primera aproximación ‑ CC En una ejecución concurrente, T1 y T2 son dos entornos de ejecución. confli CONFLICTO El control de concurrencia debe decidir cual debe prevalecer. Uno de ellos deberá o esperar o hacer un roll‑back
  7. 7. ¿Por qué añadir la MV? Problema WaW, cúal es el válido? ✓ Abortar operaciones. ✓ Recuperar antiguas versiones. ✓ Items/ámbitos bloqueados? ✓ 1.‑Write 2.‑ Write
  8. 8. ¡MVCC! Philip A. Bernstein David P. Reed
  9. 9. "Es una técnica de concurrencia optimista en donde ninguna tarea o hilo es bloqueado mientras se realiza una operación, porque el otro hilo usa su propia copia (versión) del objeto dentro de una transacción." ‑ PostgreSQL MVCC ‑ El optimista
  10. 10. MVCC by Timestamp Marcas de tiempo o identificadores de transacción crecientes (consistencia transaccional) • Mantiene varias versiones del objeto. • En algunas BD's cada usuario tiene una instancia de ella. • El coste espacial se dispara y añadimos más complejidad al planificador. •
  11. 11. FACTS Cada 'write' existoso crea una nueva versión. • El puntero apunta a la última versión válida. • Sólo crea nuevas versiones la operación 'write'. • 7 Nuevo indice Versiones de item Indice actual
  12. 12. Otros MVCC Two phase locking ✓ Método mixto ✓ Es el pesimista del grupo, ya que funciona a base de bloqueos. Igualmente, el valor X, tendrá un duplicado para que pueda ser leido, mientras alguien está modificándolo. Sustituye las marcas de tiempo por listas de commits con las operaciones. Agrega el problema de la generación consistente de marcas de tiempo. Combina los dos métodos vistos anteriormente.
  13. 13. Vende humos! Distributed version control = MVCC enriquecido InnoDB Multiversion (MySql) PostgreSQL & MVCC
  14. 14. Ejemplo práctico ‑ PostgreSQL *Col 1 = ID de transacción que la modificó. *Col 2 = La transacción anterior a Col 1. UPDATE crea una nueva fila a partir de la anterior. • Conflicto: muestra las filas asociadas a esa transacción. • Hot Backups. Toma una instantánea de la BD antes de una query. • 15
  15. 15. ¡MUCHAS GRACIAS! PREGUNTAS?

×