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

kafka replay speed: remove records-per-fetch configuration #9906

Conversation

dimitarvdimitrov
Copy link
Contributor

What this PR does

This is the next step after #9892. We want to control only the number of bytes for fetching because that's more indicative of the load we'd receive. It also allows us to fetch in smaller increments when records become big.

Which issue(s) this PR fixes or relates to

Fixes #

Checklist

  • Tests updated.
  • Documentation added.
  • CHANGELOG.md updated - the order of entries should be [CHANGE], [FEATURE], [ENHANCEMENT], [BUGFIX].
  • about-versioning.md updated with experimental features.

@dimitarvdimitrov dimitarvdimitrov requested review from tacole02 and a team as code owners November 14, 2024 15:51
@dimitarvdimitrov dimitarvdimitrov force-pushed the dimitar/ingest/replay-speed/remove-records-per-fetch-config branch 2 times, most recently from 763b0e0 to f697d2b Compare November 14, 2024 16:04
Base automatically changed from dimitar/ingest/replay-speed/inflight-fetch-bytes-limit to main November 14, 2024 16:09
Signed-off-by: Dimitar Dimitrov <[email protected]>
Signed-off-by: Dimitar Dimitrov <[email protected]>
Signed-off-by: Dimitar Dimitrov <[email protected]>
Signed-off-by: Dimitar Dimitrov <[email protected]>
@dimitarvdimitrov dimitarvdimitrov force-pushed the dimitar/ingest/replay-speed/remove-records-per-fetch-config branch from f697d2b to 135b872 Compare November 14, 2024 16:11
Signed-off-by: Dimitar Dimitrov <[email protected]>
Signed-off-by: Dimitar Dimitrov <[email protected]>
@@ -834,76 +831,6 @@ func TestConcurrentFetchers(t *testing.T) {
pollFetchesAndAssertNoRecords(t, fetchers)
})

t.Run("staggered production with one less than multiple of concurrency and records per fetch", func(t *testing.T) {
Copy link
Contributor Author

Choose a reason for hiding this comment

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

now that we don't do exact number of records this test becomes to a large extent non-deterministic. Its purpose was to test an off-by-one condition to the previous test, but achieving this with tests is really hard now because of byte estimations

Copy link
Collaborator

@pracucci pracucci left a comment

Choose a reason for hiding this comment

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

Nice work, LGTM!

pkg/storage/ingest/fetcher.go Outdated Show resolved Hide resolved
pkg/storage/ingest/fetcher.go Outdated Show resolved Hide resolved
Copy link
Contributor

@tacole02 tacole02 left a comment

Choose a reason for hiding this comment

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

Docs look good. Thanks, @dimitarvdimitrov !

@pracucci
Copy link
Collaborator

I just noticed that a test hung in CI. Could be worth investigating if we introduced a regression (if so I can't see it just by looking at the code).

@dimitarvdimitrov
Copy link
Contributor Author

I just noticed that a test hung in CI. Could be worth investigating if we introduced a regression (if so I can't see it just by looking at the code).

i'm totally beat today. i'll check tomorrow

Signed-off-by: Dimitar Dimitrov <[email protected]>
@dimitarvdimitrov
Copy link
Contributor Author

I just noticed that a test hung in CI. Could be worth investigating if we introduced a regression (if so I can't see it just by looking at the code).

oh boy. This test hangs when it fails for some reason. Locally, i see the assertion failing, but the test never terminates. In CI we only observe it never terminating.

The test failure was more complicated than I anticipated, but at least now I understand it. I've added comments to explain the asserted values now.

@dimitarvdimitrov dimitarvdimitrov enabled auto-merge (squash) November 15, 2024 15:17
@dimitarvdimitrov dimitarvdimitrov merged commit 6ca9c52 into main Nov 15, 2024
29 checks passed
@dimitarvdimitrov dimitarvdimitrov deleted the dimitar/ingest/replay-speed/remove-records-per-fetch-config branch November 15, 2024 15:24
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