• Y
    Add OptionsUtil::LoadOptionsFromFile() API · e11f676e
    Yueh-Hsuan Chiang 提交于
    Summary:
    This patch adds OptionsUtil::LoadOptionsFromFile() and
    OptionsUtil::LoadLatestOptionsFromDB(), which allow developers
    to construct DBOptions and ColumnFamilyOptions from a RocksDB
    options file.  Note that most pointer-typed options such as
    merge_operator will not be constructed.
    
    With this API, developers no longer need to remember all the
    options in order to reopen an existing rocksdb instance like
    the following:
    
      DBOptions db_options;
      std::vector<std::string> cf_names;
      std::vector<ColumnFamilyOptions> cf_opts;
    
      // Load primitive-typed options from an existing DB
      OptionsUtil::LoadLatestOptionsFromDB(
          dbname, &db_options, &cf_names, &cf_opts);
    
      // Initialize necessary pointer-typed options
      cf_opts[0].merge_operator.reset(new MyMergeOperator());
      ...
    
      // Construct the vector of ColumnFamilyDescriptor
      std::vector<ColumnFamilyDescriptor> cf_descs;
      for (size_t i = 0; i < cf_opts.size(); ++i) {
        cf_descs.emplace_back(cf_names[i], cf_opts[i]);
      }
    
      // Open the DB
      DB* db = nullptr;
      std::vector<ColumnFamilyHandle*> cf_handles;
      auto s = DB::Open(db_options, dbname, cf_descs,
                        &handles, &db);
    
    Test Plan:
    Augment existing tests in column_family_test
    options_test
    db_test
    
    Reviewers: igor, IslamAbdelRahman, sdong, anthony
    
    Reviewed By: anthony
    
    Subscribers: dhruba, leveldb
    
    Differential Revision: https://reviews.facebook.net/D49095
    e11f676e
可在Tags中查看这些版本中当前仓库的状态.
HISTORY.md 28.1 KB