rocksdb/options
Sagar Vemuri f0804db7f7 Make FIFO compaction options dynamically configurable
Summary:
ColumnFamilyOptions::compaction_options_fifo and all its sub-fields can be set dynamically now.

Some of the ways in which the fifo compaction options can be set are:
- `SetOptions({{"compaction_options_fifo", "{max_table_files_size=1024}"}})`
- `SetOptions({{"compaction_options_fifo", "{ttl=600;}"}})`
- `SetOptions({{"compaction_options_fifo", "{max_table_files_size=1024;ttl=600;}"}})`
- `SetOptions({{"compaction_options_fifo", "{max_table_files_size=51;ttl=49;allow_compaction=true;}"}})`

Most of the code has been made generic enough so that it could be reused later to make universal options (and other such nested defined-types) dynamic with very few lines of parsing/serializing code changes.
Introduced a few new functions like `ParseStruct`, `SerializeStruct` and `GetStringFromStruct`.
The duplicate code in `GetStringFromDBOptions` and `GetStringFromColumnFamilyOptions` has been moved into `GetStringFromStruct`. So they become just simple wrappers now.
Closes https://github.com/facebook/rocksdb/pull/3006

Differential Revision: D6058619

Pulled By: sagar0

fbshipit-source-id: 1e8f78b3374ca5249bb4f3be8a6d3bb4cbc52f92
2017-10-19 15:26:36 -07:00
..
cf_options.cc Make FIFO compaction options dynamically configurable 2017-10-19 15:26:36 -07:00
cf_options.h Make FIFO compaction options dynamically configurable 2017-10-19 15:26:36 -07:00
db_options.cc Make bytes_per_sync and wal_bytes_per_sync mutable 2017-09-27 17:49:45 -07:00
db_options.h Make bytes_per_sync and wal_bytes_per_sync mutable 2017-09-27 17:49:45 -07:00
options_helper.cc Make FIFO compaction options dynamically configurable 2017-10-19 15:26:36 -07:00
options_helper.h Make FIFO compaction options dynamically configurable 2017-10-19 15:26:36 -07:00
options_parser.cc Make FIFO compaction options dynamically configurable 2017-10-19 15:26:36 -07:00
options_parser.h Replace dynamic_cast<> 2017-07-28 16:27:16 -07:00
options_sanity_check.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
options_sanity_check.h Change RocksDB License 2017-07-15 16:11:23 -07:00
options_settable_test.cc Make FIFO compaction options dynamically configurable 2017-10-19 15:26:36 -07:00
options_test.cc Allow upgrades from nullptr to some merge operator 2017-10-04 09:57:23 -07:00
options.cc Use the default copy constructor in Options 2017-09-15 17:15:10 -07:00