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

historyarchive: Harden the ArchivePool to be robust against errors. #5167

Closed
Shaptic opened this issue Jan 17, 2024 · 0 comments · Fixed by #5224
Closed

historyarchive: Harden the ArchivePool to be robust against errors. #5167

Shaptic opened this issue Jan 17, 2024 · 0 comments · Fixed by #5224
Assignees
Labels
Milestone

Comments

@Shaptic
Copy link
Contributor

Shaptic commented Jan 17, 2024

What problem does your feature solve?

The current implementation of ArchivePool uses a random archive for each individual call, bubbling up any errors to the caller. It does an initial filtering on creation, but it does not handle any errors that occur during usage.

What would you like to see?

The ArchivePool should intelligently deal with problematic archives:

  • evaluate whether rand or round-robin makes more sense, in general
  • if there is an error when making a call on a certain archive, it should retry with another
    • this should have an intelligent back-off mechanism: i.e. retry immediately if it's a new archive, but back-off if it's the same or a problematic archive
  • the pool should track problematic archives, i.e. ones that give errors with high frequency/likelihood
    • should it remove problematic archives?
    • keep in mind how many remain in the pool after removal
  • consider edge cases the whole time, e.g. just one archive in the pool

What alternatives are there?

This can be handled at the caller level, but it makes sense to do this in the pool itself, if possible.

Prior work: #3402

@Shaptic Shaptic moved this from Backlog to Current Sprint in Platform Scrum Jan 17, 2024
@mollykarcher mollykarcher added performance issues aimed at improving performance horizon labels Feb 1, 2024
@stellarsaur stellarsaur self-assigned this Feb 2, 2024
@stellarsaur stellarsaur added this to the Soroban Pubnet Release milestone Feb 5, 2024
@stellarsaur stellarsaur moved this from Current Sprint to In Progress in Platform Scrum Feb 5, 2024
@mollykarcher mollykarcher removed this from the Soroban Pubnet Release milestone Feb 13, 2024
@mollykarcher mollykarcher assigned Shaptic and unassigned stellarsaur Feb 14, 2024
@mollykarcher mollykarcher added this to the Sprint 44 milestone Feb 22, 2024
@Shaptic Shaptic moved this from In Progress to Needs Review in Platform Scrum Mar 6, 2024
@github-project-automation github-project-automation bot moved this from Needs Review to Done in Platform Scrum Mar 7, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Status: Done
Development

Successfully merging a pull request may close this issue.

3 participants