Summary of work done:
- Started by writing a new class to support multiple key objects and modifying the existing object class to reflect the same format in the log. Things got messy and confusing.
- Finally replaced the existing object class to support variable number of keys. Now the solution is much cleaner
- Most of the existing unit tests that used single keys had to be fixed to adhere to the new object format.
- Implemented a new sub-class of Buffer called ObjectBuffer that understands the new object format.
- Clients can invoke operations on this subclass object after the completion of a read RPC to parse out specific fields - keys/data blob.
Pending:
- Fix muli-write RPC to support the new format and correspondingly, a couple of unit tests.
- Get code review done.
- Changes for readRpc:
- Option1: new RPC that takes the subclass of Buffer as the argument ---> seems to be a cleaner and more unambiguous approach
- Option2: modify existing RPC and pass a 'value' only flag
- Run clusterperf basic to see what read performance is now – overhead of the new structure/code