We're updating the issue view to help you get more done. 

Premature read (before log with new value gets synced with backups)

Description

I found that current RAMCloud read may return a value which is not replicated to backups.
If a master crashes between ObjectManager::writeObject() and sync(), the new data may have been read by other client. After crash recovery, the old data will appear.

The solution without messing up with HashBucketLock (bad for transactions and multi-op) would be checking the last committed log point for every read operation. If we read data not synced, we may wait or return STATUS_RETRY.

Environment

None

Status

Assignee

Unassigned

Reporter

Seo Jin Park

Labels

None

Priority

Minor