Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

kvserver: [dnm] add TestFlowControlSendQueueRangeSplitMerge test (picked) #136495

Conversation

kvoli
Copy link
Collaborator

@kvoli kvoli commented Dec 2, 2024

#136258 ontop of #136330

…geController

This is used to set the highest index up to which all send-queues in
pull mode must be force-flushed.

Informs cockroachdb#135601

Epic: CRDB-37515

Release note: None
- ReplicatedEvalResult.DoTimelyApplicationToAllReplicas is added and set
  in splitTriggerHelper, MergeTrigger, Migrate, Subsume.
- The previous setting to true is gated on cluster version
  V25_1_AddRangeForceFlushKey.
- This causes ReplicaState.ForceFlushIndex to be set, and
  RangeForceFlushKey (a replicated range-id local key) to be written when
  applying the corresponding batch to the state machine. The index is set
  to the index of the entry being applied, and is monotonically
  increasing.
- replica_rac2.Processor and rac2.RangeController have
  existing ForceFlushIndexChangedLocked methods that are called whenever
  the Replica sees a change in the force-flush-index.

Fixes cockroachdb#135601

Epic: CRDB-37515

Release note: None
Copy link

blathers-crl bot commented Dec 2, 2024

Your pull request contains more than 1000 changes. It is strongly encouraged to split big PRs into smaller chunks.

🦉 Hoot! I am a Blathers, a bot for CockroachDB. My owner is dev-inf.

@kvoli kvoli self-assigned this Dec 2, 2024
@cockroach-teamcity
Copy link
Member

This change is Reviewable

@kvoli kvoli changed the title kvserver: [dnm] add TestFlowControlSendQueueRangeSplitMerge test (cherry) kvserver: [dnm] add TestFlowControlSendQueueRangeSplitMerge test (picked) Dec 2, 2024
Add a new rac2 flow control integration test,
`TestFlowControlSendQueueRangeSplitMerge`.

This test takes the following steps:

```sql
-- We will exhaust the tokens across all streams while admission is blocked on
-- n3, using a single 4 MiB (deduction, the write itself is small) write. Then,
-- we will write a 1 MiB put to the range, split it, write a 1 MiB put to the
-- RHS range, merge the ranges, and write a 1 MiB put to the merged range. We
-- expect that at each stage where a send queue develops n1->s3, the send queue
-- will be flushed by the range merge and range split range operations.
```

Part of: cockroachdb#132614
Release note: None
@kvoli kvoli force-pushed the 241202.rac2-send-queue-test-split-rebased-on-136330 branch from 492182d to 7dc2798 Compare December 2, 2024 18:52
@kvoli kvoli closed this Dec 2, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants