stephentu / silo

Multicore in-memory storage engine
MIT License
372 stars 115 forks source link

commit TIDs use the wrong epoch number #3

Closed stephentu closed 11 years ago

stephentu commented 11 years ago

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.

stephentu commented 11 years ago

I believe this is fixed by the latest merge from eddie