-
Notifications
You must be signed in to change notification settings - Fork 607
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
Try out making a read cache for poolmanager pool modules #8128
Conversation
Important Notice This PR modifies an in-repo Go module. It is one of:
The dependent Go modules, especially the root one, will have to be Please follow the instructions below:
Please let us know if you need any help. |
…ed dependencies locally
WalkthroughThe recent updates focus on improving efficiency and tracking within the Osmosis project. Key changes include adding caching for Changes
Poem
Recent Review DetailsConfiguration used: CodeRabbit UI Files ignored due to path filters (5)
Files selected for processing (1)
Additional comments not posted (1)
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (invoked as PR comments)
Additionally, you can add CodeRabbit Configration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
Out of diff range and nitpick comments (2)
CHANGELOG.md (1)
56-56
: Ensure consistency in heading levels for better document structure.x/poolmanager/router_test.go (1)
226-232
: > 📝 NOTEThis review was outside the diff hunks and was mapped to the diff hunk with the greatest overlap. Original lines [229-238]
Ensure error messages provide sufficient context for debugging.
Consider enhancing the error message in the
s.Require().Error
assertion to include more details about the expected and actual outcomes, which can aid in quicker issue resolution during test failures.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
Out of diff range and nitpick comments (9)
CHANGELOG.md (9)
Line range hint
1010-1010
: Heading levels should only increment by one level at a time. Please adjust the heading level to maintain a logical structure.
Line range hint
1022-1022
: Heading levels should only increment by one level at a time. Please adjust the heading level to maintain a logical structure.
Line range hint
1031-1031
: Heading levels should only increment by one level at a time. Please adjust the heading level to maintain a logical structure.
Line range hint
1036-1036
: Heading levels should only increment by one level at a time. Please adjust the heading level to maintain a logical structure.
Line range hint
1088-1088
: Heading levels should only increment by one level at a time. Please adjust the heading level to maintain a logical structure.
Line range hint
349-349
: Remove the trailing punctuation in the heading to maintain consistency with other headings.
Line range hint
612-612
: Convert the bare URL to a proper link by adding descriptive text.
Line range hint
670-670
: Convert the bare URL to a proper link by adding descriptive text.
Line range hint
1251-1251
: Ensure there are no empty links in the document. Provide appropriate link text or remove the empty link.
* Try out making a read cache * Make this stored in the keeper to fix tests * Fix test reset caches * Auto: update go.mod after push to dev/test_out_read_cahce that modified dependencies locally * Add changelog --------- Co-authored-by: github-actions <[email protected]> (cherry picked from commit 76d390b) # Conflicts: # go.mod # go.sum # x/ibc-hooks/go.mod
* Try out making a read cache * Make this stored in the keeper to fix tests * Fix test reset caches * Auto: update go.mod after push to dev/test_out_read_cahce that modified dependencies locally * Add changelog --------- Co-authored-by: github-actions <[email protected]> (cherry picked from commit 76d390b)
* Try out making a read cache * Make this stored in the keeper to fix tests * Fix test reset caches * Auto: update go.mod after push to dev/test_out_read_cahce that modified dependencies locally * Add changelog --------- Co-authored-by: github-actions <[email protected]> (cherry picked from commit 76d390b) Co-authored-by: Dev Ojha <[email protected]>
* chore: add v25.x backport tag to mergify github action (#8151) * Try out making a read cache for poolmanager pool modules (#8128) * Try out making a read cache * Make this stored in the keeper to fix tests * Fix test reset caches * Auto: update go.mod after push to dev/test_out_read_cahce that modified dependencies locally * Add changelog --------- Co-authored-by: github-actions <[email protected]> * chore(deps): bump github.com/hashicorp/go-getter from 1.7.1 to 1.7.4 (#8155) Bumps [github.com/hashicorp/go-getter](https://github.com/hashicorp/go-getter) from 1.7.1 to 1.7.4. - [Release notes](https://github.com/hashicorp/go-getter/releases) - [Changelog](https://github.com/hashicorp/go-getter/blob/main/.goreleaser.yml) - [Commits](hashicorp/go-getter@v1.7.1...v1.7.4) --- updated-dependencies: - dependency-name: github.com/hashicorp/go-getter dependency-type: indirect ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump github.com/hashicorp/go-getter in /osmoutils (#8156) Bumps [github.com/hashicorp/go-getter](https://github.com/hashicorp/go-getter) from 1.7.1 to 1.7.4. - [Release notes](https://github.com/hashicorp/go-getter/releases) - [Changelog](https://github.com/hashicorp/go-getter/blob/main/.goreleaser.yml) - [Commits](hashicorp/go-getter@v1.7.1...v1.7.4) --- updated-dependencies: - dependency-name: github.com/hashicorp/go-getter dependency-type: indirect ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump github.com/hashicorp/go-getter in /x/ibc-hooks (#8154) Bumps [github.com/hashicorp/go-getter](https://github.com/hashicorp/go-getter) from 1.7.1 to 1.7.4. - [Release notes](https://github.com/hashicorp/go-getter/releases) - [Changelog](https://github.com/hashicorp/go-getter/blob/main/.goreleaser.yml) - [Commits](hashicorp/go-getter@v1.7.1...v1.7.4) --- updated-dependencies: - dependency-name: github.com/hashicorp/go-getter dependency-type: indirect ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * .5s epoch speedup (#8159) * Speedup protorev by having route calculation phase not unmarshal pools (#8157) * Another expected ~1% state machine speedup * Add changelog * minor other improvement * Reduce addr decoding overhead * chore: Create CI for bumping sdk version via GA (#8162) * Create CI for updating sdk version * Fix some comments * On PR * Use osmo v0.47.5 as default * Fix * Fix 2 * Fix 4 * Fix * Final * Final fix * Fix PR ver * Final * Final * Final * fix: return err if type not in manager (#8170) * chore(deps): bump actions/checkout from 3 to 4 (#8173) Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](actions/checkout@v3...v4) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump actions/setup-go from 3 to 5 (#8174) Bumps [actions/setup-go](https://github.com/actions/setup-go) from 3 to 5. - [Release notes](https://github.com/actions/setup-go/releases) - [Commits](actions/setup-go@v3...v5) --- updated-dependencies: - dependency-name: actions/setup-go dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * auto: update Go import paths to v25 on branch main (#8172) * auto: update Go import paths to v25 * Generated protofile changes * chore: update sqsdomain to v25 * chore: update osmoutils to latest version --------- Co-authored-by: PaddyMc <[email protected]> Co-authored-by: github-actions <[email protected]> Co-authored-by: PaddyMc <[email protected]> * chore: don't use hardcoded "uosmo" string (#8145) * check denoms for gauge creation * changelog * extract logic * use uosmo var * initial push of test fixes * fix lint * tidy * tidy * add comments * add test cases * chore: update cometbft and cosmos-sdk deps (#8179) * chore: update cometbft and cosmos-sdk deps * chore: update comments for cosmos-sdk * auto: update asset lists (#8180) Co-authored-by: czarcas7ic <[email protected]> * Properly create the module account for auction (#8178) * properly create the module account for auction * typo * lint * preserve name * updated osmoutils * chore: consensus param change (#8177) * consensus param change * changelog * err * Update upgrades.go --------- Co-authored-by: PaddyMc <[email protected]> * fix: e2e and remove toolchain (#8191) * remove toolchain * remove exclude increment * script * remove build tags * build script * remove build arg * fix: e2e and remove toolchain (#8191) * remove toolchain * remove exclude increment * script * remove build tags * build script * remove build arg (cherry picked from commit 27548cc) # Conflicts: # osmoutils/go.sum # x/ibc-hooks/go.sum * fix conflict * tidy * Revert "tidy" This reverts commit fabe8ea. * Revert "fix conflict" This reverts commit 32031fd. * Revert "Merge branch 'main' into mergify/bp/v25.x/pr-8191" This reverts commit 708dbdf, reversing changes made to 29a0917. * tidy * run script --------- Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: PaddyMc <[email protected]> Co-authored-by: Dev Ojha <[email protected]> Co-authored-by: github-actions <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Matt, Park <[email protected]> Co-authored-by: Osmosis <[email protected]> Co-authored-by: PaddyMc <[email protected]> Co-authored-by: Adam Tucker <[email protected]> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: czarcas7ic <[email protected]> Co-authored-by: Nicolas Lara <[email protected]> Co-authored-by: Adam Tucker <[email protected]>
Try out making a read cache to avoid extra unmarshals.
For the state machine im pretty confident it will work, it may break the errors for some weird queries to old heights (since it will share this cache, and should really return a miss). But this will only be an edge case for new pools.
We should def test it in prod, but I think this should eliminate this 4.73 out of 1100 seconds of sync time:
More importantly i think this will be helpful as a stepping stone to figuring out a more general, re-usable design pattern for us. We could just cache the proto unmarshals, but we would then still pay the key formatting cost. We could cache both key formatting and proto unmarshal in this case.
More general case, we likely do need to cache the two steps differently and use LRU's.
Summary by CodeRabbit
New Features
Bug Fixes
Refactor
Chores