1. 28 7月, 2017 8 次提交
    • Y
      Blob DB TTL extractor · 6083bc79
      Yi Wu 提交于
      Summary:
      Introducing blob_db::TTLExtractor to replace extract_ttl_fn. The TTL
      extractor can be use to extract TTL from keys insert with Put or
      WriteBatch. Change over existing extract_ttl_fn are:
      * If value is changed, it will be return via std::string* (rather than Slice*). With Slice* the new value has to be part of the existing value. With std::string* the limitation is removed.
      * It can optionally return TTL or expiration.
      
      Other changes in this PR:
      * replace `std::chrono::system_clock` with `Env::NowMicros` so that I can mock time in tests.
      * add several TTL tests.
      * other minor naming change.
      Closes https://github.com/facebook/rocksdb/pull/2659
      
      Differential Revision: D5512627
      
      Pulled By: yiwu-arbug
      
      fbshipit-source-id: 0dfcb00d74d060b8534c6130c808e4d5d0a54440
      6083bc79
    • A
      fix asan/valgrind for TableCache cleanup · 710411ae
      Andrew Kryczka 提交于
      Summary:
      Breaking commit: d12691b8
      
      In the above commit, I moved the `TableCache` cleanup logic from `Version` destructor into `PurgeObsoleteFiles`. I missed cleaning up `TableCache` entries for the current `Version` during DB destruction.
      
      This PR adds that logic to `VersionSet` destructor. One unfortunate side effect is now we're potentially deleting `TableReader`s after `column_family_set_.reset()`, which means we can't call `BlockBasedTableReader::Close` a second time as the block cache might already be destroyed.
      Closes https://github.com/facebook/rocksdb/pull/2662
      
      Differential Revision: D5515108
      
      Pulled By: ajkr
      
      fbshipit-source-id: 2cb820e19aa813e0d258d17f76b2d7b6b7ee0b18
      710411ae
    • Y
      TARGETS file not setting sse explicitly · 3a3fb00b
      Yi Wu 提交于
      Summary:
      We don't need to set them explicitly.
      Closes https://github.com/facebook/rocksdb/pull/2660
      
      Differential Revision: D5514141
      
      Pulled By: yiwu-arbug
      
      fbshipit-source-id: 10edebfc3cfe0afc00a34519f87fcea4d65069ae
      3a3fb00b
    • S
      Build fewer tests in Travis platform_dependent tests · fca4d6da
      Siying Dong 提交于
      Summary:
      platform_dependent tests in Travis now builds all tests, which is not needed. Only build those tests we need to run.
      Closes https://github.com/facebook/rocksdb/pull/2647
      
      Differential Revision: D5513954
      
      Pulled By: siying
      
      fbshipit-source-id: 4d540b146124e70dd25586c47939d19f93655b0a
      fca4d6da
    • A
      remove unnecessary internal_comparator param in newIterator · 8f553d3c
      Aaron Gao 提交于
      Summary:
      solved https://github.com/facebook/rocksdb/issues/2604
      Closes https://github.com/facebook/rocksdb/pull/2648
      
      Differential Revision: D5504875
      
      Pulled By: lightmark
      
      fbshipit-source-id: c14bb62ccbdc9e7bda9cd914cae4ea0765d882ee
      8f553d3c
    • S
      "ccache -C" in Travis · 7f6d012d
      Siying Dong 提交于
      Summary:
      This is to work around the problem of build error:
      
      util/threadpool_imp.o: file not recognized: File truncated
      
      Just to make the build go through. We should remove it later if we find the real long-term solution.
      Closes https://github.com/facebook/rocksdb/pull/2657
      
      Differential Revision: D5511034
      
      Pulled By: siying
      
      fbshipit-source-id: 229f024bd78ee96799017d4a89be74253058ec30
      7f6d012d
    • A
      move TableCache::EraseHandle outside of db mutex · d12691b8
      Andrew Kryczka 提交于
      Summary:
      Post-compaction work holds onto db mutex for the longest time (found by tracing lock acquires/releases with LTTng and correlating timestamps with our info log). Further experimentation showed `TableCache::EraseHandle` is responsible for ~86% of time mutex is held. We can just release the handle outside the db mutex.
      Closes https://github.com/facebook/rocksdb/pull/2654
      
      Differential Revision: D5507126
      
      Pulled By: ajkr
      
      fbshipit-source-id: 703c01ddf2aea16bc0f9e33c08935d78aa6b781d
      d12691b8
    • A
      fix db_bench argument type · f33f1136
      Andrew Kryczka 提交于
      Summary:
      it should be a bool
      Closes https://github.com/facebook/rocksdb/pull/2653
      
      Differential Revision: D5506148
      
      Pulled By: ajkr
      
      fbshipit-source-id: f142f0f3aa8b678c68adef12e5ac6e1e163306f3
      f33f1136
  2. 27 7月, 2017 5 次提交
  3. 26 7月, 2017 6 次提交
    • M
      Remove the orphan assert on !need_log_sync · 30b58cf7
      Maysam Yabandeh 提交于
      Summary:
      We initially had disabled support for write_options.sync when concurrent_prepare_ is set. We later added this support but the statement that asserts this combination is not used was left there. This patch cleans it up.
      Closes https://github.com/facebook/rocksdb/pull/2642
      
      Differential Revision: D5496101
      
      Pulled By: maysamyabandeh
      
      fbshipit-source-id: becbc503446f2a51bee24cc861958c090c724ec2
      30b58cf7
    • Y
      Fix flaky write_callback_test · fe1a5559
      Yi Wu 提交于
      Summary:
      The test is failing occasionally on the assert: `ASSERT_TRUE(writer->state == WriteThread::State::STATE_INIT)`. This is because the test don't make the leader wait for long enough before updating state for its followers. The patch move the update to `threads_waiting` to the end of `WriteThread::JoinBatchGroup:Wait` callback to avoid this happening.
      
      Also adding `WriteThread::JoinBatchGroup:Start` and have each thread wait there while another thread is linking to the linked-list. This is to make the check of `is_leader` more deterministic.
      
      Also changing two while-loops of `compare_exchange_strong` to plain `fetch_add`, to make it look cleaner.
      Closes https://github.com/facebook/rocksdb/pull/2640
      
      Differential Revision: D5491525
      
      Pulled By: yiwu-arbug
      
      fbshipit-source-id: 6e897f122082bd6f98e6d51b31a25e5fd0a3fb82
      fe1a5559
    • Y
      5.6.1 release blog post · addbd279
      Yi Wu 提交于
      Summary:
      5.6.1 release blog post
      Closes https://github.com/facebook/rocksdb/pull/2638
      
      Differential Revision: D5491168
      
      Pulled By: yiwu-arbug
      
      fbshipit-source-id: 14e3a92a03684afa4bd19bfb3ffb053cc09f5d4a
      addbd279
    • A
      buckification: remove explicit `-msse*` compiler flags · 30edff30
      Andrew Gallagher 提交于
      Summary: These are implied by default platform flags, in particular, `-march=corei7`.
      
      Reviewed By: pixelb
      
      Differential Revision: D5485414
      
      fbshipit-source-id: 85f1329c71fa81a604760844187cc73877fb40e9
      30edff30
    • M
      Lower num of iterations in DeadlockCycle test · 2b259c9d
      Maysam Yabandeh 提交于
      Summary:
      Currently this test times out with tsan. This is likely due to decreased speed with tsan. By lowering the number of iterations we can still catch a bug as the test is run regularly and multiple runs of the test is equivalent with running the test with more iterations.
      Closes https://github.com/facebook/rocksdb/pull/2639
      
      Differential Revision: D5490549
      
      Pulled By: maysamyabandeh
      
      fbshipit-source-id: bd69c42a9728d337ac95a06a401088384e51731a
      2b259c9d
    • M
      Release note for partitioned index/filters · 277f6f23
      Maysam Yabandeh 提交于
      Summary: Closes https://github.com/facebook/rocksdb/pull/2637
      
      Differential Revision: D5489751
      
      Pulled By: maysamyabandeh
      
      fbshipit-source-id: 0298f8960d4f86ce67959616615beee4d802c2e4
      277f6f23
  4. 25 7月, 2017 10 次提交
  5. 22 7月, 2017 4 次提交
    • A
      Fix caching of compaction picker's next index · a34b2e38
      Andrew Kryczka 提交于
      Summary:
      The previous implementation of caching `file_size` index made no sense. It only remembered the original span of locked files starting from beginning of `file_size`. We should remember the index after all compactions that have been considered but rejected. This will reduce the work we do while holding the db mutex.
      Closes https://github.com/facebook/rocksdb/pull/2624
      
      Differential Revision: D5468152
      
      Pulled By: ajkr
      
      fbshipit-source-id: ab92a4bffe76f9f174d861bb5812b974d1013400
      a34b2e38
    • S
      Revert "comment out unused parameters" · 72502cf2
      Sagar Vemuri 提交于
      Summary:
      This reverts the previous commit 1d7048c5, which broke the build.
      
      Did a `git revert 1d7048c5`.
      Closes https://github.com/facebook/rocksdb/pull/2627
      
      Differential Revision: D5476473
      
      Pulled By: sagar0
      
      fbshipit-source-id: 4756ff5c0dfc88c17eceb00e02c36176de728d06
      72502cf2
    • V
      comment out unused parameters · 1d7048c5
      Victor Gao 提交于
      Summary: This uses `clang-tidy` to comment out unused parameters (in functions, methods and lambdas) in fbcode. Cases that the tool failed to handle are fixed manually.
      
      Reviewed By: igorsugak
      
      Differential Revision: D5454343
      
      fbshipit-source-id: 5dee339b4334e25e963891b519a5aa81fbf627b2
      1d7048c5
    • P
      Cassandra compaction filter for purge expired columns and rows · 534c255c
      Pengchao Wang 提交于
      Summary:
      Major changes in this PR:
      * Implement CassandraCompactionFilter to remove expired columns and rows (if all column expired)
      * Move cassandra related code from utilities/merge_operators/cassandra to utilities/cassandra/*
      * Switch to use shared_ptr<> from uniqu_ptr for Column membership management in RowValue. Since columns do have multiple owners in Merge and GC process, use shared_ptr helps make RowValue immutable.
      * Rename cassandra_merge_test to cassandra_functional_test and add two TTL compaction related tests there.
      Closes https://github.com/facebook/rocksdb/pull/2588
      
      Differential Revision: D5430010
      
      Pulled By: wpc
      
      fbshipit-source-id: 9566c21e06de17491d486a68c70f52d501f27687
      534c255c
  6. 21 7月, 2017 3 次提交
    • Y
      Remove make_new_version.sh · 63163a8c
      Yi Wu 提交于
      Summary:
      Seems the only function of the script is to create a new branch, which can be done easily. I'm removing it.
      Closes https://github.com/facebook/rocksdb/pull/2623
      
      Differential Revision: D5468681
      
      Pulled By: yiwu-arbug
      
      fbshipit-source-id: 87dea5ecc4c85e06941ccbc36993f7f589063878
      63163a8c
    • Y
      Reduce blob db noisy logging · 0302da47
      Yi Wu 提交于
      Summary:
      Remove some of the per-key logging by blob db to reduce noise.
      Closes https://github.com/facebook/rocksdb/pull/2587
      
      Differential Revision: D5429115
      
      Pulled By: yiwu-arbug
      
      fbshipit-source-id: b89328282fb8b3c64923ce48738c16017ce7feaf
      0302da47
    • I
      Fix Flaky DeleteSchedulerTest::ImmediateDeleteOn25PercDBSize · 3e5ea29a
      Islam AbdelRahman 提交于
      Summary:
      In this test we are deleting 100 files, and we are expecting DeleteScheduler to delete 26 files in the background and 74 files immediately in the foreground
      
      The main purpose of the test is to make sure that we delete files in foreground thread, which is verified in line 546
      
      But sometimes we may end up with 26 files or 25 files in the trash directory because the background thread may be slow and not be able to delete the first file fast enough, so sometimes this test fail.
      
      Remove
      ```
      ASSERT_EQ(CountFilesInDir(trash_dir_), 25);
      ```
      Since it does not have any benefit any way
      Closes https://github.com/facebook/rocksdb/pull/2618
      
      Differential Revision: D5458674
      
      Pulled By: IslamAbdelRahman
      
      fbshipit-source-id: 5556a9edfa049db71dce80b8e6ae0fdd25e1e74e
      3e5ea29a
  7. 20 7月, 2017 3 次提交
    • A
      overlapping endpoint fixes in level compaction picker · a22b9cc6
      Andrew Kryczka 提交于
      Summary:
      This diff addresses two problems. Both problems cause us to miss scheduling desirable compactions. One side effect is compaction picking can spam logs, as there's no delay after failed attempts to pick compactions.
      
      1. If a compaction pulled in a locked input-level file due to user-key overlap, we would not consider picking another file from the same input level.
      2. If a compaction pulled in a locked output-level file due to user-key overlap, we would not consider picking any other compaction on any level.
      
      The code changes are dependent, which is why I solved both problems in a single diff.
      
      - Moved input-level `ExpandInputsToCleanCut` into the loop inside `PickFileToCompact`. This gives two benefits: (1) if it fails, we will try the next-largest file on the same input level; (2) we get the fully-expanded input-level key-range with which we can check for pending compactions in output level.
      - Added another call to `ExpandInputsToCleanCut` inside `PickFileToCompact`'s to check for compaction conflicts in output level.
      - Deleted call to `IsRangeInCompaction` in `PickFileToCompact`, as `ExpandInputsToCleanCut` also correctly handles the case where original output-level files (i.e., ones not pulled in due to user-key overlap) are pending compaction.
      Closes https://github.com/facebook/rocksdb/pull/2615
      
      Differential Revision: D5454643
      
      Pulled By: ajkr
      
      fbshipit-source-id: ea3fb5477d83e97148951af3fd4558d2039e9872
      a22b9cc6
    • A
      delete ExpandInputsToCleanCut failure log · ffd2a2ee
      Andrew Kryczka 提交于
      Summary:
      I decided not even to keep it as an INFO-level log as it is too normal for compactions to be skipped due to locked input files. Removing logging here makes us consistent with how we treat locked files that weren't pulled in due to overlap.
      
      We may want some error handling on line 422, which should never happen when called by `LevelCompactionBuilder::PickCompaction`, as `SetupInitialFiles` skips compactions where overlap causes the output level to pull in locked files.
      Closes https://github.com/facebook/rocksdb/pull/2617
      
      Differential Revision: D5458502
      
      Pulled By: ajkr
      
      fbshipit-source-id: c2e5f867c0a77c1812ce4242ab3e085b3eee0bae
      ffd2a2ee
    • I
      Remove arcanist_util directory · 3e6e863b
      Islam AbdelRahman 提交于
      3e6e863b
  8. 19 7月, 2017 1 次提交