Implémentation de la fonctionnalité MVCC du SGBD Hekaton
La sémantique du programme est décrite dans le fichier '_project_report.pdf'.
La branche master
contient le programme exécutant la transaction (originale) newOrder avec un seul thread. Les autres branches sont utilisées pour les tests d’exactitude et de performances :
- Branche 'test-visibility-validation' : test de stabilité en lecture.
- Branche 'test-phantom-avoidance' : test de détection des fantômes.
- Branche 'test-cascaded-aborts : teste les abandons en cascade dans le contexte des dépendances de validation.
- « Test-scanning » de branche : testez la vitesse d'analyse du programme en analysant la table OrderLine plusieurs fois.
- Branche « lecture seule » : teste les performances des transactions en lecture seule.
- Branche « mise à jour uniquement » : teste les performances des transactions de mise à jour uniquement.
Dans les cas extrêmes, une transaction se comporte comme suit :
- SELECT : si les tuples requis n'existent pas, une transaction doit être abandonnée et annulée car les variables de cette instruction SELECT seront nécessaires ci-dessous.
- INSÉRER : si vous insérez un PK en double dans une table, la transaction doit être abandonnée et annulée.
- UPDATE et DELETE : en cas de mise à jour/suppression d'un tuple inexistant, l'instruction est ignorée.