1. 24 3月, 2021 5 次提交
  2. 23 3月, 2021 3 次提交
    • Y
      Add user-defined timestamps to db_stress (#8061) · 08144bc2
      Yanqin Jin 提交于
      Summary:
      Add some basic test for user-defined timestamp to db_stress. Currently,
      read with timestamp always tries to read using the current timestamp.
      Due to the per-key timestamp-sequence ordering constraint, we only add timestamp-
      related tests to the `NonBatchedOpsStressTest` since this test serializes accesses
      to the same key and uses a file to cross-check data correctness.
      The timestamp feature is not supported in a number of components, e.g. Merge, SingleDelete,
      DeleteRange, CompactionFilter, Readonly instance, secondary instance, SST file ingestion, transaction,
      etc. Therefore, db_stress should exit if user enables both timestamp and these features at the same
      time. The (currently) incompatible features can be found in
      `CheckAndSetOptionsForUserTimestamp`.
      
      This PR also fixes a bug triggered when timestamp is enabled together with
      `index_type=kBinarySearchWithFirstKey`. This bug fix will also be in another separate PR
      with more unit tests coverage. Fixing it here because I do not want to exclude the index type
      from crash test.
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/8061
      
      Test Plan: make crash_test_with_ts
      
      Reviewed By: jay-zhuang
      
      Differential Revision: D27056282
      
      Pulled By: riversand963
      
      fbshipit-source-id: c3e00ad1023fdb9ebbdf9601ec18270c5e2925a9
      08144bc2
    • L
      Adjust the set of potential min_blob_size values in stress/crash tests (#8085) · 0d800dad
      Levi Tamasi 提交于
      Summary:
      Since our stress/crash tests by default generate values of size 8, 16, or 24,
      it does not make much sense to set `min_blob_size` to 256. The patch
      updates the set of potential `min_blob_size` values in the crash test
      script and in `db_stress` where it might be set dynamically using
      `SetOptions`.
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/8085
      
      Test Plan: Ran `make check` and tried the crash test script.
      
      Reviewed By: riversand963
      
      Differential Revision: D27238620
      
      Pulled By: ltamasi
      
      fbshipit-source-id: 4a96f9944b1ed9220d3045c5ab0b34c49009aeee
      0d800dad
    • Y
      Remove duplicate code (#8079) · d6052d38
      Yanqin Jin 提交于
      Summary:
      The implementation of TransactionDB::WrapDB() and
      TransactionDB::WrapStackableDB() are almost identical, except for the
      type of the first argument `db`. This PR adds a new template function in
      anonymous namespace, and calls it in the above two functions.
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/8079
      
      Test Plan: make check
      
      Reviewed By: lth
      
      Differential Revision: D27184575
      
      Pulled By: riversand963
      
      fbshipit-source-id: f2855a6db3a7e897d0d611f7050ca4b696c56a7a
      d6052d38
  3. 22 3月, 2021 1 次提交
  4. 20 3月, 2021 5 次提交
    • P
      Begin forward compatibility for new backup meta schema (#8069) · 3bfd3ed2
      Peter Dillinger 提交于
      Summary:
      This does not add any new public APIs or published
      functionality, but adds the ability to read and use (and in tests,
      write) backups with a new meta file schema, based on the old schema
      but not forward-compatible (before this change). The new schema enables
      some capabilities not in the old:
      
      * Explicit versioning, so that users get clean error messages the next
      time we want to break forward compatibility.
      * Ignoring unrecognized fields (with warning), so that new non-critical
      features can be added without breaking forward compatibility.
      * Rejecting future "non-ignorable" fields, so that new features critical
      to some use-cases could potentially be added outside of linear schema
      versions, with broken forward compatibility.
      * Fields at the end of the meta file, such as for checksum of the meta
      file's contents (up to that point)
      * New optional 'size' field for each file, which is checked when present
      * Optionally omitting 'crc32' field, so that we aren't required to have
      a crc32c checksum for files to take a backup. (E.g. to support backup
      via hard links and to better support file custom checksums.)
      
      Because we do not have a JSON parser and to share code, the new schema
      is simply derived from the old schema.
      
      BackupEngine code is updated to allow missing checksums in some places,
      and to make that easier, `has_checksum` and `verify_checksum_after_work`
      are eliminated. Empty `checksum_hex` indicates checksum is unknown. I'm
      not too afraid of regressing on data integrity, because
      (a) we have pretty good test coverage of corruption detection in backups, and
      (b) we are increasingly relying on the DB itself for data integrity rather than
      it being an exclusive feature of backups.
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/8069
      
      Test Plan:
      new unit tests, added to crash test (some local run with
      boosted backup probability)
      
      Reviewed By: ajkr
      
      Differential Revision: D27139824
      
      Pulled By: pdillinger
      
      fbshipit-source-id: 9e0e4decfb42bb84783d64d2d246456d97e8e8c5
      3bfd3ed2
    • S
      Remove unused variable (#8067) · c8b0842b
      storagezhang 提交于
      Summary:
      Remove unused variable `Slice blob_to_write` in `db/blob/blob_file_cache_test.cc`.
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/8067
      
      Reviewed By: zhichao-cao
      
      Differential Revision: D27107693
      
      Pulled By: riversand963
      
      fbshipit-source-id: 9bfd4d296a6a1714ad5c1fa5bb231a0c52dbd56d
      c8b0842b
    • S
      Include C++ standard library headers instead of C compatibility headers (#8068) · d9be6556
      storagezhang 提交于
      Summary: Pull Request resolved: https://github.com/facebook/rocksdb/pull/8068
      
      Reviewed By: zhichao-cao
      
      Differential Revision: D27147685
      
      Pulled By: riversand963
      
      fbshipit-source-id: 5428b1c0142ecae17c977fba31a6d49b52983d1c
      d9be6556
    • S
      Add default in switch (#8065) · c7063242
      storagezhang 提交于
      Summary:
      switch may not cover all branch in `db/c.cc`:
      
      ```c++
      void rocksdb_options_set_access_hint_on_compaction_start(
          rocksdb_options_t* opt, int v) {
        switch(v) {
          case 0:
            opt->rep.access_hint_on_compaction_start =
                ROCKSDB_NAMESPACE::Options::NONE;
            break;
          case 1:
            opt->rep.access_hint_on_compaction_start =
                ROCKSDB_NAMESPACE::Options::NORMAL;
            break;
          case 2:
            opt->rep.access_hint_on_compaction_start =
                ROCKSDB_NAMESPACE::Options::SEQUENTIAL;
            break;
          case 3:
            opt->rep.access_hint_on_compaction_start =
                ROCKSDB_NAMESPACE::Options::WILLNEED;
            break;
        }
      }
      ```
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/8065
      
      Reviewed By: riversand963
      
      Differential Revision: D27102892
      
      Pulled By: zhichao-cao
      
      fbshipit-source-id: ad1d20d192712878e61597311ba75b55df0066d7
      c7063242
    • Z
      Add new Append API with DataVerificationInfo to Env WritableFile (#8071) · dd0447ae
      Zhichao Cao 提交于
      Summary:
      Add the new Append and PositionedAppend API to env WritableFile. User is able to benefit from the write checksum handoff API when using the legacy Env classes. FileSystem already implemented the checksum handoff API.
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/8071
      
      Test Plan: make check, added new unit test.
      
      Reviewed By: anand1976
      
      Differential Revision: D27177043
      
      Pulled By: zhichao-cao
      
      fbshipit-source-id: 430c8331fc81099fa6d00f4fff703b68b9e8080e
      dd0447ae
  5. 19 3月, 2021 5 次提交
    • Y
      Fix a test failure when built with ASSERT_STATUS_CHECKED=1 (#8075) · 7ee41a5d
      Yanqin Jin 提交于
      Summary:
      As title.
      Test plan
      ASSERT_STATUS_CHECKED=1 make -j20 backupable_db_test error_handler_fs_test
      ./backupable_db_test
      ./error_handler_fs_test
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/8075
      
      Reviewed By: zhichao-cao
      
      Differential Revision: D27173832
      
      Pulled By: riversand963
      
      fbshipit-source-id: 37dac50f7c89127804ff2572abddd4174642de30
      7ee41a5d
    • Y
      Remove db_with_timestamp_basic_test from platform_dependent list (#8077) · 576cff11
      Yanqin Jin 提交于
      Summary: Pull Request resolved: https://github.com/facebook/rocksdb/pull/8077
      
      Test Plan: Travis CI
      
      Reviewed By: zhichao-cao
      
      Differential Revision: D27178276
      
      Pulled By: riversand963
      
      fbshipit-source-id: 17911dcc2d5790eb396efcd7f90dea76a127cf15
      576cff11
    • Y
      Check and handle failure in ldb (#8072) · 063a68b9
      Yanqin Jin 提交于
      Summary:
      Currently, a few ldb commands do not check the execution result of
      database operations. This PR checks the execution results and tries to
      improve the error reporting.
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/8072
      
      Test Plan:
      ```
      make check
      ```
      and
      ```
      ASSERT_STATUS_CHECKED=1 make -j20 ldb
      python tools/ldb_test.py
      ```
      
      Reviewed By: zhichao-cao
      
      Differential Revision: D27152466
      
      Pulled By: riversand963
      
      fbshipit-source-id: b94220496a4b3591b61c1d350f665860a6579f30
      063a68b9
    • Z
      Separate handling of WAL Sync io error with SST flush io error (#8049) · c8109471
      Zhichao Cao 提交于
      Summary:
      In previous codebase, if WAL is used, all the retryable IO Error will be treated as hard error. So write is stalled. In this PR, the retryable IO error from WAL sync is separated from SST file flush io error. If WAL Sync is ok and retryable IO Error only happens during SST flush, the error is mapped to soft error. So user can continue insert to Memtable and append to WAL.
      
      Resolve the bug that if WAL sync fails, the memtable status does not roll back due to calling PickMemtable early than calling and checking SyncClosedLog.
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/8049
      
      Test Plan: added new unit test, make check
      
      Reviewed By: anand1976
      
      Differential Revision: D26965529
      
      Pulled By: zhichao-cao
      
      fbshipit-source-id: f5fecb66602212523c92ee49d7edcb6065982410
      c8109471
    • P
      Revamp WriteController (#8064) · e7a60d01
      Peter Dillinger 提交于
      Summary:
      WriteController had a number of issues:
      * It could introduce a delay of 1ms even if the write rate never exceeded the
      configured delayed_write_rate.
      * The DB-wide delayed_write_rate could be exceeded in a number of ways
      with multiple column families:
        * Wiping all pending delay "debts" when another column family joins
        the delay with GetDelayToken().
        * Resetting last_refill_time_ to (now + sleep amount) means each
        column family can write with delayed_write_rate for large writes.
        * Updating bytes_left_ for a partial refill without updating
        last_refill_time_ would essentially give out random bonuses,
        especially to medium-sized writes.
      
      Now the code is much simpler, with these issues fixed. See comments in
      the new code and new (replacement) tests.
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/8064
      
      Test Plan: new tests, better than old tests
      
      Reviewed By: mrambacher
      
      Differential Revision: D27064936
      
      Pulled By: pdillinger
      
      fbshipit-source-id: 497c23fe6819340b8f3d440bd634d8a2bc47323f
      e7a60d01
  6. 18 3月, 2021 4 次提交
  7. 17 3月, 2021 1 次提交
    • S
      Java-API: Fix minor Javadoc copy-paste errors (#8034) · 8d908846
      stefan-zobel 提交于
      Summary:
      Fixes 3 minor Javadoc copy-paste errors in the `RocksDB#newIterator()` and `Transaction#getIterator()` variants that take a column family handle but are talking about iterating over "the database" or "the default column family".
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/8034
      
      Reviewed By: jay-zhuang
      
      Differential Revision: D26877667
      
      Pulled By: mrambacher
      
      fbshipit-source-id: 95dd95b667c496e389f221acc9a91b340e4b63bf
      8d908846
  8. 16 3月, 2021 3 次提交
    • M
      Make ChRootEnv, EncryptedEnv, and TimedEnv into FileSystems (#7968) · 1a343bc3
      mrambacher 提交于
      Summary:
      These classes were wraps of Env that provided only extensions to the FileSystem functionality.  Changed the classes to be FileSystems and the wraps to be of the CompositeEnvWrapper.
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/7968
      
      Reviewed By: anand1976
      
      Differential Revision: D26900253
      
      Pulled By: mrambacher
      
      fbshipit-source-id: 94001d8024a3c54a1c11adadca2bac66c3af2a77
      1a343bc3
    • Y
      Fix a bug in key comparison when index type is kBinarySearchWithFirstKey (#8062) · 03043528
      Yanqin Jin 提交于
      Summary:
      When timestamp is enabled, key comparison should take this into account.
      In `BlockBasedTableReader::Get()`, `BlockBasedTableReader::MultiGet()`,
      assume the target key is `key`, and the timestamp upper bound is `ts`.
      The highest key in current block is (key, ts1), while the lowest key in next
      block is (key, ts2).
      If
      ```
      ts1 > ts > ts2
      ```
      then
      ```
      (key, ts1) < (key, ts) < (key, ts2)
      ```
      It can be shown that if `Compare()` is used, then we will mistakenly skip the next
      block. Instead, we should use `CompareWithoutTimestamp()`.
      
      The majority of this PR makes some existing tests in `db_with_timestamp_basic_test.cc`
      parameterized so that different index types can be tested. A new unit test is
      also added for more coverage.
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/8062
      
      Test Plan: make check
      
      Reviewed By: ltamasi
      
      Differential Revision: D27057557
      
      Pulled By: riversand963
      
      fbshipit-source-id: c1062fa7c159ed600a1ad7e461531d52265021f1
      03043528
    • Y
      Move a test file to a better location (#8054) · 85d4f2c8
      Yanqin Jin 提交于
      Summary:
      As title.
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/8054
      
      Test Plan: make check
      
      Reviewed By: mrambacher
      
      Differential Revision: D27017955
      
      Pulled By: riversand963
      
      fbshipit-source-id: 829497d507bc89afbe982f8a8cf3555e52fd7098
      85d4f2c8
  9. 15 3月, 2021 2 次提交
    • M
      Use SystemClock* instead of std::shared_ptr<SystemClock> in lower level routines (#8033) · 3dff28cf
      mrambacher 提交于
      Summary:
      For performance purposes, the lower level routines were changed to use a SystemClock* instead of a std::shared_ptr<SystemClock>.  The shared ptr has some performance degradation on certain hardware classes.
      
      For most of the system, there is no risk of the pointer being deleted/invalid because the shared_ptr will be stored elsewhere.  For example, the ImmutableDBOptions stores the Env which has a std::shared_ptr<SystemClock> in it.  The SystemClock* within the ImmutableDBOptions is essentially a "short cut" to gain access to this constant resource.
      
      There were a few classes (PeriodicWorkScheduler?) where the "short cut" property did not hold.  In those cases, the shared pointer was preserved.
      
      Using db_bench readrandom perf_level=3 on my EC2 box, this change performed as well or better than 6.17:
      
      6.17: readrandom   :      28.046 micros/op 854902 ops/sec;   61.3 MB/s (355999 of 355999 found)
      6.18: readrandom   :      32.615 micros/op 735306 ops/sec;   52.7 MB/s (290999 of 290999 found)
      PR: readrandom   :      27.500 micros/op 871909 ops/sec;   62.5 MB/s (367999 of 367999 found)
      
      (Note that the times for 6.18 are prior to revert of the SystemClock).
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/8033
      
      Reviewed By: pdillinger
      
      Differential Revision: D27014563
      
      Pulled By: mrambacher
      
      fbshipit-source-id: ad0459eba03182e454391b5926bf5cdd45657b67
      3dff28cf
    • A
      Deflake tests of compaction based on compensated file size (#8036) · b8f40f7f
      Andrew Kryczka 提交于
      Summary:
      CompactionDeletionTriggerReopen was observed to be flaky recently:
      https://app.circleci.com/pipelines/github/facebook/rocksdb/6030/workflows/787af4f3-b9f7-4645-8e8d-1fb0ebf05539/jobs/101451.
      
      I went through it and the related tests and arrived at different
      conclusions on what constraints we can expect on DB size. Some
      constraints got looser and some got tighter. The particular constraint
      that flaked got a lot looser so at least the flake linked above would have been prevented.
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/8036
      
      Reviewed By: riversand963
      
      Differential Revision: D26862566
      
      Pulled By: ajkr
      
      fbshipit-source-id: 3512b86b4fb41aeecae32e1c7382c03916d88d88
      b8f40f7f
  10. 13 3月, 2021 4 次提交
    • L
      Fix a harmless data race affecting two test cases (#8055) · b708b166
      Levi Tamasi 提交于
      Summary:
      `DBTest.GetLiveBlobFiles` and `ObsoleteFilesTest.BlobFiles` both modify the
      current `Version` in their setup phase, implicitly assuming that no other
      threads would touch the `Version` while this is happening. The periodic
      stats dumper thread violates this assumption; the patch fixes this by
      disabling it in the affected test cases. (Note: the data race is
      harmless in the sense that it only affects test code.)
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/8055
      
      Test Plan:
      ```
      COMPILE_WITH_TSAN=1 make db_test -j24
      gtest-parallel --repeat=10000 ./db_test --gtest_filter="*GetLiveBlobFiles"
      COMPILE_WITH_TSAN=1 make obsolete_files_test -j24
      gtest-parallel --repeat=10000 ./obsolete_files_test --gtest_filter="*BlobFiles"
      ```
      
      Reviewed By: riversand963
      
      Differential Revision: D27022715
      
      Pulled By: ltamasi
      
      fbshipit-source-id: b6cc77ed63d8bc1cbe0603522ff1a572182fc9ab
      b708b166
    • P
      Add ROCKSDB_GTEST_BYPASS (#8048) · 01c2ec3f
      Peter Dillinger 提交于
      Summary:
      This is for cases that do not meet the Facebook criteria for
      SKIP (see new comments). Also made ROCKSDB_GTEST_{SKIP,BYPASS} print the
      message because gtest doesn't ever seem to.
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/8048
      
      Test Plan: manual inspection of ./ribbon_test output, CI
      
      Reviewed By: mrambacher
      
      Differential Revision: D26953688
      
      Pulled By: pdillinger
      
      fbshipit-source-id: c914eaffe7d419db6ab90a193d474531e23582e5
      01c2ec3f
    • P
      Instantiate tests DBIteratorTestForPinnedData (#8051) · 119dda21
      Peter Dillinger 提交于
      Summary:
      a trial gtest upgrade discovered some parameterized tests missing instantiation. By some miracle, they still pass.
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/8051
      
      Test Plan: thisisthetest
      
      Reviewed By: mrambacher
      
      Differential Revision: D27003684
      
      Pulled By: pdillinger
      
      fbshipit-source-id: cde1cab1551fb282f67d462d46574bd30bd5e61f
      119dda21
    • P
      Add BackupEngine API for backup file details (#8042) · 589ea6be
      Peter Dillinger 提交于
      Summary:
      This API can be used for things like determining how much space
      can be freed up by deleting a particular backup, etc.
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/8042
      
      Test Plan:
      validation of the API added to many existing backup unit
      tests
      
      Reviewed By: mrambacher
      
      Differential Revision: D26936577
      
      Pulled By: pdillinger
      
      fbshipit-source-id: f0bbd90f0917b9781a6837652fb4616d9247816a
      589ea6be
  11. 11 3月, 2021 3 次提交
    • Y
      Enable backward iterator for keys with user-defined timestamp (#8035) · 82b38884
      Yanqin Jin 提交于
      Summary:
      This PR does the following:
      
      - Enable backward iteration for keys with user-defined timestamp. Note that merge, single delete, range delete are not supported yet.
      - Introduces a new helper API `Comparator::EqualWithoutTimestamp()`.
      - Fix a typo in `SetTimestamp()`.
      - Add/update unit tests
      
      Run db_bench (built with DEBUG_LEVEL=0) to demonstrate that no overhead is introduced for CPU-intensive workloads with a lot of `Prev()`. Also provided results of iterating keys with timestamps.
      
      1. Disable timestamp, run:
      ```
      ./db_bench -db=/dev/shm/rocksdb -disable_wal=1 -benchmarks=fillseq,seekrandom[-W1-X6] -reverse_iterator=1 -seek_nexts=5
      ```
      Results:
      > Baseline
      > - seekrandom [AVG    6 runs] : 96115 ops/sec;   53.2 MB/sec
      > - seekrandom [MEDIAN 6 runs] : 98075 ops/sec;   54.2 MB/sec
      >
      > This PR
      > - seekrandom [AVG    6 runs] : 95521 ops/sec;   52.8 MB/sec
      > - seekrandom [MEDIAN 6 runs] : 96338 ops/sec;   53.3 MB/sec
      
      2. Enable timestamp, run:
      ```
      ./db_bench -user_timestamp_size=8  -db=/dev/shm/rocksdb -disable_wal=1 -benchmarks=fillseq,seekrandom[-W1-X6] -reverse_iterator=1 -seek_nexts=5
      ```
      Result:
      > Baseline: not supported
      >
      > This PR
      > - seekrandom [AVG    6 runs] : 90514 ops/sec;   50.1 MB/sec
      > - seekrandom [MEDIAN 6 runs] : 90834 ops/sec;   50.2 MB/sec
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/8035
      
      Reviewed By: ltamasi
      
      Differential Revision: D26926668
      
      Pulled By: riversand963
      
      fbshipit-source-id: 95330cc2242397c03e09d29e5417dfb0adc98ef5
      82b38884
    • Y
      Make secondary instance use ManifestTailer (#7998) · 64517d18
      Yanqin Jin 提交于
      Summary:
      This PR
      
      - adds a class `ManifestTailer` that inherits from `VersionEditHandlerPointInTime`. `ManifestTailer::Iterate()` can be called multiple times to tail the primary instance's MANIFEST and apply the changes to the secondary,
      - updates the implementation of `ReactiveVersionSet::ReadAndApply` to use this class,
      - removes unused code in version_set.cc,
      - updates existing tests, e.g. removing deleted sync points from unit tests,
      - adds a new test to address the bug in https://github.com/facebook/rocksdb/issues/7815.
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/7998
      
      Test Plan:
      make check
      Existing and newly-added tests in version_set_test.cc and db_secondary_test.cc
      
      Reviewed By: jay-zhuang
      
      Differential Revision: D26926641
      
      Pulled By: riversand963
      
      fbshipit-source-id: 8d4dd15db0ba863c213f743e33b5a207e948c980
      64517d18
    • D
      Mac M1 crc32 intrinsics ARM64 check support proposal (#7893) · 7a3444bf
      David CARLIER 提交于
      Summary: Pull Request resolved: https://github.com/facebook/rocksdb/pull/7893
      
      Reviewed By: ajkr
      
      Differential Revision: D26050966
      
      Pulled By: jay-zhuang
      
      fbshipit-source-id: 9df2bb65d82defd7fad49d5369979b03e22d39c2
      7a3444bf
  12. 10 3月, 2021 4 次提交
    • S
      Java-API: byteCompressionType should be declared as primitive type byte (#7981) · cc34da75
      stefan-zobel 提交于
      Summary:
      The variable `byteCompressionType` is only assigned values of primitive type and is never 'null', but it is declared with the boxed type 'Byte'.
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/7981
      
      Reviewed By: ajkr
      
      Differential Revision: D26546600
      
      Pulled By: jay-zhuang
      
      fbshipit-source-id: 07b579cdfcfc2262a448ca3626e216416fd05892
      cc34da75
    • Q
      Fix compile error (#7908) · 6fad38eb
      qinzuoyan 提交于
      Summary:
      OS: Ubuntu 14.04
      Compiler: GCC 4.9.4
      Compile error:
      ```
      db/forward_iterator.cc:996:62: error: declaration of ‘key’ shadows a member of 'this' [-Werror=shadow]
         auto cmp = [&](const FileMetaData* f, const Slice& key) -> bool {
      ```
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/7908
      
      Reviewed By: jay-zhuang
      
      Differential Revision: D26899986
      
      Pulled By: ajkr
      
      fbshipit-source-id: 66b0b97aefd0f13a085e063491f8207366a9f848
      6fad38eb
    • H
      Add support for custom file systems to ldb and sst_dump (#8010) · 670567db
      Hans Holmberg 提交于
      Summary:
      This PR adds support for custom file systems to ldb and sst_dump by adding command line options for specifying --fs_uri and --backup_fs uri (for ldb backup/restore commands). fs_uri is already supported in db_bench and db_stress, and there is already support in ldb and db stress for specifying customized envs.
      
      The PR also fixes what looks like a bug in the ldb backup/restore commands. As it is right now, backups can only be made from and to the same environment/file system which does not seem to be the intended behavior. This PR makes it possible to do/restore backups between different envs/file systems.
      
      Example:
      `./ldb backup --fs_uri=zenfs://dev:nvme2n1 --backup_fs_uri=posix:// --backup_dir=/tmp/my_rocksdb_backup  --db=rocksdbtest/dbbench
      `
      
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/8010
      
      Reviewed By: jay-zhuang
      
      Differential Revision: D26904654
      
      Pulled By: ajkr
      
      fbshipit-source-id: 9b695ed8b944fcc6b27c4daaa9f52e87ee2c1fb4
      670567db
    • E
      make:Fix c header prototypes (#7994) · 7381dad1
      Ed rodriguez 提交于
      Summary: Pull Request resolved: https://github.com/facebook/rocksdb/pull/7994
      
      Reviewed By: jay-zhuang
      
      Differential Revision: D26904603
      
      Pulled By: ajkr
      
      fbshipit-source-id: 0af92a51de895b40c7faaa4f0870b3f63279fe21
      7381dad1