Implementación de la función MVCC de Hekaton DBMS
La semántica del programa se describe en el archivo '_project_report.pdf'.
La rama master
contiene el programa que ejecuta la transacción (original) newOrder con un solo subproceso. Las otras ramas se utilizan para pruebas de corrección y rendimiento:
- Rama 'prueba-visibilidad-validación': prueba de estabilidad de lectura.
- Rama 'prueba-evitación-fantasma': prueba para la detección de fantasmas.
- Rama 'test-cascaded-aborts: prueba de abortos en cascada en el contexto de dependencias de confirmación.
- Rama 'escaneo de prueba': prueba la velocidad de escaneo del programa escaneando la tabla OrderLine varias veces.
- Rama 'solo lectura': prueba el rendimiento de transacciones de solo lectura.
- Rama 'solo actualización': prueba el rendimiento de las transacciones de solo actualización.
En casos extremos, una transacción se comporta de la siguiente manera:
- SELECT: si las tuplas requeridas no existen, una transacción debe cancelarse y revertirse porque las variables de esta instrucción SELECT se necesitarán a continuación.
- INSERTAR: si se inserta una PK duplicada en una tabla, la transacción debe cancelarse y revertirse.
- ACTUALIZAR y ELIMINAR: si actualiza/elimina una tupla no existente, la declaración se ignora.