Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

Multiversion concurrency control

467 visualizaciones

Publicado el

Multiversion concurrency control

Publicado en: Educación
  • Inicia sesión para ver los comentarios

  • Sé el primero en recomendar esto

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?

×