I have a made a great deal of progress with the algorithm. I have written the safety verification code. This presented a number of hurdles:
Firstly, migrating the code from my custom client back over to YCSB has been difficult, due to a number of threading problems.
Secondly, since I have to pull values out of the underlying database for checking, I have had to add value-reading functionality to the underlying clients.
Another issue (now solved) was that YCSB-generated entries to the database were not being escaped correctly somewhere in the build pipeline. This was a massive timesink, since I thought I had run into a concurrency bug. For now, all database field values entries are alphanumeric. This should be more than sufficient for testing. The lesson learned is that I must work on my systematic debugging skills.
Current (high-priority) tasks
The sequential consistency verification algorithm must be written. The algorithm requires that each operation can be traced back to its issuing process:
[To] verify sequential consistency, we need to know which
process issues which operation in the history, in contrast to the pre-
vious three consistency properties. In this section, we assume that
the history includes such information, and that we know in advance
the full set of processes that may issue operations. Both assump-
tions can be realized easily in practice.
Offline verification of sequential consistency is NP-complete if
writes can assign duplicate values [14, 27], but admits straight-
forward solutions if we assume that each write assigns a unique
value.
Due to the way that YCSB launches operations, this may require some cross-thread communication (this is a major hurdle).
Future (low-priority) tasks
The atomicity verification algorithm
Give value-reading functionality to each YCSB database client. I have already implemented (but not thoroughly tested) this for the CassandraClient10 class. I do not believe this is necessary for my thesis, but plan to contribute the necessary code to the open-source community once my thesis is complete.