1. 12 9月, 2017 4 次提交
    • S
      Make InternalKeyComparator final and directly use it in merging iterator · 64b6452e
      Siying Dong 提交于
      Summary:
      Merging iterator invokes InternalKeyComparator.Compare() frequently to heap merge. By making InternalKeyComparator final and merging iterator to directly use InternalKeyComparator rather than through Iterator interface, we can give compiler a choice to avoid one more virtual function call if possible. I ran readseq benchmark in memory-only use case to make sure the performance at least doesn't regress.
      
      I have to disable the final key word in debug build, as a hack test class depends on overriding the class.
      Closes https://github.com/facebook/rocksdb/pull/2860
      
      Differential Revision: D5800461
      
      Pulled By: siying
      
      fbshipit-source-id: ab876f22a09bb5c560740911412336e0e25ccb53
      64b6452e
    • S
      Make DBIter class final · 2dd22e54
      Siying Dong 提交于
      Summary:
      DBIter is referenced in ArenaWrappedDBIter, which is a simple wrapper. If DBIter is final, some virtual function call can be avoided. Some functions can even be inlined, like DBIter.value() to ArenaWrappedDBIter.value() and DBIter.key() to ArenaWrappedDBIter.key(). The performance gain is hard to measure. I just ran the memory-only benchmark for readseq and saw it didn't regress. There shouldn't be any harm doing it. Just give compiler more choices.
      Closes https://github.com/facebook/rocksdb/pull/2859
      
      Differential Revision: D5799888
      
      Pulled By: siying
      
      fbshipit-source-id: 829788f91310c40282dcfb7e412e6ef489931143
      2dd22e54
    • H
      Fix missing BYTES_PER_WRITE for pipeline write · 2a591504
      Huachao Huang 提交于
      Summary: Closes https://github.com/facebook/rocksdb/pull/2862
      
      Differential Revision: D5805638
      
      Pulled By: yiwu-arbug
      
      fbshipit-source-id: 72d38c74395690023a719f400daff01527645a17
      2a591504
    • M
      write-prepared txn: call IsInSnapshot · f46464d3
      Maysam Yabandeh 提交于
      Summary:
      This patch instruments the read path to verify each read value against an optional ReadCallback class. If the value is rejected, the reader moves on to the next value. The WritePreparedTxn makes use of this feature to skip sequence numbers that are not in the read snapshot.
      Closes https://github.com/facebook/rocksdb/pull/2850
      
      Differential Revision: D5787375
      
      Pulled By: maysamyabandeh
      
      fbshipit-source-id: 49d808b3062ab35e7ae98ad388f659757794184c
      f46464d3
  2. 09 9月, 2017 3 次提交
  3. 08 9月, 2017 4 次提交
    • A
      rename stall-related internal stats · 3cd7ea2e
      Andrew Kryczka 提交于
      Summary:
      Some of these names, like `MEMTABLE_COMPACTION`, did not mean anything. Tried to give them descriptive names.
      Closes https://github.com/facebook/rocksdb/pull/2852
      
      Differential Revision: D5782822
      
      Pulled By: ajkr
      
      fbshipit-source-id: f2695c4124af4073da4492d7135bae2411220f3a
      3cd7ea2e
    • S
      Fix CLANG Analyze · 0e99323a
      Siying Dong 提交于
      Summary:
      clang analyze shows warnings after we upgrade the CLANG version. Fix them.
      Closes https://github.com/facebook/rocksdb/pull/2839
      
      Differential Revision: D5769060
      
      Pulled By: siying
      
      fbshipit-source-id: 3f8e4df715590d8984f6564b608fa08cfdfa5f14
      0e99323a
    • K
      specify SSE42 'target' attribute for Fast_CRC32() · ba3c58ca
      Kefu Chai 提交于
      Summary:
      if we enable SSE42 globally when compiling the tree for preparing a
      portable binary, which could be running on CPU w/o SSE42 instructions
      even the GCC on the building host is able to emit SSE42 code, this leads
      to illegal instruction errors on machines not supporting SSE42. to solve
      this problem, crc32 detects the supported instruction at runtime, and
      selects the supported CRC32 implementation according to the result of
      `cpuid`. but intrinics like "_mm_crc32_u64()" will not be available
      unless the "target" machine is appropriately specified in the command
      line, like "-msse42", or using the "target" attribute.
      
      we could pass "-msse42" only when compiling crc32c.cc, and allow the
      compiler to generate the SSE42 instructions, but we are still at the
      risk of executing illegal instructions on machines does not support
      SSE42 if the compiler emits code that is not guarded by our runtime
      detection. and we need to do the change in both Makefile and CMakefile.
      
      or, we can use GCC's "target" attribute to enable the machine specific
      instructions on certain function. in this way, we have finer grained
      control of the used "target". and no need to change the makefiles. so
      we don't need to duplicate the changes on both makefile and cmake as
      the previous approach.
      
      this problem surfaces when preparing a package for GNU/Linux distribution,
      and we only applies to optimization for SSE42, so using a feature
      only available on GCC/Clang is not that formidable.
      Closes https://github.com/facebook/rocksdb/pull/2807
      
      Differential Revision: D5786084
      
      Pulled By: siying
      
      fbshipit-source-id: bca5c0f877b8d6fb55f58f8f122254a26422843d
      ba3c58ca
    • M
      Remove unused TransactionCallback · 7e19a571
      Maysam Yabandeh 提交于
      Summary:
      TransactionCallback was never used. Remove it to avoid confusion.
      Closes https://github.com/facebook/rocksdb/pull/2853
      
      Differential Revision: D5787219
      
      Pulled By: maysamyabandeh
      
      fbshipit-source-id: e2b6a89537e3770a269ad38be71c4b0b160a88ac
      7e19a571
  4. 07 9月, 2017 1 次提交
  5. 06 9月, 2017 1 次提交
  6. 02 9月, 2017 4 次提交
  7. 01 9月, 2017 8 次提交
  8. 31 8月, 2017 5 次提交
    • S
      Set defaults for high-pri and low-pri thread pools in regression test script · 06b37eef
      Sagar Vemuri 提交于
      Summary:
      **Summary**:
      Set defaults for high-pri and low-pri thread pools in regression test script.
      
      **Reason for this change**:
      With #2680 , high-pri and low-pri thread pools get different numbers than before if  `num_high_pri_threads` and `num_low_pri_threads` options are not explicitly passed to db_bench in regression test script ... leading to a false-positive regression.
      
      **Test Plan**:
      REMOTE_HOST=udb1671.prn3 TEST_MODE=1 FBSOURCE=~/fbsource ~/fbsource/fbcode/rocks/tools/debug_regression_test.sh viewstate  (with very minor changes to the internals).
      
      Observe P50 and P99 which showed up as regressions in our graphs.
      
      Stats with the commit prior to #2680 , ie. 4f81ab38 :
      seekrandomwhilewriting :      75.096 micros/op 13316 ops/sec;  168.6 MB/s (7499074 of 7500000 found)
      Microseconds per seek:
      Count: 120000000 Average: 1197.7254  StdDev: 33.35
      Min: 187  Median: 980.5292  Max: 1816424
      Percentiles: **P50: 980.53** P75: 1494.57 **P99: 4185.64** P99.9: 7800.11 P99.99: 15039.64
      
      Stats at #2680, ie. at commit dce6d5a8 (false-positive regression):
      seekrandomwhilewriting :      85.330 micros/op 11719 ops/sec;  148.4 MB/s (7499073 of 7500000 found)
      Microseconds per seek:
      Count: 120000000 Average: 1362.3261  StdDev: 27.86
      Min: 185  Median: 1088.1915  Max: 652760
      Percentiles: **P50: 1088.19** P75: 1658.12 **P99: 5361.15** P99.9: 7997.95 P99.99: 11730.07
      
      Stats with the current change on top of dce6d5a8 :
      seekrandomwhilewriting :      77.780 micros/op 12856 ops/sec;  162.8 MB/s (7499102 of 7500000 found)
      Microseconds per seek:
      Count: 120000000 Average: 1226.6744  StdDev: 17.16
      Min: 185  Median: 994.2956  Max: 2553530
      Percentiles: **P50: 994.30** P75: 1513.68 **P99: 4284.30** P99.9: 9338.64 P99.99: 23008.86
      Closes https://github.com/facebook/rocksdb/pull/2801
      
      Differential Revision: D5742338
      
      Pulled By: sagar0
      
      fbshipit-source-id: cc5d727c1a131f2a7070d1bb892efbe929b976ff
      06b37eef
    • A
      Dump non-final ZSTD compression type support · c10cf166
      Andrew Kryczka 提交于
      Summary: Closes https://github.com/facebook/rocksdb/pull/2810
      
      Differential Revision: D5739947
      
      Pulled By: ajkr
      
      fbshipit-source-id: 09f99718b6b083c2711dcf17f7b68c305f3fd261
      c10cf166
    • A
      Extend property map with compaction stats · 8a6708f5
      Artem Danilov 提交于
      Summary:
      This branch extends existing property map which keeps values in doubles to keep values in strings so that it can be used to provide wider range of properties. The immediate need for that is to provide IO stall stats in an easy parseable way to MyRocks which is also part of this branch.
      Closes https://github.com/facebook/rocksdb/pull/2794
      
      Differential Revision: D5717676
      
      Pulled By: Tema
      
      fbshipit-source-id: e34ba5b79ba774697f7b97ce1138d8fd55471b8a
      8a6708f5
    • C
      EnvWrapper: Forward more functions · dc5f29f3
      Changli Gao 提交于
      Summary: Closes https://github.com/facebook/rocksdb/pull/2789
      
      Differential Revision: D5738335
      
      Pulled By: ajkr
      
      fbshipit-source-id: f371303c42b144d0a0424e9304b0df545f073ad1
      dc5f29f3
    • M
      Bumping version to 5.8 · 266ac245
      Maysam Yabandeh 提交于
      Summary: Closes https://github.com/facebook/rocksdb/pull/2738
      
      Differential Revision: D5736261
      
      Pulled By: maysamyabandeh
      
      fbshipit-source-id: 49d27e9ccd786c4056a3d586a060fe460ea883ac
      266ac245
  9. 30 8月, 2017 4 次提交
  10. 29 8月, 2017 3 次提交
  11. 27 8月, 2017 1 次提交
  12. 26 8月, 2017 2 次提交