Details
-
Bug
-
Resolution: Fixed
-
Critical
-
feature-backlog
-
Security Level: Public
-
None
-
Untriaged
-
Unknown
-
June 30 - July 18
Description
The current WAL implementation allows uncommitted reads. Here is the example scenario:
1) Writer thread writes SET(K1, V1), but doesn't commit yet.
2) If a reader thread reads GET(K1), then it will get V1 from the WAL, which is not committed yet.
3) Writer thread writes additional SETs for other keys, and commits.
This can be an issue if an application needs transactional support with one writer and multiple readers.
However, the writer should be able to see its own uncommitted data.
We can fix this issue by disallowing other readers to see uncommitted reads from WAL.