-
Notifications
You must be signed in to change notification settings - Fork 21
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
Add loadgen and loadgen-verify commands #343
Conversation
1673e0f
to
a15f7cb
Compare
Codecov ReportBase: 55.70% // Head: 54.21% // Decreases project coverage by
Additional details and impacted files@@ Coverage Diff @@
## main #343 +/- ##
==========================================
- Coverage 55.70% 54.21% -1.50%
==========================================
Files 144 148 +4
Lines 14304 14757 +453
==========================================
+ Hits 7968 8000 +32
- Misses 5470 5884 +414
- Partials 866 873 +7
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here. ☔ View full report at Codecov. |
|
I see:
should we not run that one with race detector? |
@gammazero I tagged you for a review. Mind taking a look at this? I'll rebase this soon. Thanks! |
b90f5eb
to
c7a8916
Compare
These are commands that can be used to generate write load on a storage provider, and verify the Ads have been correctly ingested. Useful for both stress testing an indexer as well as verifying consistency.
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.
Need to update to not use go-legs.
command/loadgen_test.go
Outdated
} | ||
|
||
// Set up a context that is canceled when the command is interrupted | ||
ctx, cancel := context.WithCancel(context.Background()) |
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.
Seems like this would prevent the test from ending due to parent context timeout.
ctx, cancel := context.WithCancel(context.Background()) | |
ctx, cancel := context.WithCancel(ctx) |
c7a8916
to
61eabf5
Compare
@gammazero can you please take this? You have the most context at this point. Also if you want to run the load tests again, I would recommend against testground. I would suggest either the existing AWS setup or docker compose |
@MarcoPolo Yes, I got this. Thanks for the suggestion re. testground. |
Some notes on testground: libp2p/test-plans#103 |
Context
As part of load testing, I've maintained a set of tools out of repo for creating write load. Those tools lived at https://github.com/marcopolo/storetheindex-deployment. Now it's time to move the write load generator to this repo so that it stays alive and can verify consistency automatically via CI.
Note that the read load generator is a bit trickier since it involves coordinating lambdas to query an endpoint. The the other repo should be reproducible at any point in the future, and the things that may change are the easy bits of which url to hit for a find query, while the hard stuff (managing builds that get deployed to lambdas and having a nice interface to start a load test) should be stable.
Proposed Changes
Adds a loadgen and loadgen-verify command
These are commands that can be used to generate write load on a storage provider, and verify the Ads have been correctly ingested.
Useful for both stress testing an indexer as well as verifying consistency.
To run this locally for example you would (in the root of this repo):
go run . daemon
go run . loadgen --topic="indexer/ingest"
(note you may need to change the topic depending on how your local indexer is configure. See ~/.storetheindex/config for your specific settings)go run . loadgen-verify
Tests
Adds a couple new test that serve as a both a check that the loadgen command works as well as a way to verify the consistency of the whole storetheindex system.
Revert Strategy
Change is safe to revert.