1. 10 10月, 2020 2 次提交
  2. 09 10月, 2020 4 次提交
  3. 08 10月, 2020 7 次提交
    • Z
      Add ldb_cmd_test to ASSERT_STATUS_CHECKED list (#7499) · 41462768
      Zhichao Cao 提交于
      Summary:
      Add ldb_cmd_test to ASSERT_STATUS_CHECKED list
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/7499
      
      Test Plan: pass ASSERT_STATUS_CHECKED=1 make -j48 ldb_cmd_test
      
      Reviewed By: cheng-chang
      
      Differential Revision: D24086203
      
      Pulled By: zhichao-cao
      
      fbshipit-source-id: 29592202b1d4335e566de15e7937269d98d57841
      41462768
    • Y
      Fix clang analyzer (#7518) · 002b30c9
      Yanqin Jin 提交于
      Summary: Pull Request resolved: https://github.com/facebook/rocksdb/pull/7518
      
      Test Plan:
      ```
      $USE_CLANG=1 make analyze
      ```
      
      Reviewed By: zhichao-cao
      
      Differential Revision: D24175390
      
      Pulled By: riversand963
      
      fbshipit-source-id: c70121652908cf5d450120c38ab65cc595332ca7
      002b30c9
    • L
      Clean up BlobLogReader and rename it to BlobLogSequentialReader (#7517) · 1f84611e
      Levi Tamasi 提交于
      Summary:
      The patch does some cleanup in and around the legacy `BlobLogReader` class:
      * It renames the class to `BlobLogSequentialReader` to emphasize that it is for
      sequentially iterating through blobs in a blob file, as opposed to doing random
      point reads using `BlobIndex`es (which is `BlobFileReader`'s jurisdiction).
      * It removes some dead code from the old BlobDB implementation that references
      `BlobLogReader` (namely the method `BlobFile::OpenRandomAccessReader`).
      * It cleans up some `#include`s and forward declarations.
      * It fixes some incorrect/outdated comments related to the reader class.
      * It adds a few assertions to the `Read` methods of the class.
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/7517
      
      Test Plan: `make check`
      
      Reviewed By: riversand963
      
      Differential Revision: D24172611
      
      Pulled By: ltamasi
      
      fbshipit-source-id: 43e2ae1eba5c3dd30c1070cb00f217edc45bd64f
      1f84611e
    • L
      Introduce a blob file reader class (#7461) · 22655a39
      Levi Tamasi 提交于
      Summary:
      The patch adds a class called `BlobFileReader` that can be used to retrieve blobs
      using the information available in blob references (e.g. blob file number, offset, and
      size). This will come in handy when implementing blob support for `Get`, `MultiGet`,
      and iterators, and also for compaction/garbage collection.
      
      When a `BlobFileReader` object is created (using the factory method `Create`),
      it first checks whether the specified file is potentially valid by comparing the file
      size against the combined size of the blob file header and footer (files smaller than
      the threshold are considered malformed). Then, it opens the file, and reads and verifies
      the header and footer. The verification involves magic number/CRC checks
      as well as checking for unexpected header/footer fields, e.g. incorrect column family ID
      or TTL blob files.
      
      Blobs can be retrieved using `GetBlob`. `GetBlob` validates the offset and compression
      type passed by the caller (because of the presence of the header and footer, the
      specified offset cannot be too close to the start/end of the file; also, the compression type
      has to match the one in the blob file header), and retrieves and potentially verifies and
      uncompresses the blob. In particular, when `ReadOptions::verify_checksums` is set,
      `BlobFileReader` reads the blob record header as well (as opposed to just the blob itself)
      and verifies the key/value size, the key itself, as well as the CRC of the blob record header
      and the key/value pair.
      
      In addition, the patch exposes the compression type from `BlobIndex` (both using an
      accessor and via `DebugString`), and adds a blob file read latency histogram to
      `InternalStats` that can be used with `BlobFileReader`.
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/7461
      
      Test Plan: `make check`
      
      Reviewed By: riversand963
      
      Differential Revision: D23999219
      
      Pulled By: ltamasi
      
      fbshipit-source-id: deb6b1160d251258b308d5156e2ec063c3e12e5e
      22655a39
    • A
      Add Stats for MultiGet (#7366) · 38d0a365
      Akanksha Mahajan 提交于
      Summary:
      Add following stats for MultiGet in Histogram to get more insight on MultiGet.
          1. Number of index and filter blocks read from file as part of MultiGet
          request per level.
          2. Number of data blocks read from file per level.
          3. Number of SST files loaded from file system per level.
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/7366
      
      Reviewed By: anand1976
      
      Differential Revision: D24127040
      
      Pulled By: akankshamahajan15
      
      fbshipit-source-id: e63a003056b833729b277edc0639c08fb432756b
      38d0a365
    • J
      Disallow trivial move if BottommostLevelCompaction is kForce* (#7368) · 8891e9a0
      Jay Zhuang 提交于
      Summary:
      If `BottommostLevelCompaction.kForce*` is set, compaction should avoid
      trivial move and always compact the sst to the target size.
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/7368
      
      Reviewed By: ajkr
      
      Differential Revision: D23629525
      
      Pulled By: jay-zhuang
      
      fbshipit-source-id: 79f23c79ecb31587e0593b28cce43131107bbcd0
      8891e9a0
    • P
      Fix wrong comments about function TruncateToPageBoundary. (#6975) · 60649aa0
      peterpaule 提交于
      Summary: Pull Request resolved: https://github.com/facebook/rocksdb/pull/6975
      
      Reviewed By: ajkr
      
      Differential Revision: D22914797
      
      Pulled By: riversand963
      
      fbshipit-source-id: 5be2cd322d41447f638dba1336e96dcdc090f9dd
      60649aa0
  4. 07 10月, 2020 3 次提交
  5. 06 10月, 2020 1 次提交
  6. 04 10月, 2020 1 次提交
  7. 03 10月, 2020 6 次提交
  8. 02 10月, 2020 9 次提交
    • A
      add Status check enforcement for stats_history_test (#7496) · 29ed7661
      Andrew Kryczka 提交于
      Summary: Pull Request resolved: https://github.com/facebook/rocksdb/pull/7496
      
      Reviewed By: zhichao-cao
      
      Differential Revision: D24070007
      
      Pulled By: ajkr
      
      fbshipit-source-id: 4320413a4d7707774ee23a7e6232714d7ee7a57f
      29ed7661
    • A
      Periodically flush info log out of application buffer (#7488) · 1e009097
      Andrew Kryczka 提交于
      Summary:
      This PR schedules a background thread (shared across all DB instances)
      to flush info log every ten seconds. This improves debuggability in case
      of RocksDB hanging since it ensures the log messages leading up to the hang
      will eventually become visible in the log.
      
      The bulk of this PR is moving monitoring/stats_dump_scheduler* to db/periodic_work_scheduler*
      and making the corresponding name changes since now the scheduler handles info
      log flushing, not just stats dumping.
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/7488
      
      Reviewed By: riversand963
      
      Differential Revision: D24065165
      
      Pulled By: ajkr
      
      fbshipit-source-id: 339c47a0ff43b79fdbd055fbd9fefbb6f9d8d3b5
      1e009097
    • S
      Fix db_properties_test for ASSERT_STATUS_CHECKED (#7490) · 94fc676d
      sdong 提交于
      Summary:
      Add all status handling in db_properties_test so that it can pass ASSERT_STATUS_CHECKED.
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/7490
      
      Test Plan: Run the test with ASSERT_STATUS_CHECKED
      
      Reviewed By: jay-zhuang
      
      Differential Revision: D24065382
      
      fbshipit-source-id: e008916155196891478c964df0226545308ca71d
      94fc676d
    • Z
      Add trace_analyzer_test to ASSERT_STATUS_CHECKED list (#7480) · 685cabda
      Zhichao Cao 提交于
      Summary:
      Add trace_analyzer_test to ASSERT_STATUS_CHECKED list
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/7480
      
      Test Plan: ASSERT_STATUS_CHECKED=1 make -j48 trace_analyzer_test
      
      Reviewed By: riversand963
      
      Differential Revision: D24033768
      
      Pulled By: zhichao-cao
      
      fbshipit-source-id: b415045e6fab01d6193448650772368c21c6dba6
      685cabda
    • shadowlux's avatar
      fix dummy collector's name (#7442) · f5e22ce6
      shadowlux 提交于
      Summary: Pull Request resolved: https://github.com/facebook/rocksdb/pull/7442
      
      Reviewed By: jay-zhuang
      
      Differential Revision: D24011201
      
      Pulled By: ajkr
      
      fbshipit-source-id: 54f24c29875f7575612a780f15a42cda918d6641
      f5e22ce6
    • P
      Add is_full_compaction to CompactionJobStats, cleanup (#7451) · 9082771b
      Peter Dillinger 提交于
      Summary:
      This exposes to the listener interface whether a compaction was
      full or not. Also cleaned up API comment for CompactionJobInfo::stats,
      which is not of a nullable type. And since CompactionJob is always
      created with non-null CompactionJobStats, removed conditionals on it
      being nullptr and instead assert non-null.
      
      TODO later: update C and Java interfaces
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/7451
      
      Test Plan: updated existing unit tests to check new field, make check
      
      Reviewed By: ltamasi
      
      Differential Revision: D23977796
      
      Pulled By: pdillinger
      
      fbshipit-source-id: 1ae7e26cb949631c2b2fb9e696710daf53cc378d
      9082771b
    • L
      Reduce the number of iterations in DBTest.FileCreationRandomFailure (#7481) · 786c1a2c
      Levi Tamasi 提交于
      Summary:
      `DBTest.FileCreationRandomFailure` frequently times out during our
      continuous test runs. (It's a case of "stress test posing as unit test.")
      The patch reduces the number of iterations to avoid this. Note that
      the lower numbers are still sufficient to trigger both flushes and
      compactions, so test coverage is still the same.
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/7481
      
      Test Plan: `make check`
      
      Reviewed By: riversand963
      
      Differential Revision: D24034712
      
      Pulled By: ltamasi
      
      fbshipit-source-id: 8731a9446e5a121a1041b00f0df473b9f714935a
      786c1a2c
    • S
      Introduce options.check_flush_compaction_key_order (#7467) · 75081755
      sdong 提交于
      Summary:
      Introduce an new option options.check_flush_compaction_key_order, by default set to true, which checks key order of flush and compaction, and fail the operation if the order is violated.
      Also did minor refactor hash checking code, which consolidates the hashing logic to a vlidation class, where the key ordering logic is added.
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/7467
      
      Test Plan: Add unit tests to validate the check can catch reordering in flush and compaction, and can be properly disabled.
      
      Reviewed By: riversand963
      
      Differential Revision: D24010683
      
      fbshipit-source-id: 8dd6292d2cda8006054e9ded7cfa4bf405f0527c
      75081755
    • K
      Fix MSVC-related build issues (#7439) · 3e745053
      Koby Kahane 提交于
      Summary:
      This PR addresses some build and functional issues on MSVC targets, as a step towards an eventual goal of having RocksDB build successfully for Windows on ARM64.
      
      Addressed issues include:
      - BitsSetToOne and CountTrailingZeroBits do not compile on non-x64 MSVC targets. A fallback implementation of BitsSetToOne when Intel intrinsics are not available is added, based on the C++20 `<bit>` popcount implementation in Microsoft's STL.
      - The implementation of FloorLog2 for MSVC targets (including x64) gives incorrect results. The unit test easily detects this, but CircleCI is currently configured to only run a specific set of tests for Windows CMake builds, so this seems to have been unnoticed.
      - AsmVolatilePause does not use YieldProcessor on Windows ARM64 targets, even though it is available.
      - When CondVar::TimedWait calls Microsoft STL's condition_variable::wait_for, it can potentially trigger a bug (just recently fixed in the upcoming VS 16.8's STL) that deadlocks various tests that wait for a timer to execute, since `Timer::Run` doesn't get a chance to execute before being blocked by the test function acquiring the mutex.
      - In c_test, `GetTempDir` assumes a POSIX-style temp path.
      - `NormalizePath` did not eliminate consecutive POSIX-style path separators on Windows, resulting in test failures in e.g., wal_manager_test.
      - Various other test failures.
      
      In a followup PR I hope to modify CircleCI's config.yml to invoke all RocksDB unit tests in Windows CMake builds with CTest, instead of the current use of `run_ci_db_test.ps1` which requires individual tests to be specified and is missing many of the existing tests.
      
      Notes from peterd: FloorLog2 is not yet used in production code (it's for something in progress). I also added a few more inexpensive platform-dependent tests to Windows CircleCI runs. And included facebook/folly#1461 as requested
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/7439
      
      Reviewed By: jay-zhuang
      
      Differential Revision: D24021563
      
      Pulled By: pdillinger
      
      fbshipit-source-id: 0ec2027c0d6a494d8a0fe38d9667fc2f7e29f7e7
      3e745053
  9. 01 10月, 2020 7 次提交