1. 12 2月, 2019 7 次提交
  2. 09 2月, 2019 4 次提交
    • T
      Implement trace sampling (#4963) · 08809f5e
      tang-jianfeng 提交于
      Summary:
      Implement trace sampling to allow user to specify the sampling frequency, i.e. save one per how many requests, so that a user does not need to log all if he/she is interested in only a sampled set.
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/4963
      
      Differential Revision: D14011190
      
      Pulled By: tang-jianfeng
      
      fbshipit-source-id: 078b631d9319b67cb089dd2c30e21d0df8dc406a
      08809f5e
    • M
      WritePrepared: fix ValidateSnapshot with long-running txn (#4961) · 10d14693
      Maysam Yabandeh 提交于
      Summary:
      ValidateSnapshot checks if another txn has committed a value to about-to-be-locked key since a particular snapshot. It applies an optimization of looking into only the memtable if snapshot seq is larger than the earliest seq in the memtables. With a long-running txn in WritePrepared, the prepared value might be flushed out to the disk and yet it commits after the snapshot, which breaks this optimization. The patch fixes that by disabling this optimization when the min_uncomitted seq at the time the snapshot was taken is lower than earliest seq in the memtables.
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/4961
      
      Differential Revision: D14009947
      
      Pulled By: maysamyabandeh
      
      fbshipit-source-id: 1d11679950326f7c4094b433e6b821b729f08850
      10d14693
    • M
      Reset size_ to 0 in PinnableSlice::Reset (#4962) · 39fb88f1
      Maysam Yabandeh 提交于
      Summary:
      It would avoid bugs if the reused PinnableSlice is not actually reassigned and yet the programmer makes conclusions based on the size of the Slice.
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/4962
      
      Differential Revision: D14012710
      
      Pulled By: maysamyabandeh
      
      fbshipit-source-id: 23f4e173386b5461fd5650f44cde470805f4e816
      39fb88f1
    • S
      Add a placeholder in manifest indicating ignorable record (#4960) · 1a761e6a
      Siying Dong 提交于
      Summary:
      We want to reserve some right that some extra information added manifest
      in the future can be forward compatible by previous versions. Now we create a
      place holder for that. A bit in tag is added to indicate that a field can be
      safely ignored.
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/4960
      
      Differential Revision: D14000484
      
      Pulled By: siying
      
      fbshipit-source-id: cbf5bad3f9d5ec798f789806f244d1c20d3b66d6
      1a761e6a
  3. 08 2月, 2019 2 次提交
    • S
      Deprecate CompactionFilter::IgnoreSnapshots() = false (#4954) · f48758e9
      Siying Dong 提交于
      Summary:
      We found that the behavior of CompactionFilter::IgnoreSnapshots() = false isn't
      what we have expected. We thought that snapshot will always be preserved.
      However, we just realized that, if no snapshot is created while compaction
      starts, and a snapshot is created after that, the data seen from the snapshot
      can successfully be dropped by the compaction. This creates a strange behavior
      to the feature, which is hard to explain. Like what is documented in code
      comment, this feature is not very useful with snapshot anyway. The decision
      is to deprecate the feature.
      
      We keep the function to avoid to break users code. However, we will fail
      compactions if false is returned.
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/4954
      
      Differential Revision: D13981900
      
      Pulled By: siying
      
      fbshipit-source-id: 2db8c2c3865acd86a28dca625945d1481b1d1e36
      f48758e9
    • S
      Remove cuckoo hash memtable (#4953) · cf3a6717
      Siying Dong 提交于
      Summary:
      Cuckoo Hash is less useful than we initially expected. Remove it.
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/4953
      
      Differential Revision: D13979264
      
      Pulled By: siying
      
      fbshipit-source-id: 2a60afdaa989f045357398b43a1cc5d46f4492ed
      cf3a6717
  4. 07 2月, 2019 1 次提交
    • M
      WritePrepared: non-atomic commit of delayed prepared (#4947) · 199fabc1
      Maysam Yabandeh 提交于
      Summary:
      Commit of delayed prepared has two non-atomic steps: add to commit cache, remove from delayed_prepared_. Similarly in ::IsInSnapshot we read from commit cache first and then look into delayed_prepared_. Due to non-atomicity thus the reader might not find the
      prep_seq that is just committed neither in commit cache nor in delayed_prepared_. To fix that i)
      we check if there was any delayed prepared BEFORE looking into commit
      cache, ii) if there was, we complete the search steps to be these: i)
      commit cache, ii) delayed prepared, commit cache again. In this way if
      the first query to commit cache missed the commit, the 2nd will catch it. The cost of the redundant read from commit cache is paid only if delayed_prepared_ is nonempty which should be a very rare scenario.
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/4947
      
      Differential Revision: D13952754
      
      Pulled By: maysamyabandeh
      
      fbshipit-source-id: 8f47826b13f8ce154398d842028342423f4ca2b2
      199fabc1
  5. 06 2月, 2019 6 次提交
  6. 05 2月, 2019 1 次提交
    • M
      WritePrepared: release snapshot equal to max (#4944) · dcb73e77
      Maysam Yabandeh 提交于
      Summary:
      WritePrepared maintains a list of snapshots that are <= max_evicted_seq_. Based on this list, old_commit_map_ is updated if an evicted commit entry overlaps with such snapshot. Such lists are garbage collected when the release of snapshot is reported to WritePreparedTxnDB, which is the next time max_evicted_seq_ is updated and yet the snapshot is not found is the list returned from DB. This logic was broken since ReleaseSnapshotInternal was using "< max_evicted_seq_" to cleanup old_commit_map_, which would leave a snapshot uncleaned if it "= max_evicted_seq_". The patch fixes that and adds a unit test to check for the bug.
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/4944
      
      Differential Revision: D13945000
      
      Pulled By: maysamyabandeh
      
      fbshipit-source-id: 0c904294f735911f52348a148bf1f945282fc17c
      dcb73e77
  7. 02 2月, 2019 2 次提交
  8. 01 2月, 2019 4 次提交
    • Y
      fix for nvme device path (#4866) · 4091597c
      Young Tack Jin 提交于
      Summary:
      nvme device path doesn't have "block" as like "nvme/nvme0/nvme0n1"
      or "nvme/nvme0/nvme0n1/nvme0n1p1". the last directory such as
      "nvme0n1p1" should be removed if nvme drive is partitioned.
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/4866
      
      Differential Revision: D13627824
      
      Pulled By: riversand963
      
      fbshipit-source-id: 09ab968f349f3dbb890beea20193f1359b17d317
      4091597c
    • Y
      Use correct FileMeta for atomic flush result install (#4932) · 842cdc11
      Yanqin Jin 提交于
      Summary:
      1. this commit fixes our handling of a combination of two separate edge
      cases. If a flush job does not pick any memtable to flush (because another
      flush job has already picked the same memtables), and the column family
      assigned to the flush job is dropped right before RocksDB calls
      rocksdb::InstallMemtableAtomicFlushResults, our original code passes
      a FileMetaData object whose file number is 0, failing the assertion in
      rocksdb::InstallMemtableAtomicFlushResults (assert(m->GetFileNumber() > 0)).
      2. Also piggyback a small change: since we already create a local copy of column family's mutable CF options to eliminate potential race condition with `SetOptions` call, we might as well use the local copy in other function calls in the same scope.
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/4932
      
      Differential Revision: D13901322
      
      Pulled By: riversand963
      
      fbshipit-source-id: b936580af7c127ea0c6c19ea10cd5fcede9fb0f9
      842cdc11
    • A
      Fix `WriteBatchBase::DeleteRange` API comment (#4935) · 0ea57115
      Andrew Kryczka 提交于
      Summary:
      The `DeleteRange` end key is exclusive, not inclusive. Updated API comment accordingly.
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/4935
      
      Differential Revision: D13905406
      
      Pulled By: ajkr
      
      fbshipit-source-id: f577db841a279427991ecf9005cd56b30c8eb3c7
      0ea57115
    • M
      Take snapshots once for all cf flushes (#4934) · 35e5689e
      Maysam Yabandeh 提交于
      Summary:
      FlushMemTablesToOutputFiles calls FlushMemTableToOutputFile for each column family. The patch moves the take-snapshot logic to outside FlushMemTableToOutputFile so that it does it once for all the flushes. This also addresses a deadlock issue for resetting the managed snapshot of job_snapshot in the 2nd call to FlushMemTableToOutputFile.
      Pull Request resolved: https://github.com/facebook/rocksdb/pull/4934
      
      Differential Revision: D13900747
      
      Pulled By: maysamyabandeh
      
      fbshipit-source-id: f3cd650c5fff24cf95c1aaf8a10c149d42bf042c
      35e5689e
  9. 30 1月, 2019 3 次提交
  10. 29 1月, 2019 5 次提交
  11. 26 1月, 2019 2 次提交
  12. 25 1月, 2019 2 次提交
  13. 24 1月, 2019 1 次提交