-
Notifications
You must be signed in to change notification settings - Fork 245
feat: make reaper poll duration configurable #2951
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
Conversation
|
The latest Buf updates on your PR. Results from workflow CI / buf-check (pull_request).
|
Summary of ChangesHello @chatton, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request enhances the system's configurability by allowing users to set the interval for the "reaper" component's polling of the execution layer. This change provides greater control over transaction detection latency and the associated RPC load, enabling operators to optimize performance based on their specific needs. Highlights
🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console. Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
|
Claude finished @chatton's task in 1m 54s —— View job Comprehensive Code ReviewI've completed a thorough review of this PR. Overall, this is a well-implemented feature that makes the reaper polling interval configurable. The code quality is good, and the changes are clean and focused. Below are my detailed findings: SummaryPurpose: Enable configuration of the reaper poll interval to reduce E2E transaction latency. Changes:
Code Quality & Architecture ✅Strengths:
Observations:
Configuration Management ✅Strengths:
Documentation Quality: ScrapeInterval DurationWrapper `mapstructure:"scrape_interval" yaml:"scrape_interval"
comment:"Interval at which the reaper polls the execution layer for new transactions.
Lower values reduce transaction detection latency but increase RPC load.
Examples: \"250ms\", \"500ms\", \"1s\"."`This is excellent - it clearly explains:
Testing Coverage
|
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.
Code Review
This pull request introduces a new configuration option, scrape_interval, to control the reaper's polling duration. This is a valuable addition for tuning node performance, especially for reducing end-to-end transaction latency. The implementation looks good, adding the necessary flag, configuration property, and default value. I've included a couple of suggestions for improvement: one regarding test coverage for the new flag and another for code cleanup by removing a now-unused constant.
| executor, | ||
| cacheManager, | ||
| reaping.DefaultInterval, | ||
| config.Node.ScrapeInterval.Duration, |
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.
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.
+1 on this, cc @chatton
| cmd.Flags().Duration(FlagLazyBlockTime, def.Node.LazyBlockInterval.Duration, "maximum interval between blocks in lazy aggregation mode") | ||
| cmd.Flags().Uint64(FlagReadinessWindowSeconds, def.Node.ReadinessWindowSeconds, "time window in seconds for calculating readiness threshold based on block time (default: 15s)") | ||
| cmd.Flags().Uint64(FlagReadinessMaxBlocksBehind, def.Node.ReadinessMaxBlocksBehind, "how many blocks behind best-known head the node can be and still be considered ready (0 = must be at head)") | ||
| cmd.Flags().Duration(FlagScrapeInterval, def.Node.ScrapeInterval.Duration, "interval at which the reaper polls the execution layer for new transactions") |
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.
It's great that you've added this new configuration flag. To ensure it's working as expected and to maintain test coverage, please consider adding a test case for FlagScrapeInterval in TestAddFlags within pkg/config/config_test.go. You'll also likely need to update the expectedFlagCount in that test to ensure all flags are accounted for.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #2951 +/- ##
=======================================
Coverage 58.73% 58.74%
=======================================
Files 90 90
Lines 8720 8722 +2
=======================================
+ Hits 5122 5124 +2
Misses 3011 3011
Partials 587 587
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
Can you add *.out in gitignore? |
* main: (34 commits) feat: make reaper poll duration configurable (#2951) chore!: move sequencers to pkg (#2931) feat: Ensure Header integrity on DA (#2948) feat(testda): add header support with GetHeaderByHeight method (#2946) chore: improve code comments clarity (#2947) chore(sequencers): optimize store check (#2945) fix: make evm_execution more robust (#2942) fix(sequencers/single): deterministic queue (#2938) fix(block): fix init logic sequencer for da epoch fetching (#2926) feat: use DA timestamp (#2939) chore: improve code comments clarity (#2943) build(deps): bump libp2p (#2937) build(deps): Bump actions/cache from 4 to 5 (#2934) build(deps): Bump actions/download-artifact from 6 to 7 (#2933) build(deps): Bump actions/upload-artifact from 5 to 6 (#2932) feat: DA Client remove interface part 3, replace types with new code (#2910) DA Client remove interface: Part 2.5, create e2e test to validate that a blob is posted in DA layer. (#2920) fix(syncing): skip forced txs checks for p2p blocks (#2922) build(deps): Bump the all-go group across 5 directories with 5 updates (#2919) chore: loosen syncer state check (#2927) ...
* main: chore: fix some minor issues in the comments (#2955) feat: make reaper poll duration configurable (#2951) chore!: move sequencers to pkg (#2931) feat: Ensure Header integrity on DA (#2948) feat(testda): add header support with GetHeaderByHeight method (#2946) chore: improve code comments clarity (#2947) chore(sequencers): optimize store check (#2945)
Overview
Enable reaper poll interval to be configurable to help reduce E2E tx latency