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

EPIC: Improve throttling mechanism with retries #713

Closed
13 tasks done
shaspitz opened this issue Feb 6, 2023 · 2 comments · Fixed by #1321
Closed
13 tasks done

EPIC: Improve throttling mechanism with retries #713

shaspitz opened this issue Feb 6, 2023 · 2 comments · Fixed by #1321
Assignees
Labels
admin: epic An EPIC -- meta issue used to track a body of work admin: key-result A key result (in the context of OKRs) S: NewThings Work towards your business objectives with new products, features, or integrations type: feature-request New feature or request improvement

Comments

@shaspitz
Copy link
Contributor

shaspitz commented Feb 6, 2023

Problem

Currently the throttling mechanism is designed so that provider logic (slash meter, etc.) dictates how many slash packets can be handled over time. Throttled slash packets are persisted on the provider, leading to issues such as #594. We can improve the throttling mechanism to instead queue/persist relevant data on each consumer, and have consumers retry slash requests as needed. CC @jtremback who came up with this idea

Closing criteria

Relevant data is persisted on each consumer with retry system implemented to enforce throttling.

Problem details

  • Throttling logic will stay on provider
  • Queuing/data persisting will now be on consumer
  • Consumer will retry slash requests when they cannot be immediately handled by the provider. IBC acknowledgements are used to implement such an idea
  • VSC matured packet delivery will likely need to be retried as well, as these packets are throttled in some cases

Task list

Must have

Preview Give feedback
  1. scope: docs
    shaspitz
  2. shaspitz
  3. shaspitz
  4. S: ImprovingThings type: feature-request type: refactoring
  5. S: NewThings type: bug type: feature-request type: tech-debt
    shaspitz
  6. S: NewThings
    shaspitz
  7. S: ImprovingThings
    shaspitz
  8. S: NewThings
    shaspitz
  9. S: NewThings question
    shaspitz

Nice to have

Preview Give feedback
  1. S: NewThings question spec
  2. S: Productivity type: refactoring type: tech-debt
@shaspitz
Copy link
Contributor Author

shaspitz commented Feb 6, 2023

Note: Implementing this idea would close #594. We also need to consider the importance of this issue in relation to more general "untrusted consumer" features

@mpoke
Copy link
Contributor

mpoke commented Feb 23, 2023

This could considerably increase the cost of relaying.

@mpoke mpoke added this to the ICS v1.1.0 milestone Feb 23, 2023
@mpoke mpoke removed this from the ICS v1.1.0 milestone Mar 5, 2023
@mpoke mpoke moved this from 🩹 Triage to 📥 Todo in Cosmos Hub Mar 6, 2023
@shaspitz shaspitz self-assigned this Jun 8, 2023
@shaspitz shaspitz added the admin: epic An EPIC -- meta issue used to track a body of work label Jun 9, 2023
@shaspitz shaspitz changed the title Improve throttling mechanism with retries EPIC: Improve throttling mechanism with retries Jun 9, 2023
@shaspitz shaspitz moved this from 📥 Todo to 🏗 In progress in Cosmos Hub Jun 9, 2023
@mpoke mpoke added the admin: key-result A key result (in the context of OKRs) label Jun 20, 2023
@mpoke mpoke pinned this issue Jun 28, 2023
@mpoke mpoke added the S: NewThings Work towards your business objectives with new products, features, or integrations label Sep 13, 2023
@github-project-automation github-project-automation bot moved this from 🏗 F3: InProgress to 👍 F4: Assessment in Cosmos Hub Oct 6, 2023
@mpoke mpoke moved this from 👍 F4: Assessment to ✅ Done in Cosmos Hub Nov 15, 2023
@mpoke mpoke unpinned this issue Nov 16, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
admin: epic An EPIC -- meta issue used to track a body of work admin: key-result A key result (in the context of OKRs) S: NewThings Work towards your business objectives with new products, features, or integrations type: feature-request New feature or request improvement
Projects
Status: ✅ Done
Development

Successfully merging a pull request may close this issue.

3 participants
@mpoke @shaspitz and others