1. 18 11月, 2015 13 次提交
  2. 17 11月, 2015 14 次提交
  3. 14 11月, 2015 2 次提交
    • V
      Reuse file iterators in tailing iterator when memtable is flushed · 7824444b
      Venkatesh Radhakrishnan 提交于
      Summary:
      Under a tailing workload, there were increased block cache
      misses when a memtable was flushed because we were rebuilding iterators
      in that case since the version set changed. This was exacerbated in the
      case of iterate_upper_bound, since file iterators which were over the
      iterate_upper_bound would have been deleted and are now brought back as
      part of the Rebuild, only to be deleted again. We now renew the iterators
      and only build iterators for files which are added and delete file
      iterators for files which are deleted.
      Refer to https://reviews.facebook.net/D50463 for previous version
      
      Test Plan: DBTestTailingIterator.TailingIteratorTrimSeekToNext
      
      Reviewers: anthony, IslamAbdelRahman, igor, tnovak, yhchiang, sdong
      
      Reviewed By: sdong
      
      Subscribers: yhchiang, march, dhruba, leveldb, lovro
      
      Differential Revision: https://reviews.facebook.net/D50679
      7824444b
    • V
      Make sure that CompactFiles does not run two parallel Level 0 compactions · 2ae4d7d7
      Venkatesh Radhakrishnan 提交于
      Summary:
      Since level 0 files can overlap, two level 0 compactions cannot
      run in parallel. Compact files needs to check this before running a
      compaction.
      
      Test Plan: CompactFilesTest.L0ConflictsFiles
      
      Reviewers: igor, IslamAbdelRahman, anthony, sdong, yhchiang
      
      Reviewed By: yhchiang
      
      Subscribers: dhruba, leveldb
      
      Differential Revision: https://reviews.facebook.net/D50079
      2ae4d7d7
  4. 13 11月, 2015 7 次提交
    • Y
      Add CheckOptionsCompatibility() API to options_util · d781da81
      Yueh-Hsuan Chiang 提交于
      Summary:
      Add CheckOptionsCompatibility() API to options_util that returns
      Status::OK if the input DBOptions and ColumnFamilyDescriptors
      are compatible with the latest options stored in the specified DB path.
      
      Test Plan: Added tests in options_util_test
      
      Reviewers: igor, anthony, IslamAbdelRahman, rven, sdong
      
      Reviewed By: sdong
      
      Subscribers: dhruba, leveldb
      
      Differential Revision: https://reviews.facebook.net/D50649
      d781da81
    • S
      Merge pull request #824 from yuslepukhin/try_ci_tests_on_daily · 2391b459
      Siying Dong 提交于
      Try running db_test during integration build
      2391b459
    • Y
      Fix a build break so tests can run · 2ab3e2df
      yuslepukhin 提交于
      2ab3e2df
    • Y
      Merge branch 'master' into try_ci_tests_on_daily · 247c49a4
      yuslepukhin 提交于
      247c49a4
    • Y
      Run tests imporvements · 935d1495
      yuslepukhin 提交于
        Add sequential rerun for any failed tests. Add env_test case.
        Limit concurrency
        Allow to specify individual tests
        Take $Limit into account when displaying number of tests
      935d1495
    • Y
      Fixed valgrind error in options_util_test · 5ac16300
      Yueh-Hsuan Chiang 提交于
      Summary:
      Fixed valgrind error in options_util_test by deleting the
      compaction_filter allocated from RandomInitCFOptions().
      
      Test Plan: valgrind --error-exitcode=2 --leak-check=full ./options_util_test
      
      Reviewers: anthony, sdong
      
      Reviewed By: sdong
      
      Subscribers: dhruba, leveldb
      
      Differential Revision: https://reviews.facebook.net/D50661
      5ac16300
    • N
      Don't merge WriteBatch-es if WAL is disabled · 6ce42dd0
      Nathan Bronson 提交于
      Summary:
      There's no need for WriteImpl to flatten the write batch group
      into a single WriteBatch if the WAL is disabled.  This diff moves the
      flattening into the WAL step, and skips flattening entirely if it isn't
      needed.  It's good for about 5% speedup on a multi-threaded workload
      with no WAL.
      
      This diff also adds clarifying comments about the chance for partial
      failure of WriteBatchInternal::InsertInto, and always sets bg_error_ if
      the memtable state diverges from the logged state or if a WriteBatch
      succeeds only partially.
      
      Benchmark for speedup:
        db_bench -benchmarks=fillrandom -threads=16 -batch_size=1 -memtablerep=skip_list -value_size=0 --num=200000 -level0_slowdown_writes_trigger=9999 -level0_stop_writes_trigger=9999 -disable_auto_compactions --max_write_buffer_number=8 -max_background_flushes=8 --disable_wal --write_buffer_size=160000000
      
      Test Plan: asserts + make check
      
      Reviewers: sdong, igor
      
      Reviewed By: igor
      
      Subscribers: dhruba
      
      Differential Revision: https://reviews.facebook.net/D50583
      6ce42dd0
  5. 12 11月, 2015 2 次提交
    • Y
      Fixed DBCompactionTest.SkipStatsUpdateTest · 56245ddc
      Yueh-Hsuan Chiang 提交于
      Summary:
      DBCompactionTest.SkipStatsUpdateTest relies on the number
      of files opened during the DB::Open process, but the persisting
      options file support altered this number and thus makes
      DBCompactionTest.SkipStatsUpdateTest in certain environment.
      
      This patch fixed this test failure.
      
      Test Plan: db_compaction_test
      
      Reviewers: igor, sdong, anthony, IslamAbdelRahman
      
      Subscribers: dhruba, leveldb
      
      Differential Revision: https://reviews.facebook.net/D50637
      56245ddc
    • 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
  6. 11 11月, 2015 2 次提交
    • Y
      Fixed build failure of RocksDBLite test on options_file_test.cc · e78389b5
      Yueh-Hsuan Chiang 提交于
      Summary: Fixed build failure of RocksDBLite test
      
      Test Plan: options_file_test
      
      Reviewers: igor, sdong, anthony, IslamAbdelRahman
      
      Subscribers: dhruba
      
      Differential Revision: https://reviews.facebook.net/D50595
      e78389b5
    • Y
      Enable RocksDB to persist Options file. · e114f0ab
      Yueh-Hsuan Chiang 提交于
      Summary:
      This patch allows rocksdb to persist options into a file on
      DB::Open, SetOptions, and Create / Drop ColumnFamily.
      Options files are created under the same directory as the rocksdb
      instance.
      
      In addition, this patch also adds a fail_if_missing_options_file in DBOptions
      that makes any function call return non-ok status when it is not able to
      persist options properly.
      
        // If true, then DB::Open / CreateColumnFamily / DropColumnFamily
        // / SetOptions will fail if options file is not detected or properly
        // persisted.
        //
        // DEFAULT: false
        bool fail_if_missing_options_file;
      
      Options file names are formatted as OPTIONS-<number>, and RocksDB
      will always keep the latest two options files.
      
      Test Plan:
      Add options_file_test.
      
      options_test
      column_family_test
      
      Reviewers: igor, IslamAbdelRahman, sdong, anthony
      
      Reviewed By: anthony
      
      Subscribers: dhruba
      
      Differential Revision: https://reviews.facebook.net/D48285
      e114f0ab