1. 01 12月, 2015 6 次提交
    • S
      Fix DBTest.SuggestCompactRangeTest for disable jemalloc case · ef8ed368
      sdong 提交于
      Summary: DBTest.SuggestCompactRangeTest fails for the case when jemalloc is disabled, including ASAN and valgrind builds. It is caused by the improvement of skip list, which allocates different size of nodes for a new records. Fix it by using a special mem table that triggers a flush by number of entries. In that way the behavior will be consistent for all allocators.
      
      Test Plan: Run the test with both of DISABLE_JEMALLOC=1 and 0
      
      Reviewers: anthony, rven, yhchiang, kradhakrishnan, igor, IslamAbdelRahman
      
      Reviewed By: IslamAbdelRahman
      
      Subscribers: leveldb, dhruba
      
      Differential Revision: https://reviews.facebook.net/D51423
      ef8ed368
    • S
      DB to only flush the column family with the largest memtable while... · db320b1b
      sdong 提交于
      DB to only flush the column family with the largest memtable while option.db_write_buffer_size is hit
      
      Summary: When option.db_write_buffer_size is hit, we currently flush all column families. Move to flush the column family with the largest active memt table instead. In this way, we can avoid too many small files in some cases.
      
      Test Plan: Modify test DBTest.SharedWriteBuffer to work with the updated behavior
      
      Reviewers: kradhakrishnan, yhchiang, rven, anthony, IslamAbdelRahman, igor
      
      Reviewed By: igor
      
      Subscribers: march, leveldb, dhruba
      
      Differential Revision: https://reviews.facebook.net/D51291
      db320b1b
    • S
      Merge pull request #860 from SherlockNoMad/BuildFix · 4a009f91
      Siying Dong 提交于
      Fix ms version Appveyor build error
      4a009f91
    • S
      Fix ms version Appveyor build error · b4efaebf
      SherlockNoMad 提交于
      b4efaebf
    • S
      Initialize options.row_cache · d27ea4c9
      sdong 提交于
      Summary: options.row_cache should already been initialized as null by default. Still try to set it following current convention, because one valgrind failure reports a failure related to it.
      
      Test Plan: Run all unit tests
      
      Reviewers: yhchiang, kradhakrishnan, igor
      
      Reviewed By: igor
      
      Subscribers: leveldb, dhruba
      
      Differential Revision: https://reviews.facebook.net/D51303
      d27ea4c9
    • I
      Fix clang build · 72930485
      Islam AbdelRahman 提交于
      Summary: Fix clang
      
      Test Plan: make check
      
      Reviewers: sdong, yhchiang, rven
      
      Subscribers: dhruba
      
      Differential Revision: https://reviews.facebook.net/D51417
      72930485
  2. 26 11月, 2015 3 次提交
  3. 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
  4. 21 11月, 2015 4 次提交
  5. 20 11月, 2015 1 次提交
    • I
      Reduce moving memory in LDB::ScanCommand · 88e05277
      Islam AbdelRahman 提交于
      Summary:
      Based on https://github.com/facebook/rocksdb/issues/843
      It looks that when the data is hot we spend significant amount of time moving data out of RocksDB blocks. This patch reduce moving memory when possible
      
      Original performance
      ```
      $ time ./ldb --db=/home/tec/local/ellina_test/testdb scan > /dev/null
      real	0m16.736s
      user	0m11.993s
      sys	0m4.725s
      ```
      
      Performance after reducing memcpy
      ```
      $ time ./ldb --db=/home/tec/local/ellina_test/testdb scan > /dev/null
      real	0m11.590s
      user	0m6.983s
      sys	0m4.595s
      ```
      
      Test Plan:
      dump the output of the scan into 2 files and verifying the are exactly the same
      make check
      
      Reviewers: sdong, yhchiang, anthony, rven, igor
      
      Reviewed By: igor
      
      Subscribers: dhruba
      
      Differential Revision: https://reviews.facebook.net/D51093
      88e05277
  6. 19 11月, 2015 5 次提交
  7. 18 11月, 2015 15 次提交