1. 09 12月, 2015 4 次提交
  2. 08 12月, 2015 6 次提交
    • A
      Support marking snapshots for write-conflict checking · ec704aaf
      agiardullo 提交于
      Summary:
      D50475 enables using SST files for transaction write-conflict checking.  In order for this to work, we need to make sure not to compact out SingleDeletes when there is an earlier transaction snapshot(D50295).  If there is a long-held snapshot, this could reduce the benefit of the SingleDelete optimization.
      
      This diff allows Transactions to mark snapshots as being used for write-conflict checking.  Then, during compaction, we will be able to optimize SingleDeletes better in the future.
      
      This diff adds a flag to SnapshotImpl which is used by Transactions.  This diff also passes the earliest write-conflict snapshot's sequence number to CompactionIterator.  This diff does not actually change Compaction (after this diff is pushed, D50295 will be able to use this information).
      
      Test Plan: no behavior change, ran existing tests
      
      Reviewers: rven, kradhakrishnan, yhchiang, IslamAbdelRahman, sdong
      
      Reviewed By: sdong
      
      Subscribers: dhruba, leveldb
      
      Differential Revision: https://reviews.facebook.net/D51183
      ec704aaf
    • S
      Fix occasional failure of DBTest.DynamicCompactionOptions · 770dea93
      sdong 提交于
      Summary: DBTest.DynamicCompactionOptions ocasionally fails during valgrind run. We sent a sleeping task to block compaction thread pool but we don't wait it to run.
      
      Test Plan: Run the test multiple times in an environment which can cause failure.
      
      Reviewers: rven, kradhakrishnan, igor, IslamAbdelRahman, anthony, yhchiang
      
      Reviewed By: yhchiang
      
      Subscribers: leveldb, dhruba
      
      Differential Revision: https://reviews.facebook.net/D51687
      770dea93
    • S
      Revert "Fix a race condition in persisting options" · f307036b
      sdong 提交于
      This reverts commit 2fa3ed51. It breaks RocksDB lite build
      f307036b
    • Y
      Fix a race condition in persisting options · 2fa3ed51
      Yueh-Hsuan Chiang 提交于
      Summary:
      This patch fix a race condition in persisting options which will cause a crash when:
      
      * Thread A obtain cf options and start to persist options based on that cf options.
      * Thread B kicks in and finish DropColumnFamily and delete cf_handle.
      * Thread A wakes up and tries to finish the persisting options and crashes.
      
      Test Plan: Add a test in column_family_test that can reproduce the crash
      
      Reviewers: anthony, IslamAbdelRahman, rven, kradhakrishnan, sdong
      
      Reviewed By: sdong
      
      Subscribers: dhruba, leveldb
      
      Differential Revision: https://reviews.facebook.net/D51609
      2fa3ed51
    • V
      Fix valgrind failures in 3 tests in db_compaction_test due to new skiplist changes · f276c3a8
      Venkatesh Radhakrishnan 提交于
      Summary:
      Several tests in db_compaction_test are failing with aborts in
      valgrind. These are LevelCompactionThirdPath, LevelCompactionPathUse and
      CompressLevelCompaction. We now use the SpecialSkipListFactory to make
      them more deterministic
      
      Test Plan: valgrind
      
      Reviewers: anthony, yhchiang, kradhakrishnan, IslamAbdelRahman, sdong
      
      Reviewed By: sdong
      
      Subscribers: dhruba, leveldb
      
      Differential Revision: https://reviews.facebook.net/D51663
      f276c3a8
    • S
      Fix undeterministic failure of ColumnFamilyTest.DifferentWriteBufferSizes · 291088ae
      sdong 提交于
      Summary: After the skip list optimization, ColumnFamilyTest.DifferentWriteBufferSizes can occasionally fail with flush triggering of column family 3. Insert more data to it to make sure flush will trigger.
      
      Test Plan: Run it multiple times with both of jemaloc on and off and see it always passes. (Without thd commit the run with jemalloc fails with chance of about one in two)
      
      Reviewers: rven, yhchiang, IslamAbdelRahman, anthony, kradhakrishnan, igor
      
      Reviewed By: igor
      
      Subscribers: leveldb, dhruba
      
      Differential Revision: https://reviews.facebook.net/D51645
      291088ae
  3. 05 12月, 2015 3 次提交
    • I
      Fix db_universal_compaction_test · a9ca9107
      Islam AbdelRahman 提交于
      Summary:
      db_universal_compaction_test is still failing because of
      UniversalCompactionNumLevels/DBTestUniversalCompaction.UniversalCompactionSecondPathRatio/0
      
      https://travis-ci.org/facebook/rocksdb/jobs/94949919
      
      Use same approach to fix other tests to fix this test
      
      Test Plan: Run ./db_universal_compaction_test on mac and make sure all the tests pass
      
      Reviewers: kradhakrishnan, yhchiang, rven, anthony, sdong
      
      Reviewed By: sdong
      
      Subscribers: dhruba
      
      Differential Revision: https://reviews.facebook.net/D51591
      a9ca9107
    • K
      Build break fix. · d3bb572d
      krad 提交于
      Summary: Skip list now cannot estimate memory across allocators
      consistently and hence triggers flush at different time. This breaks certain
      unit tests.
      
      The fix is to adopt key count instead of size for flush.
      
      Test Plan: Ran test on dev box and mac (where it used to fail)
      
      Reviewers: sdong
      
      CC: leveldb@
      
      Task ID: #9273334
      
      Blame Rev:
      d3bb572d
    • J
      Added callback notification when a snapshot is created · b28b7c6d
      Jay Edgar 提交于
      Summary: When SetSnapshot() is used the caller immediately knows a snapshot has been created, but when SetSnapshotOnNextOperation() is used the caller needs a way to get notified when that snapshot has been generated.  This creates an interface that the client can implement that will be called at the time the snapshot is created.
      
      Test Plan: Added a new SetSnapshotOnNextOperationWithNotification test into the transaction_test.
      
      Reviewers: sdong, anthony
      
      Reviewed By: anthony
      
      Subscribers: yoshinorim, leveldb, dhruba
      
      Differential Revision: https://reviews.facebook.net/D51177
      b28b7c6d
  4. 04 12月, 2015 2 次提交
    • A
      added public api to schedule flush/compaction, code to prevent race with db::open · e8180f99
      Alex Yang 提交于
      Summary:
      Fixes T8781168.
      
      Added a new function EnableAutoCompactions in db.h to be publicly
      avialable.  This allows compaction to be re-enabled after disabling it via
      SetOptions
      
      Refactored code to set the dbptr earlier on in TransactionDB::Open and DB::Open
      Temporarily disable auto_compaction in TransactionDB::Open until dbptr is set to
      prevent race condition.
      
      Test Plan:
      Ran make all check
      
      verified fix on myrocks side:
      was able to reproduce the seg fault with
      ../tools/mysqltest.sh --mem --force rocksdb.drop_table
      
      method was to manually sleep the thread after DB::Open but before TransactionDB ptr was
      assigned in transaction_db_impl.cc:
        DB::Open(db_options, dbname, column_families_copy, handles, &db);
        clock_t goal = (60000 * 10) + clock();
        while (goal > clock());
        ...dbptr(aka rdb) gets assigned below
      
      verified my changes fixed the issue.
      
      Also added unit test 'ToggleAutoCompaction' in transaction_test.cc
      
      Reviewers: hermanlee4, anthony
      
      Reviewed By: anthony
      
      Subscribers: alex, dhruba
      
      Differential Revision: https://reviews.facebook.net/D51147
      e8180f99
    • I
      Merge pull request #865 from yuslepukhin/fix_db_table_properties_test · 19b1201b
      Islam AbdelRahman 提交于
      Avoid empty ranges vector with subsequent zero element access
      19b1201b
  5. 03 12月, 2015 3 次提交
  6. 02 12月, 2015 3 次提交
    • S
      Relax verification condition of DBTest.SuggestCompactRangeTest · bcd7bd12
      sdong 提交于
      Summary: Verifiction condition of DBTest.SuggestCompactRangeTest is too strict. Based on key distribution, we might have more small files in last level. Not check number of files in the last level.
      
      Test Plan: Run DBTest.SuggestCompactRangeTest with both of jemalloc on and off.
      
      Reviewers: rven, IslamAbdelRahman, yhchiang, kradhakrishnan, igor, anthony
      
      Reviewed By: anthony
      
      Subscribers: leveldb, dhruba
      
      Differential Revision: https://reviews.facebook.net/D51501
      bcd7bd12
    • S
      DBTest.DynamicCompactionOptions: More deterministic and readable · f9103d9a
      sdong 提交于
      Summary: DBTest.DynamicCompactionOptions sometimes fails the assert but I can't repro it locally. Make it more deterministic and readable and see whether the problem is still there.
      
      Test Plan: Run tht test and make sure it passes
      
      Reviewers: kradhakrishnan, yhchiang, igor, rven, IslamAbdelRahman, anthony
      
      Reviewed By: anthony
      
      Subscribers: leveldb, dhruba
      
      Differential Revision: https://reviews.facebook.net/D51309
      f9103d9a
    • S
      Fix DBCompactionTestWithParam.CompactionTrigger in non-jemalloc build. · 0ad68518
      sdong 提交于
      Summary: DBCompactionTestWithParam.CompactionTrigger fails in non-jemalloc build, after the skip list memtable change. Fix it by making mem table flush trigger by number of entries.
      
      Test Plan: Run the test using both of jemalloc and non-jemalloc build.
      
      Reviewers: anthony, IslamAbdelRahman, rven, kradhakrishnan, igor, yhchiang
      
      Reviewed By: yhchiang
      
      Subscribers: leveldb, dhruba
      
      Differential Revision: https://reviews.facebook.net/D51471
      0ad68518
  7. 01 12月, 2015 9 次提交
  8. 26 11月, 2015 3 次提交
  9. 25 11月, 2015 6 次提交
    • S
      Reduce extra key comparision in DBIter::Next() · 33e0c938
      sdong 提交于
      Summary: Now DBIter::Next() always compares with current key with itself first, which is unnecessary if the last key is not a merge key. I made the change and didn't see db_iter_test fails. Want to hear whether people have any idea what I miss.
      
      Test Plan: Run all unit tests
      
      Subscribers: leveldb, dhruba
      
      Differential Revision: https://reviews.facebook.net/D48279
      33e0c938
    • N
      InlineSkipList part 3/3 - new skiplist type that colocates key and node · 9a9d4759
      Nathan Bronson 提交于
      Summary:
      This diff completes the creation of InlineSkipList<Cmp>, which is like
      SkipList<const char*, Cmp> but it always allocates the key contiguously
      with the node.  This allows us to remove the pointer from the node
      to the key.  As a result the memory usage of the skip list is reduced
      (by 1 to sizeof(void*) bytes depending on the padding required to align
      the key storage), cache locality is improved, and we halve the number
      of calls to the allocator.
      
      For skip lists whose keys are freshly-allocated const char*,
      InlineSkipList is stricly preferrable to SkipList.  This diff doesn't
      replace SkipList, however, because some of the use cases of SkipList in
      RocksDB are either character sequences that are not allocated at the
      same time as the skip list node allocation (for example
      hash_linklist_rep) or have different key types (for example
      write_batch_with_index).  Taking advantage of inline allocation for
      those cases is left to future work.
      
      The perf win is biggest for small values.  For single-threaded CPU-bound
      (32M fillrandom operations with no WAL log) with 16 byte keys and 0 byte
      values, the db_bench perf goes from ~310k ops/sec to ~410k ops/sec.  For
      large values the improvement is less pronounced, but seems to be between
      5% and 10% on the same configuration.
      
      Test Plan: make check
      
      Reviewers: igor, sdong
      
      Reviewed By: sdong
      
      Subscribers: dhruba
      
      Differential Revision: https://reviews.facebook.net/D51123
      9a9d4759
    • N
      InlineSkipList - part 2/3 · 52017295
      Nathan Bronson 提交于
      Summary:
      This diff is 2/3 in a sequence that introduces a skip list optimized
      for a key that is a freshly-allocated const char*.  The change is broken
      into pieces to make it easier to review.  This piece removes the Key
      template type, introduces the AllocateKey interface, and changes the
      unit test from using uint64_t as the Key type to using pointers to an 8
      byte blob.
      
      Test Plan: unit test
      
      Reviewers: igor, sdong
      
      Reviewed By: sdong
      
      Subscribers: dhruba
      
      Differential Revision: https://reviews.facebook.net/D51285
      52017295
    • N
      InlineSkipList - part 1/3 · 78812ec6
      Nathan Bronson 提交于
      Summary:
      This diff is 1/3 in a sequence that introduces a skip list optimized for
      a key that is a freshly-allocated const char*.  The diff is broken into
      pieces to make it easier to review.  This piece only introduces the new
      type by copying the existing SkipList, with mechanical naming changes
      and reformatting.
      
      Test Plan: new unit test
      
      Reviewers: igor, sdong
      
      Reviewed By: sdong
      
      Subscribers: dhruba
      
      Differential Revision: https://reviews.facebook.net/D51279
      78812ec6
    • I
      Merge pull request #855 from yuslepukhin/enable_3rdparty_override · ffb466da
      Igor Canadi 提交于
      Enable override to 3rd party linkage
      ffb466da
    • D
      Enable override to 3rd party linkage · 10d257d6
      Dmitri Smirnov 提交于
      10d257d6
  10. 21 11月, 2015 1 次提交
    • A
      Fix race condition that causes valgrind failures · c5b46730
      agiardullo 提交于
      Summary: DBTest.DynamicLevelCompressionPerLevel2 sometimes fails during valgrind runs.  This causes our valgrind tests to fail.  Not sure what the best fix is for this test, but hopefully this simple change is sufficient.
      
      Test Plan: run test
      
      Reviewers: sdong
      
      Reviewed By: sdong
      
      Subscribers: dhruba, leveldb
      
      Differential Revision: https://reviews.facebook.net/D51111
      c5b46730