-
Notifications
You must be signed in to change notification settings - Fork 499
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
Provide configuration guidelines for BufferedStorageBackend settings #5390
Comments
Reingestion times for 10,000 ledgers with various configurations of
Summary
Recommendations
|
Additional tests for LedgersPerFile: 1000 with a smaller buffer size did not result in better performance.
|
Following Tamir's advice, I moved the tests to a dev EC2 instance. The performance was much worse: a test that takes 30 minutes locally for 10,000 ledgers took over 7 hours on the EC2. We found that I/O was the problem so as per Ops suggestion we upgraded to a larger gp3 volume and I moved PostgreSQL to use this new volume. It improved the time to about 1 hour for smaller buffer sizes but larger buffers led to oom errors. I then modified the tests to use the BufferedStorageBackend directly to download and extract ledgers with varying buffer sizes and parallel workers, without reingesting through Horizon (and thus without PostgreSQL). This cut the processing time to about 20 minutes for 10,000 ledgers, but it’s still much slower compared to 3 minutes locally. This suggests the dev EC2 (t2.medium) are too small for these tests. I’ve also run the same BufferedStorageBackend tests locally with different settings. The results match those from the previous Horizon-based tests. I’ll review all the data and provide a summary with configuration recommendations. |
We've added the recommended config values for BufferedStorageBackend in this PR https://github.com/stellar/go/pull/5462/files#diff-052e43536000d43e8d99a272431cf8b323816b05bf59b7501392f2313276c763R29. |
The guidelines can be doc'd as part of this request for new dev docs related to CDP - stellar/stellar-docs#1012 |
What problem does your feature solve?
In #4911, we added an option for Horizon to reingest historical ledgers from the datastore using BufferedStorageBackend.
BufferedStorageBackend has a
BufferSize
that specifies the number of ledgers to hold in memory and aNumWorkers
to specify the number of parallel download workers. We need to run tests and benchmark to identify the optimal configuration values.What would you like to see?
Configuration guidelines for BufferedStorageBackend.
What alternatives are there?
Let users find the best settings through experimentation.
The text was updated successfully, but these errors were encountered: