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

Geyser plugins do not have any tests, integration or benchmark #33672

Closed
godmodegalactus opened this issue Oct 12, 2023 · 5 comments
Closed

Geyser plugins do not have any tests, integration or benchmark #33672

godmodegalactus opened this issue Oct 12, 2023 · 5 comments
Labels
community Community contribution stale [bot only] Added to stale content; results in auto-close after a week.

Comments

@godmodegalactus
Copy link
Contributor

godmodegalactus commented Oct 12, 2023

Problem

Currently, we want to implement and integrate a few PR to change the geyser interface, which is primordial to implement the new RPC-v2 interface. We plan to stream all the data out over the geyser for the new RPC implementation.

But any changes to the geyser interface is difficult to merge because there is not enough testing on this part.
We want to ensure that any changes to this interface do not break Solana validator, existing infrastructure or degrade the performance.

Proposed Solution

  • Create a vanilla Geyser Plugin which can stream out data over QUIC or UDP.
  • Test the plugins impact on the validator.
  • Write unit-tests that the plugin always work as intended.
  • Implement benchmarking infrastructure to test that plugins performance is not degraded because of commits.
@godmodegalactus godmodegalactus added the community Community contribution label Oct 12, 2023
@KirillLykov
Copy link
Contributor

KirillLykov commented Oct 12, 2023

My understanding from the discussion with Mango is there are two things regarding regression tests for geyser.

  1. verify that whatever changes in the geyser do not affect the throughput of geyser.
  2. verify that whatever changes in the geyser do not affect the QoS of the network of validators.

For this, we need to have minimum overhead plugin. This will be also useful to measure the overhead of real plugin that is going to be used.

Another dimension on this is timeline. As far as I understood these PRs need to be merged and, hence, tested in the next month or so. For that some intermediate testing solution might be sufficient. Like develop this vanilla plugin and measure the throughput before/after changes on testnet to address (1). For (2), probably need to simulate conditions when throughput of this plugin is at max and meanwhile check that the key validator metrics are as expected (best effort approach for now).

@KirillLykov
Copy link
Contributor

Lets add @lijunwangs and @CriesofCarrots because they might have more context

@godmodegalactus
Copy link
Contributor Author

Some PRs that i would like to be merge eventually.

@godmodegalactus
Copy link
Contributor Author

#33401

@godmodegalactus
Copy link
Contributor Author

#33292

@github-actions github-actions bot added the stale [bot only] Added to stale content; results in auto-close after a week. label Oct 14, 2024
@github-actions github-actions bot closed this as not planned Won't fix, can't repro, duplicate, stale Oct 21, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
community Community contribution stale [bot only] Added to stale content; results in auto-close after a week.
Projects
None yet
Development

No branches or pull requests

2 participants