A model which is meant to emulate Rattle's behavior and make it easy to write various scheduler policies and compare them.
I had to make some changes to the current Rattle behavior to support the Conservative scheduler and the issues around speculation only commands interacting with required commands. I think the biggest changes were storing a list of reads/writes for each file instead of compacting them, so we can discover all hazards for a file instead of just the latest one.
I'll take a look at this again to see if it can be simplified; it got more complicated as I changed features.
A model which is meant to emulate Rattle's behavior and make it easy to write various scheduler policies and compare them.
I had to make some changes to the current Rattle behavior to support the Conservative scheduler and the issues around speculation only commands interacting with required commands. I think the biggest changes were storing a list of reads/writes for each file instead of compacting them, so we can discover all hazards for a file instead of just the latest one.
I'll take a look at this again to see if it can be simplified; it got more complicated as I changed features.