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

Simple SwingSet ingress prioritization of economic elements #5334

Closed
mhofman opened this issue May 10, 2022 · 3 comments
Closed

Simple SwingSet ingress prioritization of economic elements #5334

mhofman opened this issue May 10, 2022 · 3 comments
Assignees
Labels
cosmic-swingset package: cosmic-swingset enhancement New feature or request Epic SwingSet package: SwingSet vaults_triage DO NOT USE

Comments

@mhofman
Copy link
Member

mhofman commented May 10, 2022

What is the Problem Being Solved?

#4318 describes a mechanism to prioritize some work inside the kernel, and mixes in a "backpressure" concern disabling the ingress of low priority messages under some kernel states. However "backpressure" based on ingress into Swingset is actually mostly orthogonal to priority queues inside Swingset, with only the trigger states laying at the intersection.

This Epic is about enabling a simple backpressure mechanism ingress prioritization of economic messages into Swingset. These messages allowed to bypass any disablement of low priority ingress are the same as in #4318, and would be based on information such as the source address of the signed cosmos transaction, and/or the message type.

Currently actions are processed one at a time and do not compete with each other. Unprocessed actions sit on the inbound queue. An action in progress split over a block boundary may however compete with a timer triggered in a new block. Prioritization in this case means that once the kernel is quiescent, an action from the higher priority queue will be processed before any action from the normal queue, even if that message was queued after a pending lower priority one.

The following steps are part of this goal:

And possibly also:

@Tartuffo
Copy link
Contributor

Tartuffo commented Aug 8, 2022

Deprioritizing #5335 for MN-1 based on this discussion:

@Tartuffo:

@warner @mathieu: @tribble
suggested that for backpressure management, we could skip the governance control for RC0. That is, just us a default value for kernel queue length, and the economic message types that should go through. Thoughts?

@warner:

I think that could work.. it would mean that we'd need a software upgrade before we could change the behavior, but as long as that change doesn't happen within any vat, it's no more traumatic than our other upgrade plans.

So we should have useful defaults for the queue length and the economic message types that should go through when backpressure control has kicked in.

@mhofman mhofman changed the title Simple on/off backpressure with bypass for economic elements Simple SwingSet ingress prioritization of economic elements Aug 15, 2022
@mhofman
Copy link
Member Author

mhofman commented Aug 15, 2022

Updated this epic to reflect the focus shift to a queuing approach inside cosmic-swingset instead of a filtering approach at the cosmos layer. While the later is still needed, we don't fully understand the possible impact on the tendermint protocol, and believe the former is sufficient for prioritizing economic activity.

@mhofman
Copy link
Member Author

mhofman commented Oct 5, 2023

Core feature was part of agoric-upgrade-10. Remaining items are in the backlog

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cosmic-swingset package: cosmic-swingset enhancement New feature or request Epic SwingSet package: SwingSet vaults_triage DO NOT USE
Projects
None yet
Development

No branches or pull requests

4 participants