Skip to content

feat: Persist RequestList state #1274

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

Merged
merged 9 commits into from
Jul 23, 2025
Merged

feat: Persist RequestList state #1274

merged 9 commits into from
Jul 23, 2025

Conversation

janbuchar
Copy link
Collaborator

@janbuchar janbuchar added the t-tooling Issues with this label are in the ownership of the tooling team. label Jun 27, 2025
@janbuchar janbuchar requested review from vdusek and Pijukatel June 27, 2025 12:59
@github-actions github-actions bot added this to the 117th sprint - Tooling team milestone Jun 27, 2025
Copy link
Collaborator

@vdusek vdusek left a comment

Choose a reason for hiding this comment

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

Looks good

Comment on lines +22 to +24
next_index: Annotated[int, Field(alias='nextIndex')] = 0
next_unique_key: Annotated[str | None, Field(alias='nextUniqueKey')] = None
in_progress: Annotated[set[str], Field(alias='inProgress')] = set()
Copy link
Collaborator

Choose a reason for hiding this comment

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

Are the camelCase aliases necessary? AFAIK I also did not use them in FS storage clients.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Probably not. Sessions and Statistics (other instances of recoverable state) use them too. I have no strong opinion here, if you do, say the word and I'll remove them.

Copy link
Collaborator

@vdusek vdusek Jul 22, 2025

Choose a reason for hiding this comment

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

Well, so currently somewhere we use them, and somewhere we don't - up to you then.

@github-actions github-actions bot added the tested Temporary label used only programatically for some analytics. label Jul 21, 2025
@janbuchar janbuchar requested review from vdusek and Pijukatel July 21, 2025 18:35
@janbuchar janbuchar marked this pull request as ready for review July 21, 2025 18:35
@janbuchar
Copy link
Collaborator Author

The request data snapshotting is pretty inefficient - it loads the whole thing into memory (same as the JS version) and stores it uncompressed in the key-value store (JS version uses gzip).

After quite some trial and error, I believe we can use Ostrich algorithm now and optimize if it proves necessary.

Copy link
Collaborator

@Pijukatel Pijukatel left a comment

Choose a reason for hiding this comment

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

Some small comments and one more serious about the test.

Copy link
Collaborator

@vdusek vdusek left a comment

Choose a reason for hiding this comment

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

LGTM

@janbuchar janbuchar requested a review from Pijukatel July 23, 2025 09:05
@janbuchar janbuchar merged commit cc68014 into master Jul 23, 2025
19 checks passed
@janbuchar janbuchar deleted the request-list-persistence branch July 23, 2025 15:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
t-tooling Issues with this label are in the ownership of the tooling team. tested Temporary label used only programatically for some analytics.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Properly implement RequestList
3 participants