1. 28 Apr, 2017 4 commits
  2. 27 Apr, 2017 6 commits
  3. 26 Apr, 2017 1 commit
  4. 25 Apr, 2017 3 commits
    • Andrew Kryczka's avatar
      Reunite checkpoint and backup core logic · e5e545a0
      Andrew Kryczka authored
      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
    • Aaron Gao's avatar
      call GetRootDB() before cast to DBImpl* in CancelAllBackgroundWork · 72c21fb3
      Aaron Gao authored
      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
    • Maysam Yabandeh's avatar
      Add erase option to release cache · 4c9447d8
      Maysam Yabandeh authored
      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
  5. 22 Apr, 2017 3 commits
  6. 21 Apr, 2017 6 commits
  7. 20 Apr, 2017 3 commits
  8. 19 Apr, 2017 6 commits
  9. 18 Apr, 2017 1 commit
  10. 17 Apr, 2017 3 commits
    • Jay Lee's avatar
      enable O2 optimization for lz4 · e67f0adf
      Jay Lee authored
      Summary: Closes https://github.com/facebook/rocksdb/pull/2164
      
      Differential Revision: D4897389
      
      Pulled By: yiwu-arbug
      
      fbshipit-source-id: fac15374ae7fef1ece70fd2b9018f2451f3c2f7c
      e67f0adf
    • Tamir Duberstein's avatar
      CMake: add support for SSE4.2 · bc397325
      Tamir Duberstein authored
      Summary: Closes https://github.com/facebook/rocksdb/pull/2159
      
      Differential Revision: D4894483
      
      Pulled By: yiwu-arbug
      
      fbshipit-source-id: 607e17e8ef5d30dce02c27be9d1de7d9f823b4ae
      bc397325
    • Tudor Bosman's avatar
      Separate compile and link for shared library · 7d5f5aa9
      Tudor Bosman authored
      Summary:
      Previously, the shared library (make shared_lib) was built with only one
      compile line, compiling all .cc files and linking the shared library in
      one step. That step would often take 10+ minutes on one machine, and
      could not take advantage of multiple CPUs (it's only one invocation of
      the compiler).
      
      This commit changes the shared_lib build to compile .o files
      individually (placing the resulting .o files in the directory
      shared-objects) and then link them into the shared library at the end,
      similarly to how the java static build (jls) does it.
      
      Tested by making sure that both static and shared libraries work, and by
      making sure that "make clean" cleans up the shared-objects directory.
      Closes https://github.com/facebook/rocksdb/pull/2165
      
      Differential Revision: D4897121
      
      Pulled By: yiwu-arbug
      
      fbshipit-source-id: 9811e043d1c01e10503593f3489d186c786ee7d7
      7d5f5aa9
  11. 15 Apr, 2017 3 commits
  12. 14 Apr, 2017 1 commit
    • Yi Wu's avatar
      Simplify write thread logic · e9e6e532
      Yi Wu authored
      Summary:
      The concept about early exit in write thread implementation is a confusing one. It means that if early exit is allowed, batch group leader will not responsible to exit the batch group, but the last finished writer do. In case we need to mark log synced, or encounter memtable insert error, early exit is disallowed.
      
      This patch remove such a concept by:
      * In all cases, the last finished writer (not necessary leader) is responsible to exit batch group.
      * In case of parallel memtable write, leader will also mark log synced after memtable insert and before signal finish (call `CompleteParallelWorker()`). The purpose is to allow mark log synced (which require locking mutex) can run in parallel to memtable insert in other writers.
      * The last finish writer should handle memtable insert error (update bg_error_) before exiting batch group.
      Closes https://github.com/facebook/rocksdb/pull/2134
      
      Differential Revision: D4869667
      
      Pulled By: yiwu-arbug
      
      fbshipit-source-id: aec170847c85b90f4179d6a4608a4fe1361544e3
      e9e6e532