config: allow unsafe setting of config values

Allow callers to set config values even when there is no observer.

Signed-off-by: Sage Weil <sage@inktank.com>
os/FileStore: support osd_leveldb_* options via config_t::set_val()

Instead of feeding these values directly into the LevelDBStore, copy them
into the leveldb_* config options and let the implementation get them from
there.  This hides it more cleanly behind the interface.

Signed-off-by: Sage Weil <sage@inktank.com>
mon/MonitorDBStore: support mon_leveldb_* options via config_t::set_val()

Copy config options instead of poking behind LevelDBStore intrface.

Signed-off-by: Sage Weil <sage@inktank.com>
os/KeyValueDB: generic create(), test_init()

Let us create an implemenetation by name.  Include a test_init() method
that will instantiate an instance and verify it could start up.

Signed-off-by: Sage Weil <sage@inktank.com>
os/KeyValueDB: make compaction interface generic

Signed-off-by: Sage Weil <sage@inktank.com>
mon/MonitorDBStore: use generic KeyValueDB::create()

Signed-off-by: Sage Weil <sage@inktank.com>
os/FileStore: use generic KeyValueDB::create()

Signed-off-by: Sage Weil <sage@inktank.com>
add rocksdb support

Signed-off-by: xinxin shu <xinxin.shu@intel.com>
add rocksdb submodule
add --with-librocksdb-static configure options

with this options, ceph will build rocksdb from submodule

Signed-off-by: xinxin shu <xinxin.shu@intel.com>