1. 14 7月, 2015 5 次提交
  2. 12 7月, 2015 1 次提交
  3. 11 7月, 2015 6 次提交
  4. 10 7月, 2015 8 次提交
  5. 09 7月, 2015 3 次提交
    • D
      All of these are in the new code added past 3.10 · d8586ab2
      Dmitri Smirnov 提交于
           1) Crash in env_win.cc that prevented db_test run to completion and some new tests
           2) Fix new corruption tests in DBTest by allowing a shared trunction of files. Note that this is generally needed ONLY for tests.
           3) Close database so WAL is closed prior to inducing corruption similar to what we did within Corruption tests.
      d8586ab2
    • P
      Fix function name format according to google style · 4bed00a4
      Poornima Chozhiyath Raman 提交于
      Summary: Change the naming style of getter and setters according to Google C++ style in compaction.h file
      
      Test Plan: Compilation success
      
      Reviewers: sdong
      
      Reviewed By: sdong
      
      Subscribers: leveldb, dhruba
      
      Differential Revision: https://reviews.facebook.net/D41265
      4bed00a4
    • K
      Added multi WAL log testing to recovery tests. · e2e3d84b
      krad 提交于
      Summary: Currently there is no test in the suite to test the case where
      there are multiple WAL files and there is a corruption in one of them. We have
      tests for single WAL file corruption scenarios. Added tests to mock
      the scenarios for all combinations of recovery modes and corruption in
      specified file locations.
      
      Test Plan: Run make check
      
      Reviewers: sdong igor
      
      CC: leveldb@
      
      Task ID: #7501229
      
      Blame Rev:
      e2e3d84b
  6. 08 7月, 2015 13 次提交
  7. 07 7月, 2015 2 次提交
    • A
      Added tests for ExpandWhileOverlapping() · 58d7ab3c
      Andres Notzli 提交于
      Summary:
      This patch adds three test cases for ExpandWhileOverlapping()
      to the compaction_picker_test test suite.
      ExpandWhileOverlapping() only has an effect if the comparison
      function for the internal keys allows for overlapping user
      keys in different SST files on the same level. Thus, this
      patch adds a comparator based on sequence numbers to
      compaction_picker_test for the new test cases.
      
      Test Plan:
      - make compaction_picker_test && ./compaction_picker_test
        -> All tests pass
      - Replace body of ExpandWhileOverlapping() with `return true`
        -> Compile and run ./compaction_picker_test as before
        -> New tests fail
      
      Reviewers: sdong, yhchiang, rven, anthony, IslamAbdelRahman, kradhakrishnan, igor
      
      Reviewed By: igor
      
      Subscribers: dhruba, leveldb
      
      Differential Revision: https://reviews.facebook.net/D41277
      58d7ab3c
    • I
      Fix compaction_job_test · 155ce60d
      Igor Canadi 提交于
      Summary:
      Two issues:
      * the input keys to the compaction don't include sequence number.
      * sequence number is set to max(seq_num), but it should be set to max(seq_num)+1, because the condition here is strictly-larger (i.e. we will only zero-out sequence number if the DB's sequence number is strictly greater than the key's sequence number): https://github.com/facebook/rocksdb/blob/master/db/compaction_job.cc#L830
      
      Test Plan: make compaction_job_test && ./compaction_job_test
      
      Reviewers: sdong, lovro
      
      Reviewed By: lovro
      
      Subscribers: dhruba, leveldb
      
      Differential Revision: https://reviews.facebook.net/D41247
      155ce60d
  8. 06 7月, 2015 1 次提交
    • L
      Replace std::priority_queue in MergingIterator with custom heap · b6655a67
      lovro 提交于
      Summary:
      While profiling compaction in our service I noticed a lot of CPU (~15% of compaction) being spent in MergingIterator and key comparison.  Looking at the code I found MergingIterator was (understandably) using std::priority_queue for the multiway merge.
      
      Keys in our dataset include sequence numbers that increase with time.  Adjacent keys in an L0 file are very likely to be adjacent in the full database.  Consequently, compaction will often pick a chunk of rows from the same L0 file before switching to another one.  It would be great to avoid the O(log K) operation per row while compacting.
      
      This diff replaces std::priority_queue with a custom binary heap implementation.  It has a "replace top" operation that is cheap when the new top is the same as the old one (i.e. the priority of the top entry is decreased but it still stays on top).
      
      Test Plan:
      make check
      
      To test the effect on performance, I generated databases with data patterns that mimic what I describe in the summary (rows have a mostly increasing sequence number).  I see a 10-15% CPU decrease for compaction (and a matching throughput improvement on tmpfs).  The exact improvement depends on the number of L0 files and the amount of locality.  Performance on randomly distributed keys seems on par with the old code.
      
      Reviewers: kailiu, sdong, igor
      
      Reviewed By: igor
      
      Subscribers: yoshinorim, dhruba, tnovak
      
      Differential Revision: https://reviews.facebook.net/D29133
      b6655a67
  9. 03 7月, 2015 1 次提交