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
      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
    • Aaron Gao's avatar
      call GetRootDB() before cast to DBImpl* in CancelAllBackgroundWork · 72c21fb3
      Aaron Gao authored
      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
    • Maysam Yabandeh's avatar
      Add erase option to release cache · 4c9447d8
      Maysam Yabandeh authored
      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
      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
  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
    • 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
    • Tudor Bosman's avatar
      Separate compile and link for shared library · 7d5f5aa9
      Tudor Bosman authored
      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
  11. 15 Apr, 2017 3 commits
  12. 14 Apr, 2017 1 commit
    • Yi Wu's avatar
      Simplify write thread logic · e9e6e532
      Yi Wu authored
      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