1. 10 Dec, 2016 2 commits
    • Jonathan Lee's avatar
      Remove unnecessary header include · 4a17b47b
      Jonathan Lee authored
      Summary:
      Remove "util/testharness.h" from list of includes for "db/db_filesnapshot.cc", as it wasn't being used and thus caused an extraneous dependency on gtest.
      Closes https://github.com/facebook/rocksdb/pull/1634
      
      Differential Revision: D4302146
      
      Pulled By: yiwu-arbug
      
      fbshipit-source-id: e900c0b
      4a17b47b
    • Mike Kolupaev's avatar
      Fixed a crash in debug build in flush_job.cc · 8c2b921f
      Mike Kolupaev authored
      Summary:
      It was doing `&range_del_iters[0]` on an empty vector. Even though the resulting pointer is never dereferenced, it's still bad for two reasons:
      * the practical reason: it crashes with `std::out_of_range` exception in our debug build,
      * the "C++ standard lawyer" reason: it's undefined behavior because, in `std::vector` implementation, it probably "dereferences" a null pointer, which is invalid even though it doesn't actually read the pointed memory, just converts a pointer into a reference (and then flush_job.cc converts it back to pointer); nullptr references are undefined behavior.
      Closes https://github.com/facebook/rocksdb/pull/1612
      
      Differential Revision: D4265625
      
      Pulled By: al13n321
      
      fbshipit-source-id: db26fb9
      8c2b921f
  2. 09 Dec, 2016 2 commits
  3. 08 Dec, 2016 7 commits
  4. 07 Dec, 2016 3 commits
  5. 06 Dec, 2016 6 commits
    • Manuel Ung's avatar
      Implement non-exclusive locks · 2005c88a
      Manuel Ung authored
      Summary:
      This is an implementation of non-exclusive locks for pessimistic transactions. It is relatively simple and does not prevent starvation (ie. it's possible that request for exclusive access will never be granted if there are always threads holding shared access). It is done by changing `KeyLockInfo` to hold an set a transaction ids, instead of just one, and adding a flag specifying whether this lock is currently held with exclusive access or not.
      
      Some implementation notes:
      - Some lock diagnostic functions had to be updated to return a set of transaction ids for a given lock, eg. `GetWaitingTxn` and `GetLockStatusData`.
      - Deadlock detection is a bit more complicated since a transaction can now wait on multiple other transactions. A BFS is done in this case, and deadlock detection depth is now just a limit on the number of transactions we visit.
      - Expirable transactions do not work efficiently with shared locks at the moment, but that's okay for now.
      Closes https://github.com/facebook/rocksdb/pull/1573
      
      Differential Revision: D4239097
      
      Pulled By: lth
      
      fbshipit-source-id: da7c074
      2005c88a
    • Yi Wu's avatar
      Mention IngestExternalFile changes in HISTORY.md · 0b0f2357
      Yi Wu authored
      Summary:
      I hit the land button too fast and didn't include the line.
      Closes https://github.com/facebook/rocksdb/pull/1622
      
      Differential Revision: D4281316
      
      Pulled By: yiwu-arbug
      
      fbshipit-source-id: c7b38e0
      0b0f2357
    • Yi Wu's avatar
      Update HISTORY.md for 5.0 branch · 23db48e8
      Yi Wu authored
      Summary:
      These changes are included in the new branch-cut.
      Closes https://github.com/facebook/rocksdb/pull/1621
      
      Differential Revision: D4281015
      
      Pulled By: yiwu-arbug
      
      fbshipit-source-id: d88858b
      23db48e8
    • Mike Kolupaev's avatar
      Fixed CompactionFilter::Decision::kRemoveAndSkipUntil · beb36d9c
      Mike Kolupaev authored
      Summary:
      Embarassingly enough, the first time I tried to use my new feature in logdevice it crashed with this assertion failure:
      
        db/pinned_iterators_manager.h:30: void rocksdb::PinnedIteratorsManager::StartPinning(): Assertion `pinning_enabled == false' failed
      
      The issue was that `pinned_iters_mgr_.StartPinning()` was called but `pinned_iters_mgr_.ReleasePinnedData()` wasn't.
      Closes https://github.com/facebook/rocksdb/pull/1611
      
      Differential Revision: D4265622
      
      Pulled By: al13n321
      
      fbshipit-source-id: 747b10f
      beb36d9c
    • Islam AbdelRahman's avatar
      Allow user to specify a CF for SST files generated by SstFileWriter · 67f37cf1
      Islam AbdelRahman authored
      Summary:
      Allow user to explicitly specify that the generated file by SstFileWriter will be ingested in a specific CF.
      This allow us to persist the CF id in the generated file
      Closes https://github.com/facebook/rocksdb/pull/1615
      
      Differential Revision: D4270422
      
      Pulled By: IslamAbdelRahman
      
      fbshipit-source-id: 7fb954e
      67f37cf1
    • Anton Safonov's avatar
      Made delete_obsolete_files_period_micros option dynamic · 9053fe2a
      Anton Safonov authored
      Summary:
      Made delete_obsolete_files_period_micros option dynamic. It can be updating using DB::SetDBOptions().
      Closes https://github.com/facebook/rocksdb/pull/1595
      
      Differential Revision: D4246569
      
      Pulled By: tonek
      
      fbshipit-source-id: d23f560
      9053fe2a
  6. 02 Dec, 2016 6 commits
  7. 01 Dec, 2016 3 commits
  8. 30 Nov, 2016 6 commits
  9. 29 Nov, 2016 5 commits