Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Multiversion concurrency control

449 views

Published on

Multiversion concurrency control

Published in: Education
  • Login to see the comments

  • Be the first to like this

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?

×