1. 20 9月, 2020 1 次提交
    • Z
      fix the flaky test failure (#7415) · 485fd9d9
      Zhichao Cao 提交于
      Summary:
      Fix the flaky test failure in error_handler_fs_test. Add the sync point, solve the dependency.
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/7415
      
      Test Plan: make asan_check, ~/gtest-parallel/gtest-parallel -r 100 ./error_handler_fs_test
      
      Reviewed By: siying
      
      Differential Revision: D23804330
      
      Pulled By: zhichao-cao
      
      fbshipit-source-id: 5175108651f7652e47e15978f2a9c1669ef59d80
      485fd9d9
  2. 19 9月, 2020 2 次提交
    • P
      Postponing custom checksum support in BackupEngine (#7411) · b475a83f
      Peter Dillinger 提交于
      Summary:
      This change reverts BackupEngine to 6.12 state to accommodate a
      higher-priority fix that does not easily merge with this custom checksum
      support. We intend to reinstate this support soon, by merging a revert
      of this change.
      
      For backupable_db_test, I've removed the tests depending on this
      feature.
      
      I've also removed relevant HISTORY.md entry.
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/7411
      
      Test Plan: unit tests
      
      Reviewed By: ajkr
      
      Differential Revision: D23793835
      
      Pulled By: pdillinger
      
      fbshipit-source-id: 7e861436539584799b13d1a8ae559b81b6d08052
      b475a83f
    • T
      Add missing Java API for boolean and numerical fields in DBOptions (#7387) · 6efae4b0
      Tomasz Posluszny 提交于
      Summary:
      Exposes the following previously missing DBOptions fields in the RocksJava API:
      - persist_stats_to_disk
      - max_write_batch_group_size_bytes
      - skip_checking_sst_file_sizes_on_db_open
      - avoid_unnecessary_blocking_io
      - write_dbid_to_manifest
      - log_readahead_size
      - best_efforts_recovery
      - max_bgerror_resume_count
      - bgerror_resume_retry_interval
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/7387
      
      Reviewed By: siying
      
      Differential Revision: D23707785
      
      Pulled By: jay-zhuang
      
      fbshipit-source-id: e5688c7d40d83128734605ef7b0720a55fdfa699
      6efae4b0
  3. 18 9月, 2020 5 次提交
    • Z
      Map retryable IO error during Flush without WAL to soft error and no switch... · c268628c
      Zhichao Cao 提交于
      Map retryable IO error during Flush without WAL to soft error and no switch memtable during resume (#7310)
      
      Summary:
      In the current implementation, any retryable IO error happens during Flush is mapped to a hard error. In this case, DB is stopped and write is stalled unless the background error is cleaned. In this PR, if WAL is DISABLED, the retryable IO error during FLush is mapped to a soft error. Such that, the memtable can continue receive the writes. At the same time, if auto resume is triggered, SwtichMemtable will not be called during Flush when resuming the DB to avoid to many small memtables. Testing cases are added.
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/7310
      
      Test Plan: adding new unit test, pass make check.
      
      Reviewed By: anand1976
      
      Differential Revision: D23710892
      
      Pulled By: zhichao-cao
      
      fbshipit-source-id: bc4ca50d11c6b23b60d2c0cb171d86d542b038e9
      c268628c
    • A
      RocksJava - Add errorIfLogFileExists parameter to RocksDB.openReadOnly (#7046) · 3ac07a12
      Adam Retter 提交于
      Summary:
      Expose from C++ API to Java API.
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/7046
      
      Reviewed By: riversand963
      
      Differential Revision: D23726297
      
      Pulled By: pdillinger
      
      fbshipit-source-id: fc66bf626ce6fe9797e7d021ac849eacab91bf6d
      3ac07a12
    • A
      Update HISTORY.md with IO fencing error code (#7402) · b9750c7c
      anand76 提交于
      Summary: Pull Request resolved: https://github.com/facebook/rocksdb/pull/7402
      
      Reviewed By: pdillinger
      
      Differential Revision: D23761689
      
      Pulled By: anand1976
      
      fbshipit-source-id: 59e10f0aaa80f6c0f5a46dc99467138c4cee0511
      b9750c7c
    • P
      Restore file size in backup table file names (and other cleanup) (#7400) · 93719fc9
      Peter Dillinger 提交于
      Summary:
      Prior to 6.12, backup files using share_files_with_checksum had
      the file size encoded in the file name, after the last '\_' and before
      the last '.'. We considered this an implementation detail subject to
      change, and indeed removed this information from the file name (with an
      option to use old behavior) because it was considered
      ineffective/inefficient for file name uniqueness. However, some
      downstream RocksDB users were relying on this information since the file
      size is not explicitly in the backup manifest file.
      
      This primary purpose of this change is "retrofitting" the 6.12 release
      (not yet a public release) to simultaneously support the benefits of the
      new naming scheme (I/O performance and data correctness at scale) and
      preserve the file size information, both as default behaviors. With this
      change, we are essentially making the file size information encoded in
      the file name an official, though obscure, extension of the backup meta
      file format.
      
      We preserve an option (kLegacyCrc32cAndFileSize) to use the original
      "legacy" naming scheme, with its caveats, and make it easy to omit the
      file size information (no kFlagIncludeFileSize), for more compact file
      names. But note that changing the naming scheme used on an existing db
      and backup directory can lead to transient space amplification, as some
      files will be stored under two names in the shared_checksum directory.
      Because some backups were saved using the original 6.12 naming scheme,
      we offer two ways of dealing with those files: SST files generated by
      older 6.12 versions can either use the default naming scheme in effect
      when the SST files were generated (kFlagMatchInterimNaming, default, no
      transient space amplification) or can use a new naming scheme (no
      kFlagMatchInterimNaming, potential space amplification because some
      already stored files getting a new name).
      
      We don't have a natural way to detect which files were generated by
      previous 6.12 versions, but this change hacks one in by changing DB
      session ids to now use a more concise encoding, reducing file name
      length, saving ~dozen bytes from SST files, and making them visually
      distinct from DB ids so that they are less likely to be mixed up.
      
      Two final auxiliary notes:
      Recognizing that the backup file names have become a de facto part of
      the backup meta schema, this change makes them easier to parse and
      extend by putting a distinct marker, 's', before DB session ids embedded
      in the name. When we extend this to allow custom checksums in the name,
      they can get their own marker to ensure safe parsing. For backward
      compatibility, file size does not get a marker but is assumed for
      `_[0-9]+[.]`
      
      Another change from initial 6.12 default behavior is never including
      file custom checksum in the file name. Looking ahead to 6.13, we do not
      want the default behavior to cause backup space amplification for
      someone turning on file custom checksum checking in BackupEngine; we
      want that to be an easy decision. When implemented, including file
      custom checksums in backup file names will be a non-default option.
      
      Actual file name patterns and priorities, as regexes:
      
          kLegacyCrc32cAndFileSize OR pre-6.12 SST file ->
            [0-9]+_[0-9]+_[0-9]+[.]sst
          kFlagMatchInterimNaming set (default) AND early 6.12 SST file ->
            [0-9]+_[0-9a-fA-F-]+[.]sst
          kUseDbSessionId AND NOT kFlagIncludeFileSize ->
            [0-9]+_s[0-9A-Z]{20}[.]sst
          kUseDbSessionId AND kFlagIncludeFileSize (default) ->
            [0-9]+_s[0-9A-Z]{20}_[0-9]+[.]sst
      
      We might add opt-in options for more '\_' separated data in the name,
      but embedded file size, if present, will always be after last '\_' and
      before '.sst'.
      
      This change was originally applied to version 6.12. (See https://github.com/facebook/rocksdb/issues/7390)
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/7400
      
      Test Plan:
      unit tests included. Sync point callbacks are used to mimic
      previous version SST files.
      
      Reviewed By: ajkr
      
      Differential Revision: D23759587
      
      Pulled By: pdillinger
      
      fbshipit-source-id: f62d8af4e0978de0a34f26288cfbe66049b70025
      93719fc9
    • P
      Fix HISTORY.md and check_format_compatible.sh for 6.13 branch (#7401) · 7780a360
      Peter Dillinger 提交于
      Summary:
      Make "unreleased" section for HISTORY.md with things misplaced
      into 6.12 and 6.13
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/7401
      
      Test Plan: see how it goes, and `git diff origin/6.13.fb HISTORY.md`
      
      Reviewed By: jay-zhuang
      
      Differential Revision: D23759740
      
      Pulled By: pdillinger
      
      fbshipit-source-id: fc441916c7ff2bbb8d5384137653b340d4c47674
      7780a360
  4. 17 9月, 2020 1 次提交
  5. 16 9月, 2020 5 次提交
    • A
      More robust sync points for intra-L0 compaction tests (#7382) · ec024a86
      Andrew Kryczka 提交于
      Summary:
      `IntraL0CompactionAfterFlushCheckConsistencyFail` was flaky by sometimes failing due to no intra-L0 compactions happening. I was able to repro it by putting a `sleep(1)` in the compaction thread before it grabs the lock and picks a compaction. This also showed other intra-L0 tests are affected too, although some of them exhibit hanging forever rather than failing.
      
      The problem was that all the flushes/ingestions could finish before any compaction got picked, so it would end up simply picking all the files that the test generates for L0->L1. But, these tests intend only the first few files to be picked for L0->L1, and the subsequent files to be picked for intra-L0. This PR adjusts the sync points of all the intra-L0 tests to enforce this.
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/7382
      
      Test Plan: run all the `db_compaction_test`s with and without the artificial `sleep()`
      
      Reviewed By: jay-zhuang
      
      Differential Revision: D23684985
      
      Pulled By: ajkr
      
      fbshipit-source-id: 6508399030dddec7738e9853a7b3dc53ef77a584
      ec024a86
    • Y
      Add basic support for user-defined timestamp to db_bench (#7389) · a28df7a7
      Yanqin Jin 提交于
      Summary:
      Update db_bench so that we can run it with user-defined timestamp.
      Currently, only 64-bit timestamp is supported, while others are disabled by assertion.
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/7389
      
      Test Plan: ./db_bench -benchmarks=fillseq,fillrandom,readrandom,readsequential,....., -user_timestamp_size=8
      
      Reviewed By: ltamasi
      
      Differential Revision: D23720830
      
      Pulled By: riversand963
      
      fbshipit-source-id: 486eacbb82de9a5441e79a61bfa9beef6581608a
      a28df7a7
    • A
      Disable fsync in DB tests with timeouts (#7380) · 9d3b2db9
      Andrew Kryczka 提交于
      Summary:
      Some tests were encountering 600 second timeout in CI, such as `./db_universal_compaction_test --gtest_filter=NumLevels/DBTestUniversalCompaction.UniversalCompactionTrivialMoveTest2/5`, `./db_properties_test --gtest_filter=DBPropertiesTest.AggregatedTablePropertiesAtLevel`, and `./db_basic_test --gtest_filter=DBBasicTest.MultiGetBatchedSortedMultiFile`.
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/7380
      
      Test Plan:
      - `./db_universal_compaction_test --gtest_filter=NumLevels/DBTestUniversalCompaction.UniversalCompactionTrivialMoveTest2/5`: 40 -> 3 seconds
      - `./db_properties_test --gtest_filter=DBPropertiesTest.AggregatedTablePropertiesAtLevel`: 106 -> 1 second
      - `./db_basic_test --gtest_filter=DBBasicTest.MultiGetBatchedSortedMultiFile`: 27 -> 1 second
      
      Reviewed By: anand1976
      
      Differential Revision: D23674570
      
      Pulled By: ajkr
      
      fbshipit-source-id: 4d4ca6a4e2d2e76fcf8b6f6cce91e0f98ba5050c
      9d3b2db9
    • L
      Integrate blob file writing with recovery (#7388) · bf1aeebb
      Levi Tamasi 提交于
      Summary:
      The patch adds support for extracting large values into blob files when
      performing a flush during recovery (when `avoid_flush_during_recovery` is
      `false`). Blob files are built and added to the `Version` similarly to flush.
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/7388
      
      Test Plan: `make check`
      
      Reviewed By: riversand963
      
      Differential Revision: D23709912
      
      Pulled By: ltamasi
      
      fbshipit-source-id: ce48b4227849cf25429ae98574e72b0e1cb9c67d
      bf1aeebb
    • M
      Changes to EncryptedEnv public API (#7279) · 67bd5401
      mrambacher 提交于
      Summary:
      Cleaned up the public API to use the EncryptedEnv.  This change will allow providers to be developed and added to the system easier in the future.  It will also allow better integration in the future with the OPTIONS file.
      
      - The internal classes were moved out of the public API into an internal "env_encryption_ctr.h" header.  Short-cut constructors were added to provide the original API functionality.
      - The APIs to the constructors were changed to take shared_ptr, rather than raw pointers or references to allow better memory management and alternative implementations.
      - CreateFromString methods were added to allow future expansion to other provider and cipher implementations through a standard API.
      
      Additionally, there was a code duplication in the NewXXXFile methods.  This common code was moved under a templatized function.
      
      A first-pass at structuring the code was made to potentially allow multiple EncryptionProviders in a single EncryptedEnv.  The idea was that different providers may use different cipher keys or different versions/algorithms.  The EncryptedEnv should have some means of picking different providers based on information.  The groundwork was started for this (the use of the provider_ member variable was localized) but the work has not been completed.
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/7279
      
      Reviewed By: jay-zhuang
      
      Differential Revision: D23709440
      
      Pulled By: zhichao-cao
      
      fbshipit-source-id: 0e845fff0e03a52603eb9672b4ade32d063ff2f2
      67bd5401
  6. 15 9月, 2020 7 次提交
    • L
      Integrate blob file writing with the flush logic (#7345) · b0e78341
      Levi Tamasi 提交于
      Summary:
      The patch adds support for writing blob files during flush by integrating
      `BlobFileBuilder` with the flush logic, most importantly, `BuildTable` and
      `CompactionIterator`. If `enable_blob_files` is set, large values are extracted
      to blob files and replaced with references. The resulting blob files are then
      logged to the MANIFEST as part of the flush job's `VersionEdit` and
      added to the `Version`, similarly to table files. Errors related to writing
      blob files fail the flush, and any blob files written by such jobs are immediately
      deleted (again, similarly to how SST files are handled). In addition, the patch
      extends the logging and statistics around flushes to account for the presence
      of blob files (e.g. `InternalStats::CompactionStats::bytes_written`, which is
      used for calculating write amplification, now considers the blob files as well).
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/7345
      
      Test Plan: Tested using `make check` and `db_bench`.
      
      Reviewed By: riversand963
      
      Differential Revision: D23506369
      
      Pulled By: ltamasi
      
      fbshipit-source-id: 646885f22dfbe063f650d38a1fedc132f499a159
      b0e78341
    • A
      Makefile support subset/individual valgrind tests (#7379) · d4993b9b
      Andrew Kryczka 提交于
      Summary:
      Introduced `valgrind_check_some`, which is analogous to the `check_some` target for non-valgrind tests. It simplifies the process for running a single valgrind test or subset of valgrind tests when trying to repro a failure.
      
      I also added a `ROCKSDBTESTS_ONLY` parameter, which simplifies selecting a single test to run. Previously the user would have to use `ROCKSDBTESTS_START` and `ROCKSDBTESTS_END`, but it was difficult to determine the end variable since it is an exclusive endpoint and must match an actual test name.
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/7379
      
      Reviewed By: pdillinger
      
      Differential Revision: D23673608
      
      Pulled By: ajkr
      
      fbshipit-source-id: 87ed81f1a671d46c2dff6a701f85f1891c725b3f
      d4993b9b
    • M
      Bring the Configurable options together (#5753) · 7d472acc
      mrambacher 提交于
      Summary:
      This PR merges the functionality of making the ColumnFamilyOptions, TableFactory, and DBOptions into Configurable into a single PR, resolving any merge conflicts
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/5753
      
      Reviewed By: ajkr
      
      Differential Revision: D23385030
      
      Pulled By: zhichao-cao
      
      fbshipit-source-id: 8b977a7731556230b9b8c5a081b98e49ee4f160a
      7d472acc
    • A
      Add a new IOStatus subcode to indicate that writes are fenced off (#7374) · 18a3227b
      anand76 提交于
      Summary:
      In a distributed file system, directory ownership is enforced by fencing
      off the previous owner once they've been preempted by a new owner. This
      PR adds a IOStatus subcode for ```StatusCode::IOError``` to indicate this.
      Once this error is returned for a file write, the DB is put in read-only
      mode and not allowed to resume in read-write mode.
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/7374
      
      Test Plan: Add new unit tests in ```error_handler_fs_test```
      
      Reviewed By: riversand963
      
      Differential Revision: D23687777
      
      Pulled By: anand1976
      
      fbshipit-source-id: bef948642089dc0af399057864d9a8ca339e8b2f
      18a3227b
    • P
      Update Travis config for broken snapd on ppc (#7381) · 7e097507
      Peter Dillinger 提交于
      Summary:
      snapd update has been failing on ppc for ~a week. Disabling it
      for now in pull requests.
      
      Also, https://github.com/facebook/rocksdb/issues/6653 seems to be fixed, so re-enabling standard unit tests for
      PPC on pull requests.
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/7381
      
      Test Plan: CI
      
      Reviewed By: jay-zhuang
      
      Differential Revision: D23684962
      
      Pulled By: pdillinger
      
      fbshipit-source-id: 96ec9487b714c4741bb1653dae90b24118830cb5
      7e097507
    • P
      Disable sst_file_manager in stress testing backup restore (#7384) · a0ac71aa
      Peter Dillinger 提交于
      Summary:
      This is potentially the cause of failures:
      
          Failure in Destroy restore dir with: IO error: file rmdir: /dev/shm/rocksdb/rocksdb_crashtest_whitebox/.restore13: Directory not empty
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/7384
      
      Test Plan: smoke test blackbox_crash_test
      
      Reviewed By: jay-zhuang
      
      Differential Revision: D23685087
      
      Pulled By: pdillinger
      
      fbshipit-source-id: 55f62e9853ce84be1d5ca7d856de867f0f2596ee
      a0ac71aa
    • T
      Implement missing Java API for ColumnFamilyOptions (#7372) · 6b72342a
      Tomasz Posluszny 提交于
      Summary:
      Covered methods:
      - OldDefaults()
      - OptimizeForSmallDb(std::shared_ptr<Cache>)
      
      Covered fields:
      - cf_paths
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/7372
      
      Reviewed By: pdillinger
      
      Differential Revision: D23683449
      
      Pulled By: jay-zhuang
      
      fbshipit-source-id: 3e5a8b657cc382c19de3a48c666a3b0e8d96968d
      6b72342a
  7. 13 9月, 2020 1 次提交
  8. 12 9月, 2020 1 次提交
    • Y
      Cancel tombstone skipping during bottommost compaction (#7356) · 205e5776
      Yanqin Jin 提交于
      Summary:
      During bottommost compaction, RocksDB cannot simply drop a tombstone if
      this tombstone is not in the earliest snapshot. The current behavior is: RocksDB
      skips other internal keys (of the same user key) in the same snapshot range. In
      the meantime, RocksDB should check for the `shutting_down` flag. Otherwise, it
      is possible for a bottommost compaction that has already started running to take
      a long time to finish, even if the application has tried to cancel all background jobs.
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/7356
      
      Test Plan: make check
      
      Reviewed By: ltamasi
      
      Differential Revision: D23663241
      
      Pulled By: riversand963
      
      fbshipit-source-id: 25f8e9b51bc3bfa3353cdf87557800f9d90ee0b5
      205e5776
  9. 11 9月, 2020 4 次提交
    • P
      Assert valid linked list for write group (#7375) · be8445ee
      Peter Dillinger 提交于
      Summary:
      We've seen some segfaults in db_write_test, with at least one
      suggesting corruption of a write group linked list. Adding an assertion
      to have this fail in a more specific way if that is the broken
      invariant.
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/7375
      
      Test Plan: make check
      
      Reviewed By: jay-zhuang
      
      Differential Revision: D23638477
      
      Pulled By: pdillinger
      
      fbshipit-source-id: a76fd677cad60a3a516bd363947bfd9ce418edc1
      be8445ee
    • P
      Fix cf_consistency_stress for backup/restore, harmonize (#7373) · c4e2066d
      Peter Dillinger 提交于
      Summary:
      We can only check key on restored backup if in a stress test
      configuration locking the key. (Fixes mismatch seen in backup/restore
      with atomic flush.)
      
      TestCheckpoint used a very ugly solution to the same problem: copy-paste
      dozens of lines of code with some changes and removals. I removed the
      unnecessary implementation and made the existing one simply adaptive,
      like TestBackupRestore.
      
      Also made TestBackupRestore clean up dead backup/restore directories on
      success.
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/7373
      
      Test Plan:
      blackbox_crash_test_with_atomic_flush for a while,
      blackbox_crash_test for a while, with backup and checkpoint 1 in 5k and
      only 1k max_keys to stress this area
      
      Reviewed By: ajkr
      
      Differential Revision: D23629057
      
      Pulled By: pdillinger
      
      fbshipit-source-id: d7fe7e2be75aaf3cf974be9540a7c5c5de8b371b
      c4e2066d
    • P
      Fix checkpoint file deletion race with avoid_unnecessary_blocking_io (#7369) · 92639b93
      Peter Dillinger 提交于
      Summary:
      https://github.com/facebook/rocksdb/issues/3341 guaranteed that upon return of `GetSortedWalFiles` after
      `DisableFileDeletions`, all pending purges of previously obsolete WAL
      files will have finished. However, the addition of
      avoid_unnecessary_blocking_io in https://github.com/facebook/rocksdb/issues/5043 opened a hole in the code making
      that assurance, which can lead to files to be copied for checkpoint or
      backup going missing before being copied, with that option enabled.
      
      This change patches the hole.
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/7369
      
      Test Plan:
      apparent fix to backups in crash test observed. Will work
      on a unit test for another commit
      
      Reviewed By: ajkr
      
      Differential Revision: D23620258
      
      Pulled By: pdillinger
      
      fbshipit-source-id: bea36b461a5b719c3e3ef802f967bc3e8ae71614
      92639b93
    • L
      Expose the start of the expiration range for TTL blob files through LiveFileMetaData (#7365) · 5ce246c7
      Levi Tamasi 提交于
      Summary:
      The patch adds support for exposing the start of the expiration range
      for TTL blob files through the `GetLiveFilesMetaData` API. This can be
      used for monitoring purposes, i.e. to make sure TTL blob files are
      deleted in a timely manner. The patch also fixes a couple of uninitialized
      variable issues.
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/7365
      
      Test Plan: `make check`
      
      Reviewed By: pdillinger
      
      Differential Revision: D23605465
      
      Pulled By: ltamasi
      
      fbshipit-source-id: 97a9612bf5f4b058423debdd3f28f576bb23a70f
      5ce246c7
  10. 10 9月, 2020 7 次提交
  11. 09 9月, 2020 6 次提交
    • P
      Fix some errors showing up in Travis builds (#7359) · 9de912de
      Peter Dillinger 提交于
      Summary:
      Also enables a pull request to trigger all the Travis
      configurations by writing FULL_CI in the commit message. (See what I did
      there?)
      
      First issue
      
          make: *** No rule to make target 'jl/util/crc32c_ppc_asm.o', needed by 'rocksdbjava'.  Stop.
      
      Second issue
      
          tools/db_bench_tool.cc:5514:38: error: ‘gen_exp.rocksdb::Benchmark::GenerateTwoTermExpKeys::keyrange_size_’ may be used uninitialized in this function
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/7359
      
      Test Plan: CI
      
      Reviewed By: zhichao-cao
      
      Differential Revision: D23582132
      
      Pulled By: pdillinger
      
      fbshipit-source-id: 06d794673fd522ba11cf6398385387e6bd97ef89
      9de912de
    • A
      Use FSRandomRWFilePtr Object to call underlying file system. (#7198) · 0de335e0
      Akanksha Mahajan 提交于
      Summary:
      Replace FSRandomRWFile pointer with FSRandomRWFilePtr object in the rocksdb internal code.
      This new object wraps FSRandomRWFile pointer.
      
      Objective: If tracing is enabled, FSRandomRWFile object returns FSRandomRWFileTracingWrapper pointer that includes all necessary information in IORecord and calls underlying FileSystem and invokes IOTracer to dump that record in a binary file. If tracing is disabled then, underlying FileSystem pointer is returned directly.
      FSRandomRWFilePtr wrapper class is added to bypass the FSRandomRWFileWrapper when
      tracing is disabled.
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/7198
      
      Test Plan: make check -j64
      
      Reviewed By: anand1976
      
      Differential Revision: D23421116
      
      Pulled By: akankshamahajan15
      
      fbshipit-source-id: 8a5ba0e7d9c1ba34c3a6f29829b107c5f09ab6a3
      0de335e0
    • J
      Fix compile error for old gcc-4.8 (#7358) · 8a8a01c6
      Jay Zhuang 提交于
      Summary:
      gcc-4.8 returns error when using the constructor. Not sure if it's a compiler bug/limitation or code issue:
      ```
      table/block_based/block_based_table_reader.cc:3183:67: error: use of deleted function ‘rocksdb::WritableFileStringStreamAdapter::WritableFileStringStreamAdapter(rocksdb::WritableFileStringStreamAdapter&&)’
      ```
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/7358
      
      Reviewed By: pdillinger
      
      Differential Revision: D23577651
      
      Pulled By: jay-zhuang
      
      fbshipit-source-id: b0197e3d3538da61a6f3866410d88d2047fb9695
      8a8a01c6
    • Y
      Update HISTORY.md for PR7329 (#7355) · 8307d440
      Yanqin Jin 提交于
      Summary:
      As title.
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/7355
      
      Reviewed By: pdillinger
      
      Differential Revision: D23566635
      
      Pulled By: riversand963
      
      fbshipit-source-id: f8d846bcff637e7617b764b7bfb9a948ea18d195
      8307d440
    • A
      Store FSWritableFilePtr object in WritableFileWriter (#7193) · b175eceb
      Akanksha Mahajan 提交于
      Summary:
      Replace FSWritableFile pointer with FSWritableFilePtr
          object in WritableFileWriter.
          This new object wraps FSWritableFile pointer.
      
          Objective: If tracing is enabled, FSWritableFile Ptr returns
          FSWritableFileTracingWrapper pointer that includes all necessary
          information in IORecord and calls underlying FileSystem and invokes
          IOTracer to dump that record in a binary file. If tracing is disabled
          then, underlying FileSystem pointer is returned directly.
          FSWritableFilePtr wrapper class is added to bypass the
          FSWritableFileWrapper when
          tracing is disabled.
      
          Test Plan: make check -j64
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/7193
      
      Reviewed By: anand1976
      
      Differential Revision: D23355915
      
      Pulled By: akankshamahajan15
      
      fbshipit-source-id: e62a27a13c1fd77e36a6dbafc7006d969bed25cf
      b175eceb
    • P
      Fix backup/restore in stress/crash test (#7357) · 4e258d3e
      Peter Dillinger 提交于
      Summary:
      (1) Skip check on specific key if restoring an old backup
      (small minority of cases) because it can fail in those cases. (2) Remove
      an old assertion about number of column families and number of keys
      passed in, which is broken by atomic flush (cf_consistency) test. Like
      other code (for better or worse) assume a single key and iterate over
      column families. (3) Apply mock_direct_io to NewSequentialFile so that
      db_stress backup works on /dev/shm.
      
      Also add more context to output in case of backup/restore db_stress
      failure.
      
      Also a minor fix to BackupEngine to report first failure status in
      creating new backup, and drop another clue about the potential
      source of a "Backup failed" status.
      
      Reverts "Disable backup/restore stress test (https://github.com/facebook/rocksdb/issues/7350)"
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/7357
      
      Test Plan:
      Using backup_one_in=10000,
      "USE_CLANG=1 make crash_test_with_atomic_flush" for 30+ minutes
      "USE_CLANG=1 make blackbox_crash_test" for 30+ minutes
      And with use_direct_reads with TEST_TMPDIR=/dev/shm/rocksdb
      
      Reviewed By: riversand963
      
      Differential Revision: D23567244
      
      Pulled By: pdillinger
      
      fbshipit-source-id: e77171c2e8394d173917e36898c02dead1c40b77
      4e258d3e