cockroachdb / cockroachdb/cockroach

kvserver: optimize rangefeed logical ops

Open
#105,329 2 comments 0 reactions 0 assignees View on GitHub
A-kv-rangefeed C-performance T-kv
Dominant language
Go
Stars
32.5k
Forks
4.1k
PR merge metrics
PR metrics pending

Description

Currently, `kv.rangefeed.enabled` is off by default, since it introduces a non-negligible cost for all write operations, regardless of whether any rangefeeds are in use. This is believed to be largely due to the inclusion of `MVCCLogicalOps` in the Raft write batches, which describe the high-level operations performed by the writes. These are necessary to avoid having to decode the binary Pebble write batches and reverse-engineer the higher-level operations from them (trivial for puts, not trivial for intent/txn processing).

See also [the original RFC](https://github.com/cockroachdb/cockroach/blob/120b1313be873a0ab43e8941a5fd40777b7f24dc/docs/RFCS/20170613_range_feeds_storage_primitive.md).

Can we do better, either by optimizing down the cost of these logical ops, or eliminating them either entirely or partially?

Jira issue: CRDB-28982

xref #95228

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.