]> git-server-git.apps.pok.os.sepia.ceph.com Git - rocksdb.git/log
rocksdb.git
6 years agoUpdate version to 6.6.3 v6.6.3
anand76 [Fri, 24 Jan 2020 22:00:58 +0000 (14:00 -0800)]
Update version to 6.6.3

Summary:

Test Plan:

Reviewers:

Subscribers:

Tasks:

Tags:

6 years agoImplement PinnableSlice::remove_prefix (#6330)
Maysam Yabandeh [Fri, 24 Jan 2020 21:03:19 +0000 (13:03 -0800)]
Implement PinnableSlice::remove_prefix (#6330)

Summary:
The function was left unimplemented. Although we currently don't have a use for that it was declared with an assert(0) to prevent mistakenly using the remove_prefix of the parent class. The function body  with only assert(0) however causes issues with some compiler's warning levels. The patch implements the function to avoid the warning.
It also piggybacks some minor code warning for unnecessary semicolons after the function definition.s
Pull Request resolved: https://github.com/facebook/rocksdb/pull/6330

Differential Revision: D19559062

Pulled By: maysamyabandeh

fbshipit-source-id: 3a022484f688c9abd4556e5412bcc2628ab96a00

6 years agoFix queue manipulation in WriteThread::BeginWriteStall() (#6322)
anand76 [Thu, 23 Jan 2020 21:59:48 +0000 (13:59 -0800)]
Fix queue manipulation in WriteThread::BeginWriteStall() (#6322)

Summary:
When there is a write stall, the active write group leader calls ```BeginWriteStall()``` to walk the queue of writers and remove any with the ```no_slowdown``` option set. There was a bug in the code which updated the back pointer but not the forward pointer (```link_newer```), corrupting the list and causing some threads to wait forever. This PR fixes it.
Pull Request resolved: https://github.com/facebook/rocksdb/pull/6322

Test Plan: Add a unit test in db_write_test

Differential Revision: D19538313

Pulled By: anand1976

fbshipit-source-id: 6fbed819e594913f435886606f5d36f74f235c3a

6 years agoUpdate version to 6.6.2
Sagar Vemuri [Mon, 13 Jan 2020 20:28:06 +0000 (12:28 -0800)]
Update version to 6.6.2

6 years agoConsider all compaction input files to compute the oldest ancestor time (#6279)
Sagar Vemuri [Sat, 11 Jan 2020 03:01:00 +0000 (19:01 -0800)]
Consider all compaction input files to compute the oldest ancestor time (#6279)

Summary:
Look at all compaction input files to compute the oldest ancestor time.

In https://github.com/facebook/rocksdb/issues/5992 we changed how creation_time (aka oldest-ancestor-time) table property of compaction output files is computed from max(creation-time-of-all-compaction-inputs) to min(creation-time-of-all-inputs). This exposed a bug where, during compaction, the creation_time:s of only the L0 compaction inputs were being looked at, and all other input levels were being ignored. This PR fixes the issue.
Some TTL compactions when using Level-Style compactions might not have run due to this bug.
Pull Request resolved: https://github.com/facebook/rocksdb/pull/6279

Test Plan: Enhanced the unit tests to validate that the correct time is propagated to the compaction outputs.

Differential Revision: D19337812

Pulled By: sagar0

fbshipit-source-id: edf8a72f11e405e93032ff5f45590816debe0bb4

6 years agoUpdate release date
Yanqin Jin [Thu, 2 Jan 2020 20:50:59 +0000 (12:50 -0800)]
Update release date

6 years agoUpdate HISTORY and bump up version number
Yanqin Jin [Thu, 2 Jan 2020 20:33:36 +0000 (12:33 -0800)]
Update HISTORY and bump up version number

6 years agoFix use-after-free and double-deleting files in BackgroundCallPurge() (#6193)
Mike Kolupaev [Wed, 18 Dec 2019 04:07:21 +0000 (20:07 -0800)]
Fix use-after-free and double-deleting files in BackgroundCallPurge() (#6193)

Summary:
The bad code was:

```
mutex.Lock(); // `mutex` protects `container`
for (auto& x : container) {
  mutex.Unlock();
  // do stuff to x
  mutex.Lock();
}
```

It's incorrect because both `x` and the iterator may become invalid if another thread modifies the container while this thread is not holding the mutex.

Broken by https://github.com/facebook/rocksdb/pull/5796 - it replaced a `while (!container.empty())` loop with a `for (auto x : container)`.

(RocksDB code does a lot of such unlocking+re-locking of mutexes, and this type of bugs comes up a lot :/ )
Pull Request resolved: https://github.com/facebook/rocksdb/pull/6193

Test Plan: Ran some logdevice integration tests that were crashing without this fix.

Differential Revision: D19116874

Pulled By: al13n321

fbshipit-source-id: 9672bc4227c1b68f46f7436db2b96811adb8c703

6 years agodelete superversions in BackgroundCallPurge (#6146)
解轶伦 [Tue, 17 Dec 2019 21:20:42 +0000 (13:20 -0800)]
delete superversions in BackgroundCallPurge (#6146)

Summary:
I found that CleanupSuperVersion() may block Get() for 30ms+ (per MemTable is 256MB).

Then I found "delete sv" in ~SuperVersion() takes the time.

The backtrace looks like this

DBImpl::GetImpl() -> DBImpl::ReturnAndCleanupSuperVersion() ->
DBImpl::CleanupSuperVersion() : delete sv; -> ~SuperVersion()

I think it's better to delete in a background thread,  please review it。
Pull Request resolved: https://github.com/facebook/rocksdb/pull/6146

Differential Revision: D18972066

fbshipit-source-id: 0f7b0b70b9bb1e27ad6fc1c8a408fbbf237ae08c

6 years agoBlobDB: only compare CF IDs when checking whether an API call is for the default...
Levi Tamasi [Fri, 20 Dec 2019 02:03:24 +0000 (18:03 -0800)]
BlobDB: only compare CF IDs when checking whether an API call is for the default CF (#6226)

Summary:
BlobDB currently only supports using the default column family. The earlier
code enforces this by comparing the `ColumnFamilyHandle` passed to the
`Get`/`Put`/etc. call with the handle returned by `DefaultColumnFamily`
(which, at the end of the day, comes from `DBImpl::default_cf_handle_`).
Since other `ColumnFamilyHandle`s can also point to the default column
family, this can reject legitimate requests as well. (As an example,
with the earlier code, the handle returned by `BlobDB::Open` cannot
actually be used in API calls.) The patch fixes this by comparing only
the IDs of the column family handles instead of the pointers themselves.
Pull Request resolved: https://github.com/facebook/rocksdb/pull/6226

Test Plan: `make check`

Differential Revision: D19187461

Pulled By: ltamasi

fbshipit-source-id: 54ce2e12ebb1f07e6d1e70e3b1e0213dfa94bda2