rocksdb/db
Dhruba Borthakur 3754f2f4ff A major bug that was not considering the compaction score of the n-1 level.
Summary:
The method Finalize() recomputes the compaction score of each
level and then sorts these score from largest to smallest. The
idea is that the level with the largest compaction score will
be a better candidate for compaction.  There are usually very
few levels, and a bubble sort code was used to sort these
compaction scores. There existed a bug in the sorting code that
skipped looking at the score for the n-1 level. This meant that
even if the compaction score of the n-1 level is large, it will
not be picked for compaction.

This patch fixes the bug and also introduces "asserts" in the
code to detect any possible inconsistencies caused by future bugs.

This bug existed in the very first code change that introduced
multi-threaded compaction to the leveldb code. That version of
code was committed on Oct 19th via
1ca0584345

Test Plan: make clean check OPT=-g

Reviewers: emayanke, sheki, MarkCallaghan

Reviewed By: sheki

CC: leveldb

Differential Revision: https://reviews.facebook.net/D6837
2012-11-20 15:44:21 -08:00
..
builder.cc Allow having different compression algorithms on different levels. 2012-10-29 11:48:09 -07:00
builder.h A number of fixes: 2011-10-31 17:22:06 +00:00
c_test.c Make compression options configurable. These include window-bits, level and strategy for ZlibCompression 2012-11-02 11:26:39 -07:00
c.cc Make compression options configurable. These include window-bits, level and strategy for ZlibCompression 2012-11-02 11:26:39 -07:00
corruption_test.cc Fix all warnings generated by -Wall option to the compiler. 2012-11-06 14:07:31 -08:00
db_bench.cc Merge branch 'master' into performance 2012-11-14 21:39:52 -08:00
db_filesnapshot.cc The BackupAPI should also list the length of the manifest file. 2012-09-25 03:13:25 -07:00
db_impl_readonly.cc Add a readonly db 2012-11-07 14:19:48 -08:00
db_impl_readonly.h Add a readonly db 2012-11-07 14:19:48 -08:00
db_impl.cc enhance dbstress to simulate hard crash 2012-11-18 23:16:17 -08:00
db_impl.h enhance dbstress to simulate hard crash 2012-11-18 23:16:17 -08:00
db_iter.cc A number of fixes: 2011-10-31 17:22:06 +00:00
db_iter.h A number of fixes: 2011-10-31 17:22:06 +00:00
db_statistics.h Compilation error while compiling with OPT=-g 2012-11-11 00:20:40 -08:00
db_stats_logger.cc remove boost 2012-09-16 19:33:43 -07:00
db_test.cc Fix compilation error while compiling unit tests with OPT=-g 2012-11-19 13:16:46 -08:00
dbformat_test.cc Fix all warnings generated by -Wall option to the compiler. 2012-11-06 14:07:31 -08:00
dbformat.cc Added bloom filter support. 2012-04-17 08:36:46 -07:00
dbformat.h Make some variables configurable for each db instance 2012-06-27 14:36:31 -07:00
filename_test.cc Fix all warnings generated by -Wall option to the compiler. 2012-11-06 14:07:31 -08:00
filename.cc put log in a seperate dir 2012-09-06 17:52:08 -07:00
filename.h put log in a seperate dir 2012-09-06 17:52:08 -07:00
log_format.h A number of fixes: 2011-10-31 17:22:06 +00:00
log_reader.cc Fix all warnings generated by -Wall option to the compiler. 2012-11-06 14:07:31 -08:00
log_reader.h A number of fixes: 2011-10-31 17:22:06 +00:00
log_test.cc Fix all warnings generated by -Wall option to the compiler. 2012-11-06 14:07:31 -08:00
log_writer.cc A number of fixes: 2011-10-31 17:22:06 +00:00
log_writer.h A number of fixes: 2011-10-31 17:22:06 +00:00
memtable.cc This is the mega-patch multi-threaded compaction 2012-10-19 14:00:53 -07:00
memtable.h This is the mega-patch multi-threaded compaction 2012-10-19 14:00:53 -07:00
memtablelist.cc This is the mega-patch multi-threaded compaction 2012-10-19 14:00:53 -07:00
memtablelist.h This is the mega-patch multi-threaded compaction 2012-10-19 14:00:53 -07:00
repair.cc This is the mega-patch multi-threaded compaction 2012-10-19 14:00:53 -07:00
skiplist_test.cc Fix all warnings generated by -Wall option to the compiler. 2012-11-06 14:07:31 -08:00
skiplist.h This is the mega-patch multi-threaded compaction 2012-10-19 14:00:53 -07:00
snapshot.h A number of fixes: 2011-10-31 17:22:06 +00:00
table_cache.cc Add two more options: disable block cache and make table cache shard number configuable 2012-11-01 13:23:21 -07:00
table_cache.h Trigger read compaction only if seeks to storage are incurred. 2012-09-28 11:10:52 -07:00
version_edit_test.cc Make some variables configurable for each db instance 2012-06-27 14:36:31 -07:00
version_edit.cc Clean up compiler warnings generated by -Wall option. 2012-08-29 14:24:51 -07:00
version_edit.h This is the mega-patch multi-threaded compaction 2012-10-19 14:00:53 -07:00
version_set_reduce_num_levels.cc disable size compaction in ldb reduce_levels and added compression and file size parameter to it 2012-11-09 10:14:47 -08:00
version_set_test.cc Fix all warnings generated by -Wall option to the compiler. 2012-11-06 14:07:31 -08:00
version_set.cc A major bug that was not considering the compaction score of the n-1 level. 2012-11-20 15:44:21 -08:00
version_set.h Enhance manifest_dump to print each individual edit. 2012-11-19 12:04:35 -08:00
write_batch_internal.h added group commit; drastically speeds up mult-threaded synchronous write workloads 2012-03-08 16:23:21 -08:00
write_batch_test.cc Fix all warnings generated by -Wall option to the compiler. 2012-11-06 14:07:31 -08:00
write_batch.cc added group commit; drastically speeds up mult-threaded synchronous write workloads 2012-03-08 16:23:21 -08:00