I noticed that there is a hole in my logic when faced with region server failures.
Since the WALEdits are applied to the WAL piece by piece what can happen is that the region server applied the WALEdits of some of the mutations, and then dies before it can apply the edits of the rest of the mutations.
The region server who is picking up the region will replay those edit and hence clients picking up the KVs from the recovering region server will see the operation partially applied.
The fact that the MVCC write point was not forwarded by the first region server is irrelevant and not known to the recovering region server.
Other operation (Increment/Append) also have correctness issues (albeit different) in failure scenarios.
HBASE-5203. Work on this would not be trivial. What's the general feeling: Disable this feature until this is fixed? Or leave it enabled, since it is in principle not safer than Increment or ICV?