mirror of
https://github.com/facebook/rocksdb.git
synced 2024-11-26 07:30:54 +00:00
Remove an assertion for single-delete in MergeHelper::MergeUntil
Summary: Previously we have an assertion which triggers when we issue Merges after a single delete. However, merges after a single delete are unrelated to that single delete. Thus this behavior should be allowed. This will address a flakyness of db_stress. Test Plan: db_stress Reviewers: IslamAbdelRahman, sdong Reviewed By: sdong Subscribers: andrewkr, dhruba, leveldb Differential Revision: https://reviews.facebook.net/D64923
This commit is contained in:
parent
8cbe3e10ca
commit
040328a30d
|
@ -128,17 +128,8 @@ Status MergeHelper::MergeUntil(InternalIterator* iter,
|
||||||
|
|
||||||
assert(IsValueType(ikey.type));
|
assert(IsValueType(ikey.type));
|
||||||
if (ikey.type != kTypeMerge) {
|
if (ikey.type != kTypeMerge) {
|
||||||
if (ikey.type != kTypeValue && ikey.type != kTypeDeletion) {
|
|
||||||
// Merges operands can only be used with puts and deletions, single
|
|
||||||
// deletions are not supported.
|
|
||||||
assert(false);
|
|
||||||
// release build doesn't have asserts, so we return error status
|
|
||||||
return Status::InvalidArgument(
|
|
||||||
" Merges operands can only be used with puts and deletions, single "
|
|
||||||
"deletions are not supported.");
|
|
||||||
}
|
|
||||||
|
|
||||||
// hit a put/delete
|
// hit a put/delete/single delete
|
||||||
// => merge the put value or a nullptr with operands_
|
// => merge the put value or a nullptr with operands_
|
||||||
// => store result in operands_.back() (and update keys_.back())
|
// => store result in operands_.back() (and update keys_.back())
|
||||||
// => change the entry type to kTypeValue for keys_.back()
|
// => change the entry type to kTypeValue for keys_.back()
|
||||||
|
|
Loading…
Reference in a new issue