Skip to content

tenantcapabilitieswatcher: make the watcher react faster#114719

Merged
craig[bot] merged 3 commits intocockroachdb:masterfrom
stevendanna:20231010-faster-tenant-watcher
Nov 21, 2023
Merged

tenantcapabilitieswatcher: make the watcher react faster#114719
craig[bot] merged 3 commits intocockroachdb:masterfrom
stevendanna:20231010-faster-tenant-watcher

Conversation

@stevendanna
Copy link
Copy Markdown
Collaborator

Needed for #111637.
Epic: CRDB-26691

Superceeds #112094

Prior to this patch, the tenant info watcher would only react to
changes to system.tenants upon rangefeed cache flushes, which could
be (in default config) up to 3 seconds after the change is committed.

This commit accelerates the behavior by processing updates as soon as
the rangefeed observes the change.

This new behavior is similar to the way that cluster settings changes
are processed immediately in the settings
watcher (pkg/settingswatcher).

In order to handle deletions that occur during errors that aren't
automatically retried inside the rangefeed library (and are instead
retried by the watcher resulting in a new full scan), we emit any
scan-generated rangefeed events at their scan timestamp, allowing us a
means of clearing any stale data from the cache.

Release note: None

knz and others added 3 commits November 20, 2023 10:39
Prior to this patch, the tenant info watcher would only react to
changes to `system.tenants` upon rangefeed cache flushes, which could
be (in default config) up to 3 seconds after the change is committed.

This commit accelerates the behavior by processing updates as soon as
the rangefeed observes the change.

This new behavior is similar to the way that cluster settings changes
are processed immediately in the settings
watcher (pkg/settingswatcher).

In order to handle deletions that occur during errors that aren't
automatically retried inside the rangefeed library (and are instead
retried by the watcher resulting in a new full scan), we emit any
scan-generated rangefeed events at their scan timestamp, allowing us a
means of clearing any stale data from the cache.

Release note: None

Co-authored-by: Raphael 'kena' Poss <knz@thaumogen.net>
@stevendanna stevendanna requested review from a team as code owners November 20, 2023 12:32
@stevendanna stevendanna requested a review from a team November 20, 2023 12:32
@stevendanna stevendanna requested review from a team as code owners November 20, 2023 12:32
@stevendanna stevendanna requested review from msbutler and yuzefovich and removed request for a team November 20, 2023 12:32
@cockroach-teamcity
Copy link
Copy Markdown
Member

This change is Reviewable

@stevendanna stevendanna removed request for a team November 20, 2023 12:32
@stevendanna
Copy link
Copy Markdown
Collaborator Author

The main change since #112094 was a rebase and then a set of changes to ensure that all of the previous test cases still pass without substantive changes by using the scan timestamp to clear our cache.

Copy link
Copy Markdown
Member

@yuzefovich yuzefovich left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:lgtm:

Do we want this to be backported too?

Reviewed 1 of 1 files at r1, 1 of 1 files at r2, 17 of 17 files at r3, all commit messages.
Reviewable status: :shipit: complete! 1 of 0 LGTMs obtained (waiting on @msbutler)

@stevendanna
Copy link
Copy Markdown
Collaborator Author

@yuzefovich

Do we want this to be backported too?

Eventually I think we may so I've tagged it. But we almost always hit like 1 to 2 bugs anytime we touch one of these watchers so I also want to let it bake for a few days at least.

@stevendanna stevendanna added the backport-23.2.x PAST MAINTENANCE SUPPORT: 23.2 patch releases via ER request only label Nov 21, 2023
@stevendanna
Copy link
Copy Markdown
Collaborator Author

bors r=yuzefovich

@craig
Copy link
Copy Markdown
Contributor

craig bot commented Nov 21, 2023

Build succeeded:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport-23.2.x PAST MAINTENANCE SUPPORT: 23.2 patch releases via ER request only

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants