In order to capture anti-dependencies, it is necessary for commit TID generation to use the current global epoch, not the worker's local epoch. Here is an example why (thanks to eddie for the counter-example):
(1) t1 begins in epoch 0
(2) t1 writes x => version 1 (in write set only)
(3) epoch changes to 1
(4) t2 reads x @ version 0
(5) t2 writes y
(6) t2 commits in epoch 1
(7) t1 commits in epoch 0.
The fix is easy, but I will not apply it until after the camera ready is submitted.
In order to capture anti-dependencies, it is necessary for commit TID generation to use the current global epoch, not the worker's local epoch. Here is an example why (thanks to eddie for the counter-example):
The fix is easy, but I will not apply it until after the camera ready is submitted.