1. 06 5月, 2017 1 次提交
  2. 05 5月, 2017 4 次提交
    • S
      Allow IntraL0 compaction in FIFO Compaction · 264d3f54
      Siying Dong 提交于
      Summary:
      Allow an option for users to do some compaction in FIFO compaction, to pay some write amplification for fewer number of files.
      Closes https://github.com/facebook/rocksdb/pull/2163
      
      Differential Revision: D4895953
      
      Pulled By: siying
      
      fbshipit-source-id: a1ab608dd0627211f3e1f588a2e97159646e1231
      264d3f54
    • A
      Set lower-bound on dynamic level sizes · 8c3a180e
      Andrew Kryczka 提交于
      Summary:
      Changed dynamic leveling to stop setting the base level's size bound below `max_bytes_for_level_base`.
      
      Behavior for config where `max_bytes_for_level_base == level0_file_num_compaction_trigger * write_buffer_size` and same amount of data in L0 and base-level:
      
      - Before #2027, compaction scoring would favor base-level due to dividing by size smaller than `max_bytes_for_level_base`.
      - After #2027, L0 and Lbase get equal scores. The disadvantage is L0 is often compacted before reaching the num files trigger since `write_buffer_size` can be bigger than the dynamically chosen base-level size. This increases write-amp.
      - After this diff, L0 and Lbase still get equal scores. Now it takes `level0_file_num_compaction_trigger` files of size `write_buffer_size` to trigger L0 compaction by size, fixing the write-amp problem above.
      Closes https://github.com/facebook/rocksdb/pull/2123
      
      Differential Revision: D4861570
      
      Pulled By: ajkr
      
      fbshipit-source-id: 467ddef56ed1f647c14d86bb018bcb044c39b964
      8c3a180e
    • A
      Avoid calling fallocate with UINT64_MAX · 7c1c8ce5
      Andrew Kryczka 提交于
      Summary:
      When user doesn't set a limit on compaction output file size, let's use the sum of the input files' sizes. This will avoid passing UINT64_MAX as fallocate()'s length. Reported in #2249.
      
      Test setup:
      - command: `TEST_TMPDIR=/data/rocksdb-test/ strace -e fallocate ./db_compaction_test --gtest_filter=DBCompactionTest.ManualCompactionUnknownOutputSize`
      - filesystem: xfs
      
      before this diff:
      `fallocate(10, 01, 0, 1844674407370955160) = -1 ENOSPC (No space left on device)`
      
      after this diff:
      `fallocate(10, 01, 0, 1977)              = 0`
      Closes https://github.com/facebook/rocksdb/pull/2252
      
      Differential Revision: D5007275
      
      Pulled By: ajkr
      
      fbshipit-source-id: 4491404a6ae8a41328aede2e2d6f4d9ac3e38880
      7c1c8ce5
    • L
      max_open_files dynamic set, follow up · a45e98a5
      Leonidas Galanis 提交于
      Summary:
      Followup to make 0x40000 a TableCache constant that indicates infinite capacity
      Closes https://github.com/facebook/rocksdb/pull/2247
      
      Differential Revision: D5001349
      
      Pulled By: lgalanis
      
      fbshipit-source-id: ce7bd2e54b0975bb9f8680fdaa0f8bb0e7ae81a2
      a45e98a5
  3. 04 5月, 2017 4 次提交
  4. 03 5月, 2017 4 次提交
  5. 02 5月, 2017 4 次提交
    • M
      Delete filter before closing the table · 89833577
      Maysam Yabandeh 提交于
      Summary:
      Some filters such as partitioned filter have pointers to the table for which they are created. Therefore is they are stored in the block cache, the should be forcibly erased from block cache before closing the  table, which would result into deleting the object. Otherwise the destructor will be called later when the cache is lazily erasing the object, which having the parent table no longer existent it could result into undefined behavior.
      
      Update: there will be still cases the filter is not removed from the cache since the table has not kept a pointer to the cache handle to be able to forcibly release it later. We make sure that the filter destructor does not access the table pointer to get around such cases.
      Closes https://github.com/facebook/rocksdb/pull/2207
      
      Differential Revision: D4941591
      
      Pulled By: maysamyabandeh
      
      fbshipit-source-id: 56fbab2a11cf447e1aa67caa30b58d7bd7ce5bbd
      89833577
    • M
      Avoid pinning when row cache is accessed · 47a09b0a
      Maysam Yabandeh 提交于
      Summary:
      With row cache being enabled, table cache is doing a short circuit for reading data. This path needs to be updated to take advantage of pinnable slice. In the meanwhile we disabling pinning in this path.
      Closes https://github.com/facebook/rocksdb/pull/2237
      
      Differential Revision: D4982389
      
      Pulled By: maysamyabandeh
      
      fbshipit-source-id: 542630d0cf23cfb1f0c397da82e7053df7966591
      47a09b0a
    • S
      Remove an assert that causes TSAN failure. · aeaba07b
      Siying Dong 提交于
      Summary:
      ColumnFamilyData::ConstructNewMemtable is called out of DB mutex, and it asserts current_ is not empty, but current_ should only be accessed inside DB mutex. Remove this assert to make TSAN happy.
      Closes https://github.com/facebook/rocksdb/pull/2235
      
      Differential Revision: D4978531
      
      Pulled By: siying
      
      fbshipit-source-id: 423685a7dae88ed3faaa9e1b9ccb3427ac704a4b
      aeaba07b
    • S
      Set VALGRIND_VER · 0b90aa95
      Siying Dong 提交于
      Summary:
      VALGRIND_VER was left empty after moving the environment to GCC-5. Set it back.
      Closes https://github.com/facebook/rocksdb/pull/2234
      
      Differential Revision: D4978534
      
      Pulled By: siying
      
      fbshipit-source-id: f0640d58e8f575f75fb3f8b92e686c9e0b6a59bb
      0b90aa95
  6. 29 4月, 2017 2 次提交
  7. 28 4月, 2017 4 次提交
  8. 27 4月, 2017 6 次提交
  9. 26 4月, 2017 1 次提交
  10. 25 4月, 2017 3 次提交
    • A
      Reunite checkpoint and backup core logic · e5e545a0
      Andrew Kryczka 提交于
      Summary:
      These code paths forked when checkpoint was introduced by copy/pasting the core backup logic. Over time they diverged and bug fixes were sometimes applied to one but not the other (like fix to include all relevant WALs for 2PC), or it required extra effort to fix both (like fix to forge CURRENT file). This diff reunites the code paths by extracting the core logic into a function, CreateCustomCheckpoint(), that is customizable via callbacks to implement both checkpoint and backup.
      
      Related changes:
      
      - flush_before_backup is now forcibly enabled when 2PC is enabled
      - Extracted CheckpointImpl class definition into a header file. This is so the function, CreateCustomCheckpoint(), can be called by internal rocksdb code but not exposed to users.
      - Implemented more functions in DummyDB/DummyLogFile (in backupable_db_test.cc) that are used by CreateCustomCheckpoint().
      Closes https://github.com/facebook/rocksdb/pull/1932
      
      Differential Revision: D4622986
      
      Pulled By: ajkr
      
      fbshipit-source-id: 157723884236ee3999a682673b64f7457a7a0d87
      e5e545a0
    • A
      call GetRootDB() before cast to DBImpl* in CancelAllBackgroundWork · 72c21fb3
      Aaron Gao 提交于
      Summary:
      User could call this with wrapper class of DB or DBImpl
      Closes https://github.com/facebook/rocksdb/pull/2200
      
      Differential Revision: D4935530
      
      Pulled By: lightmark
      
      fbshipit-source-id: df9cb61d67d0f3bbcf62f714d77523a459a92883
      72c21fb3
    • M
      Add erase option to release cache · 4c9447d8
      Maysam Yabandeh 提交于
      Summary:
      This is useful when we put the entries in the block cache for accounting
      purposes and do not expect it to be used after it is released. If the cache does not
      erase the item in such cases not only the performance of cache is
      negatively affected but the item's destructor not being called at the
      time of release might violate the assumptions about the lifetime of the
      object.
      
      The new change adds a force_erase option to the Release method and
      returns a boolean to indicate whehter the item is successfully deleted.
      Closes https://github.com/facebook/rocksdb/pull/2180
      
      Differential Revision: D4916032
      
      Pulled By: maysamyabandeh
      
      fbshipit-source-id: 94409a346069923cac9de8e57adc313b4ed46f28
      4c9447d8
  11. 22 4月, 2017 3 次提交
  12. 21 4月, 2017 4 次提交