tpcc-runner
tpcc-runner copied to clipboard
An implementation of various in-memory concurrency control protocols
Update README to require `>= g++-10` for compilation.
There are a few ways to implement YCSB in transactional systems. 1. Read, Update, RMW are executed separately on different transactions and the portion of each transaction is decided by...
There are too many protocols and benchmarks right now that it is hard to test before pushing it. Need to set up a CI as soon as possible,
https://github.com/wattlebirdaz/tpcc-runner/blob/fdfc8f0759705e7a95989557fe6837842af44871/protocols/nowait/include/nowait.hpp#L68-L135 Unlocking the next-key in insert operation causes unlocking of read-lock if a read to the next-key precedes the insert. To fix this, a method to downgrade locks from W->R...
https://github.com/wattlebirdaz/tpcc-runner/blob/4730c4c1476349dcada8f5f985764b86971d432e/protocols/nowait/include/nowait.hpp#L101-L105 For safety reasons, use the constructor for initializing allocated memory. (`Object* obj = new (mem_addr) Object (args)`)
Implement rollback in the pre-commit phase using Resource Acquisition Is Initialization (RAII) might be better to avoid redundant code. ``` struct Rollback { Rollback(MVTO* self) : self(self) {} ~Rollback() {...