You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
MB-34946: Remove prepare when receiving overwriting mutation
When a replica is backfilling from disk it will often be sent
a Mutation instead of a Commit. This Mutation logically commits the
prepare that the replica may already have. Currently the code will
overwrite the prepare with a mutation. This is not valid as the
replica may already have a mutation for this commit and a following
lookup in the HashTable would cause a precondition to fail as there
would now exist two commited StoredValues in the HashTable.
Instead, the replica should either remove the prepare (EP vBuckets)
or mark it as completed (Ephemeral vBuckets) and either add a new
mutation or overwrite the existing one. Update the setWithMeta and
deleteWithMeta functions that are called by the replica to process
this mutation instead of a commit to lookup both the prepare and
committed StoredValues and deal with them appropriately.
Change-Id: I0a42616a36bf50e92e67e93746574b616b97dc09
Reviewed-on: http://review.couchbase.org/111812
Reviewed-by: Dave Rigby <[email protected]>
Tested-by: Build Bot <[email protected]>
0 commit comments