1. 01 10月, 2019 3 次提交
    • S
      Fix clang analyze warning in db_stress (#5870) · 503a756e
      sdong 提交于
      Summary:
      Recent changes trigger clang analyze warning. Fix it.
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/5870
      
      Test Plan: "USE_CLANG=1 TEST_TMPDIR=/dev/shm/rocksdb OPT=-g make -j60 analyze" and make sure it passes.
      
      Differential Revision: D17682533
      
      fbshipit-source-id: 02716f2a24572550a22db4bbe9b54d4872dfae32
      503a756e
    • J
      Fix a compile error (#5864) · 51413e0a
      Jay Zhuang 提交于
      Summary:
      ```
      tools/block_cache_analyzer/block_cache_trace_analyzer.cc:653:48: error: implicit conversion loses integer precision: 'uint64_t' (aka 'unsigned long long') to 'std::__1::linear_congruential_engine<unsigned int, 48271, 0, 2147483647>::result_type' (aka 'unsigned int') [-Werror,-Wshorten-64-to-32]
        std::default_random_engine rand_engine(env_->NowMicros());
      ```
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/5864
      
      Differential Revision: D17668962
      
      fbshipit-source-id: e08fa58b2a78a8dd8b334862b5714208f696b8ab
      51413e0a
    • S
      Fix three more db_stress bugs (#5867) · 69c4ccb9
      sdong 提交于
      Summary:
      Two more bug fixes in db_stress:
      1. this is to complete the fix of the regression bug causing overflowing when supporting FLAGS_prefix_size = -1.
      2. Fix regression bug in compare iterator itself:
      (1) when creating control iterator, which used the same read option as the normal iterator by mistake; (2) the logic of comparing has some problems. Fix them.
      (3) disable validation for lower bound now, which generated some wildly different results. Disabling it to make normal tests pass while investigating it.
      3. Cleaning up snapshots in verification failure cases. Memory is leaked otherwise.
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/5867
      
      Test Plan: Run "make crash_test" for a while and see at least 1 is fixed.
      
      Differential Revision: D17671712
      
      fbshipit-source-id: 011f98ea1a72aef23e19ff28656830c78699b402
      69c4ccb9
  2. 28 9月, 2019 4 次提交
    • Y
      Explicitly declare atomic flush incompatible with pipelined write (#5860) · 643df920
      Yanqin Jin 提交于
      Summary:
      Atomic flush is incompatible with pipelined write. At least now.
      If pipelined write is enabled, a thread performing write can exit the write
      thread and start inserting into memtables. Consequently a thread performing
      flush will enter write thread and race with memtable insertion by the former.
      This will cause undefined result in terms of data persistence.
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/5860
      
      Test Plan:
      ```
      $make all && make check
      ```
      
      Differential Revision: D17638944
      
      Pulled By: riversand963
      
      fbshipit-source-id: abc578dc49a5dbe41bc5adcecf448f8e042a6d49
      643df920
    • S
      db_stress: fix run time error when prefix_size = -1 (#5862) · 5cd8aaf7
      sdong 提交于
      Summary:
      When prefix_size = -1, stress test crashes with run time error because of overflow. Fix it by not using -1 but 7 in prefix scan mode.
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/5862
      
      Test Plan:
      Run
      python -u tools/db_crashtest.py --simple whitebox --random_kill_odd \
            888887 --compression_type=zstd
      and see it doesn't crash.
      
      Differential Revision: D17642313
      
      fbshipit-source-id: f029e7651498c905af1b1bee6d310ae50cdcda41
      5cd8aaf7
    • S
      crash_test to do some verification for prefix extractor and iterator bounds. (#5846) · 679a45d0
      sdong 提交于
      Summary:
      For now, crash_test is not able to report any failure for the logic related to iterator upper, lower bounds or iterators, or reseek. These are features prone to errors. Improve db_stress in several ways:
      (1) For each iterator run, reseek up to 3 times.
      (2) For every iterator, create control iterator with upper or lower bound, with total order seek. Compare the results with the iterator.
      (3) Make simple crash test to avoid prefix size to have more coverage.
      (4) make prefix_size = 0 a valid size and -1 to indicate disabling prefix extractor.
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/5846
      
      Test Plan: Manually hack the code to create wrong results and see they are caught by the tool.
      
      Differential Revision: D17631760
      
      fbshipit-source-id: acd460a177bd2124a5ffd7fff490702dba63030b
      679a45d0
    • C
      Add unordered write option rocksjava (#5839) · 51185592
      Chen, You 提交于
      Summary:
      Add unordered_write option api and related ut to rocksjava
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/5839
      
      Differential Revision: D17604446
      
      Pulled By: maysamyabandeh
      
      fbshipit-source-id: c6b07e85ca9d5e3a92973ddb6ab2bc079e53c9c1
      51185592
  3. 27 9月, 2019 2 次提交
    • Y
      Add TryCatchUpWithPrimary to StackableDB (#5855) · ae458357
      Yanqin Jin 提交于
      Summary:
      as title.
      
      Test Plan (on devserver):
      ```
      $make all && make check
      ```
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/5855
      
      Differential Revision: D17615125
      
      Pulled By: riversand963
      
      fbshipit-source-id: bd6ed8cf59eafff41f0d1fc044f39e8f3573172a
      ae458357
    • S
      Add a unit test to reproduce a corruption bug (#5851) · 76e951db
      sdong 提交于
      Summary:
      This is a bug occaionally shows up in crash test, and this unit test is to reproduce it. The bug is following:
      1. Database has multiple CFs.
      2. Between one DB restart, the last log file is corrupted in the middle (not the tail)
      3. During restart, DB crashes between flushes between two CFs.
      The DB will fail to be opened again with error "SST file is ahead of WALs"
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/5851
      
      Test Plan: Run the test itself.
      
      Differential Revision: D17614721
      
      fbshipit-source-id: 1b0abce49b203a76a039e38e76bc940429975f20
      76e951db
  4. 25 9月, 2019 2 次提交
    • M
      Fix a bug in format_version 3 + partition filters + prefix search (#5835) · 6652c94f
      Maysam Yabandeh 提交于
      Summary:
      Partitioned filters make use of a top-level index to find the partition in which the filter resides. The top-level index has a key per partition. The key is guaranteed to be larger or equal than any key in that partition. When used with format_version 3, which excludes the sequence number form index keys, the separator key in the index could be equal to the prefix of the keys in the next partition. In this way, when searching for the key, the top-level index will lead us to the previous partition, which has no key with that prefix. The prefix bloom test thus returns false, although the prefix exists in the bloom of the next partition.
      The patch fixes that by a hack: It always adds the prefix of the first key of the next partition to the bloom of the current partition. In this way, in the corner cases that the index will lead us to the previous partition, we still can find the bloom filter there.
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/5835
      
      Differential Revision: D17513585
      
      Pulled By: maysamyabandeh
      
      fbshipit-source-id: e2d1ff26c759e6e03875c4d57f4228316ecf50e9
      6652c94f
    • L
      Add class comment for Block · c9932d18
      Levi Tamasi 提交于
      Summary: Pull Request resolved: https://github.com/facebook/rocksdb/pull/5832
      
      Differential Revision: D17550773
      
      Pulled By: ltamasi
      
      fbshipit-source-id: 66972bb008516e55b6fbba58ddd10234346d5d11
      c9932d18
  5. 24 9月, 2019 3 次提交
    • W
      Update HISTORY.md for stop manual compaction · 02554b3c
      WangQingping 提交于
      Summary: Pull Request resolved: https://github.com/facebook/rocksdb/pull/5837
      
      Differential Revision: D17529753
      
      fbshipit-source-id: 98bbf22c690384b2f440286151dffdaaa744e97c
      02554b3c
    • Y
      Remove invalid comparison of va_list and nullptr (#5836) · 2367656b
      Yikun Jiang 提交于
      Summary:
      The comparison of va_list and nullptr is always False under any arch, and will raise invalid operands of types error in aarch64 env (`error: invalid operands of types ‘va_list {aka __va_list}’ and ‘std::nullptr_t’ to binary ‘operator!=’`).
      
      This patch removes this invalid assert.
      
      Closes: https://github.com/facebook/rocksdb/issues/4277
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/5836
      
      Differential Revision: D17532470
      
      fbshipit-source-id: ca98078ecbc6a9416c69de3bd6ffcfa33a0f0185
      2367656b
    • P
      Fix format-diff.sh detecting changes vs. upstream (#5831) · 42f898bf
      Peter Dillinger 提交于
      Summary:
      format-diff.sh, a.k.a. 'make format', would use 'master'
      to decide which commits are probably unpublished. Much better to use
      facebook remote master since local master may not be caught up and may
      have its own unpublished commits. Script now tries to compare against
      facebook remote master branch (branch pointer is updated with any fetch
      or pull), because those differences are what would be considered the
      differences for a pull request.
      
      Also, script would compare against *parent* of merge-base with that
      reference point, which is just wrong since that includes the last
      published commit.
      
      In case of problems, you can now customize the reference point, by
      setting the FORMAT_UPSTREAM variable.
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/5831
      
      Test Plan: manual
      
      Differential Revision: D17528462
      
      Pulled By: pdillinger
      
      fbshipit-source-id: 50fdb8795d683bf3c14d449669c1a5299e0dfa8b
      42f898bf
  6. 21 9月, 2019 2 次提交
  7. 20 9月, 2019 1 次提交
  8. 19 9月, 2019 6 次提交
    • M
      Remove snap_refresh_nanos option (#5826) · 6ec6a4a9
      Maysam Yabandeh 提交于
      Summary:
      The snap_refresh_nanos option didn't bring much benefit. Remove the feature to simplify the code.
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/5826
      
      Differential Revision: D17467147
      
      Pulled By: maysamyabandeh
      
      fbshipit-source-id: 4f950b046990d0d1292d7fc04c2ccafaf751c7f0
      6ec6a4a9
    • Y
      Refactor deletefile_test.cc (#5822) · a9c5e8e9
      Yanqin Jin 提交于
      Summary:
      Make DeleteFileTest inherit DBTestBase to avoid code duplication.
      
      Test Plan (on devserver)
      ```
      $make deletefile_test
      $./deletefile_test
      ```
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/5822
      
      Differential Revision: D17456750
      
      Pulled By: riversand963
      
      fbshipit-source-id: 224e97967da7b98838a98981cd5095d3230a814f
      a9c5e8e9
    • L
      Make clang-analyzer happy (#5821) · 2cbb61ea
      Levi Tamasi 提交于
      Summary:
      clang-analyzer has uncovered a bunch of places where the code is relying
      on pointers being valid and one case (in VectorIterator) where a moved-from
      object is being used:
      
      In file included from db/range_tombstone_fragmenter.cc:17:
      ./util/vector_iterator.h:23:18: warning: Method called on moved-from object 'keys' of type 'std::vector'
              current_(keys.size()) {
                       ^~~~~~~~~~~
      1 warning generated.
      utilities/persistent_cache/block_cache_tier_file.cc:39:14: warning: Called C++ object pointer is null
        Status s = env->NewRandomAccessFile(filepath, file, opt);
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      utilities/persistent_cache/block_cache_tier_file.cc:47:19: warning: Called C++ object pointer is null
        Status status = env_->GetFileSize(Path(), size);
                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      utilities/persistent_cache/block_cache_tier_file.cc:290:14: warning: Called C++ object pointer is null
        Status s = env_->FileExists(Path());
                   ^~~~~~~~~~~~~~~~~~~~~~~~
      utilities/persistent_cache/block_cache_tier_file.cc:363:35: warning: Called C++ object pointer is null
          CacheWriteBuffer* const buf = alloc_->Allocate();
                                        ^~~~~~~~~~~~~~~~~~
      utilities/persistent_cache/block_cache_tier_file.cc:399:41: warning: Called C++ object pointer is null
        const uint64_t file_off = buf_doff_ * alloc_->BufferSize();
                                              ^~~~~~~~~~~~~~~~~~~~
      utilities/persistent_cache/block_cache_tier_file.cc:463:33: warning: Called C++ object pointer is null
        size_t start_idx = lba.off_ / alloc_->BufferSize();
                                      ^~~~~~~~~~~~~~~~~~~~
      utilities/persistent_cache/block_cache_tier_file.cc:515:5: warning: Called C++ object pointer is null
          alloc_->Deallocate(bufs_[i]);
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
      7 warnings generated.
      ar: creating librocksdb_debug.a
      utilities/memory/memory_test.cc:68:25: warning: Called C++ object pointer is null
            cache_set->insert(db->GetDBOptions().row_cache.get());
                              ^~~~~~~~~~~~~~~~~~
      1 warning generated.
      
      The patch fixes these by adding assertions and explicitly passing in zero
      when initializing VectorIterator::current_ (which preserves the existing
      behavior).
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/5821
      
      Test Plan: Ran make check and make analyze to make sure the warnings have disappeared.
      
      Differential Revision: D17455949
      
      Pulled By: ltamasi
      
      fbshipit-source-id: 363619618ea649a0674287f9f3b3393e390571ee
      2cbb61ea
    • Remove unneeded unlock statement (#5809) · 2389aa2d
      提交于
      Summary:
      The dtor will automatically do unlock
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/5809
      
      Differential Revision: D17453694
      
      Pulled By: ltamasi
      
      fbshipit-source-id: 5348bff8e6a620a05ff639a5454e8d82ae98a22d
      2389aa2d
    • Y
      Refactor ObsoleteFilesTest to inherit from DBTestBase (#5820) · 6a279037
      Yanqin Jin 提交于
      Summary:
      Make class ObsoleteFilesTest inherit from DBTestBase.
      
      Test plan (on devserver):
      ```
      $COMPILE_WITH_ASAN=1 make obsolete_files_test
      $./obsolete_files_test
      ```
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/5820
      
      Differential Revision: D17452348
      
      Pulled By: riversand963
      
      fbshipit-source-id: b09f4581a18022ca2bfd79f2836c0bf7083f5f25
      6a279037
    • T
      Adding support for deleteFilesInRanges in JNI (#4031) · 3a408eea
      Tomas Kolda 提交于
      Summary:
      It is very useful method call to achieve https://github.com/facebook/rocksdb/wiki/Delete-A-Range-Of-Keys
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/4031
      
      Differential Revision: D13515418
      
      Pulled By: vjnadimpalli
      
      fbshipit-source-id: 930b48e0992ef07fd1edd0b0cb5f780fabb1b4b5
      3a408eea
  9. 18 9月, 2019 3 次提交
  10. 17 9月, 2019 13 次提交
  11. 16 9月, 2019 1 次提交