Skip to content

Commit

Permalink
c-deps: backport RocksDB range deletion performance fix
Browse files Browse the repository at this point in the history
The current implementation of range deletion tombstones in RocksDB
suffers from a performance bug that causes excessive CPU usage on every
read operation in a database with many range tombstones. Dropping a
large table can easily result in several thousand range deletion
tombstones in one store, resulting in an unusable cluster as documented
in cockroachdb#24029.

Backport a refactoring of range deletion tombstone that fixes the
performance problem. This refactoring has also been proposed upstream as
facebook/rocksdb#4014.

A more minimal change was also proposed in facebook/rocksdb#3992--and
that patch better highlights the exact nature of the bug than the patch
backported here, for those looking to understand the problem. But this
refactoring, though more invasive, gets us one step closer to solving a
related problem where range deletions can cause excessively large
compactions (cockroachdb#26693). These large compactions do not appear to brick the
cluster but undoubtedly have some impact on performance.

Fix cockroachdb#24029.

Release note: None
  • Loading branch information
benesch committed Jun 21, 2018
1 parent 2504b5b commit 7a071e1
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion c-deps/rocksdb

0 comments on commit 7a071e1

Please sign in to comment.