Closed chenlx0 closed 2 years ago
it depends on how values are being encoded. the update should change just the fields present while leaving prior fields the same. if the current implementation stores all the fields for a given record in a single rocksdb entry, then it will need to read the existing entry to get the existing fields.
Thanks for your answers!
Hi, I recently stress tested Rocksdb on ycsb, and I found that the update operation in RocksDB client would call 'Get' function before 'Put' function:
https://github.com/brianfrankcooper/YCSB/blob/ce3eb9ce51c84ee9e236998cdd2cefaeb96798a8/rocksdb/src/main/java/site/ycsb/db/rocksdb/RocksDBClient.java#L271
That makes update operation more like a 'Read-Modify-Write' operation. However, the YCSB paper pointed out that the workload A updates are different from 'Read-Modify-Write', it should be blind writes:
Is it ok to remove Get operation in RocksDB updates ? thks.