rocksdb/utilities
Andres Notzli 1d20fa9d0f Fixed and simplified merge_helper
Summary:
MergeUntil was not reporting a success when merging an operand with
a Value/Deletion despite the comments in MergeHelper and CompactionJob
indicating otherwise. This lead to operands being written to the compaction
output unnecessarily:

M1 M2 M3 P M4 M5 --> (P+M1+M2+M3) M2 M3 M4 M5 (before the diff)
M1 M2 M3 P M4 M5 --> (P+M1+M2+M3) M4 M5 (after the diff)

In addition, the code handling Values/Deletion was basically identical.
This patch unifies the code. Finally, this patch also adds testing for
merge_helper.

Test Plan: make && make check

Reviewers: sdong, rven, yhchiang, tnovak, igor

Reviewed By: igor

Subscribers: tnovak, dhruba, leveldb

Differential Revision: https://reviews.facebook.net/D42351
2015-07-17 09:27:24 -07:00
..
backupable Ensure Windows build w/o port/port.h in public headers 2015-07-16 12:10:16 -07:00
checkpoint "make format" against last 10 commits 2015-07-13 13:50:18 -07:00
document Windows Port from Microsoft 2015-07-01 16:13:56 -07:00
flashcache Fix the compilation error in flashcache.cc on Mac 2015-04-07 15:27:23 -07:00
geodb "make format" against last 10 commits 2015-07-13 13:50:18 -07:00
leveldb_options Added CompatibleOptions for compatibility with LevelDB Options 2014-11-20 19:24:39 -08:00
merge_operators Fixed and simplified merge_helper 2015-07-17 09:27:24 -07:00
redis Windows Port from Microsoft 2015-07-01 16:13:56 -07:00
spatialdb Block spatial_db_test in ROCKSDB_LITE 2015-07-13 18:35:03 -07:00
transactions fix compile for optimistic_transaction_test under ROCKSDB_LITE 2015-07-13 16:42:40 -07:00
ttl Ensure Windows build w/o port/port.h in public headers 2015-07-16 12:10:16 -07:00
write_batch_with_index Windows Port from Microsoft 2015-07-01 16:13:56 -07:00
merge_operators.h Add appropriate LICENSE and Copyright message. 2013-10-16 17:48:41 -07:00