1. 31 3月, 2017 2 次提交
    • S
      Option to fail a request as incomplete when skipping too many internal keys · c6d04f2e
      Sagar Vemuri 提交于
      Summary:
      Operations like Seek/Next/Prev sometimes take too long to complete when there are many internal keys to be skipped. Adding an option, max_skippable_internal_keys -- which could be used to set a threshold for the maximum number of keys that can be skipped, will help to address these cases where it is much better to fail a request (as incomplete) than to wait for a considerable time for the request to complete.
      
      This feature -- to fail an iterator seek request as incomplete, is disabled by default when max_skippable_internal_keys = 0. It is enabled only when max_skippable_internal_keys > 0.
      
      This feature is based on the discussion mentioned in the PR https://github.com/facebook/rocksdb/pull/1084.
      Closes https://github.com/facebook/rocksdb/pull/2000
      
      Differential Revision: D4753223
      
      Pulled By: sagar0
      
      fbshipit-source-id: 1c973f7
      c6d04f2e
    • H
      Cleanup of ThreadStatusUtil structures should use the DB's reference · 58179ec4
      Herman Lee 提交于
      Summary:
      instead of thread_local
      
      The cleanup path for the rocksdb database might not have the
      thread_updater_local_cache_ pointer initialized because the thread
      executing the cleanup is likely not a rocksdb thread. This results in a
      memory leak detected by Valgrind. The cleanup code path should use the
      thread_status_updater pointer obtained from the DB object instead of a
      thread local one.
      Closes https://github.com/facebook/rocksdb/pull/2059
      
      Differential Revision: D4801611
      
      Pulled By: hermanlee
      
      fbshipit-source-id: 407d7de
      58179ec4
  2. 30 3月, 2017 5 次提交
  3. 29 3月, 2017 3 次提交
  4. 28 3月, 2017 1 次提交
  5. 25 3月, 2017 2 次提交
    • M
      Fix segmentation fault caused by #1961 · 34a70859
      Maysam Yabandeh 提交于
      Summary:
      Fixes #1961 which causes a segfault when filter_policy is nullptr and both
      pin_l0_filter_and_index_blocks_in_cache/cache_index_and_filter_blocks
      are set.
      Closes https://github.com/facebook/rocksdb/pull/2029
      
      Differential Revision: D4764862
      
      Pulled By: maysamyabandeh
      
      fbshipit-source-id: 05bd695
      34a70859
    • S
      Enable fifo compaction benchmark to db_bench · 8dee8cad
      Shu Zhang 提交于
      Summary:
      Added fifo benchmark to db_bench.
      One thing i am not sure is that i am using CompactRange() instead of CompactFiles(). (may cause performance skew because CompactionRange() is not happening in current thread?)  For CompactFiles(), for some reason FIFO compaction doesn't work as expected. More insight is welcomed. I guess FIFO compaction doesn't work with file names? igorcanadi
      
      test cmd:
      ./db_bench --compaction_style=2 --benchmarks=fillseqdeterministic --disable_auto_compactions --num_levels=1 --fifo_compaction_max_table_files_size_mb=10
      
      ---------------------- DB 0 LSM ---------------------
      Level[0]: /000014.sst(size: 4211014 bytes)
      fillseqdeterministic :       4.731 micros/op 211381 ops/sec;   23.4 MB/s
      Closes https://github.com/facebook/rocksdb/pull/1734
      
      Differential Revision: D4774964
      
      Pulled By: siying
      
      fbshipit-source-id: 9d08df6
      8dee8cad
  6. 24 3月, 2017 5 次提交
  7. 23 3月, 2017 9 次提交
  8. 22 3月, 2017 6 次提交
  9. 21 3月, 2017 3 次提交
  10. 18 3月, 2017 2 次提交
  11. 17 3月, 2017 2 次提交
    • I
      Break stalls when no bg work is happening · d52f334c
      Islam AbdelRahman 提交于
      Summary:
      Current stall will keep sleeping even if there is no Flush/Compactions to wait for, I changed the logic to break the stall if we are not flushing or compacting
      
      db_bench command used
      ```
      # fillrandom
      # memtable size = 10MB
      # value size = 1 MB
      # num = 1000
      # use /dev/shm
      ./db_bench --benchmarks="fillrandom,stats" --value_size=1048576 --write_buffer_size=10485760 --num=1000 --delayed_write_rate=XXXXX  --db="/dev/shm/new_stall" | grep "Cumulative stall"
      ```
      
      ```
      Current results
      
      # delayed_write_rate = 1000 Kb/sec
      Cumulative stall: 00:00:9.031 H:M:S
      
      # delayed_write_rate = 200 Kb/sec
      Cumulative stall: 00:00:22.314 H:M:S
      
      # delayed_write_rate = 100 Kb/sec
      Cumulative stall: 00:00:42.784 H:M:S
      
      # delayed_write_rate = 50 Kb/sec
      Cumulative stall: 00:01:23.785 H:M:S
      
      # delayed_write_rate = 25 Kb/sec
      Cumulative stall: 00:02:45.702 H:M:S
      ```
      
      ```
      New results
      
      # delayed_write_rate = 1000 Kb/sec
      Cumulative stall: 00:00:9.017 H:M:S
      
      # delayed_write_rate = 200 Kb/sec
      Cumulative stall: 00
      Closes https://github.com/facebook/rocksdb/pull/1884
      
      Differential Revision: D4585439
      
      Pulled By: IslamAbdelRahman
      
      fbshipit-source-id: aed2198
      d52f334c
    • A
      fix db_bench rate limiter callsites · e66221ad
      Andrew Kryczka 提交于
      Summary:
      pass nullptr as stats object for db_bench-specific rate limiters since its stats are intended to capture background write activity only.
      Closes https://github.com/facebook/rocksdb/pull/1997
      
      Differential Revision: D4726806
      
      Pulled By: ajkr
      
      fbshipit-source-id: 8e4b225
      e66221ad