rocksdb/db
Dhruba Borthakur 7632fdb5cb Support taking a configurable number of files from the same level to compact in a single compaction run.
Summary:
The compaction process takes some files from LevelK and
merges it into LevelK+1. The number of files it picks from
LevelK was capped such a way that the total amount of
data picked does not exceed the maxfilesize of that level.
This essentially meant that only one file from LevelK
is picked for a single compaction.

For bulkloads, we would like to take many many file from
LevelK and compact them using a single compaction run.

This patch introduces a option called the 'source_compaction_factor'
(similar to expanded_compaction_factor). It is a multiplier
that is multiplied by the maxfilesize of that level to arrive
at the limit that is used to throttle the number of source
files from LevelK.  For bulk loads, set source_compaction_factor
to a very high number so that multiple files from the same
level are picked for compaction in a single compaction.

The default value of source_compaction_factor is 1, so that
we can keep backward compatibilty with existing compaction semantics.

Test Plan: make clean check

Reviewers: emayanke, sheki

Reviewed By: emayanke

CC: leveldb

Differential Revision: https://reviews.facebook.net/D6867
2012-11-21 08:37:03 -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 Support taking a configurable number of files from the same level to compact in a single compaction run. 2012-11-21 08:37:03 -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 Support to disable background compactions on a database. 2012-11-20 21:12:06 -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 Support taking a configurable number of files from the same level to compact in a single compaction run. 2012-11-21 08:37:03 -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