You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Implement Subscriber and Publisher Priority Scheduling
Description
This issue focuses on implementing a scheduling mechanism in the library that supports Subscriber Priority and Publisher Priority, as inspired by the MoQ transport protocol. The implementation enables dynamic control over the transmission order of Objects, ensuring compliance with both subscriber and publisher-defined priorities.
Background
The library introduces two types of priorities to control scheduling:
Subscriber Priority:
Included in the SUBSCRIBE, SUBSCRIBE_UPDATE, FETCH, and FETCH_UPDATE messages.
Determines the relative priority of Objects from a subscription or fetch request.
Higher numerical values represent higher priority (i.e., 255 is the highest).
Publisher Priority:
Included in the GROUP message header, which applies to all Objects within the group.
Specifies the importance of the group relative to other groups in the same track.
Higher numerical values represent higher priority (i.e., 255 is the highest).
Scheduling Rules:
Subscriber Priority takes precedence over Publisher Priority.
If Subscriber Priorities are equal, Publisher Priority determines the order.
When both priorities are equal, additional attributes like Group Order and Object ID are used for ordering.
Control messages are always given the highest priority for transmission.
Acceptance Criteria
Implement logic to handle Subscriber Priority and Publisher Priority during scheduling.
Ensure Subscriber Priority is parsed from SUBSCRIBE, SUBSCRIBE_UPDATE, FETCH, and FETCH_UPDATE messages.
Parse Publisher Priority from GROUP message headers.
Adhere to the scheduling rules outlined above, with higher values indicating higher priority.
Provide support for dynamic updates to Subscriber Priority via SUBSCRIBE_UPDATE and FETCH_UPDATE.
Create unit and integration tests to validate priority-based scheduling under various scenarios.
Tasks
Priority Parsing:
Extend handlers to process Subscriber Priority from SUBSCRIBE, SUBSCRIBE_UPDATE, FETCH, and FETCH_UPDATE messages.
Parse Publisher Priority from GROUP message headers.
Scheduling Algorithm:
Implement a scheduler with the following priority order:
Subscriber Priority (higher is higher priority).
Publisher Priority (higher is higher priority).
Group Order (Ascending or Descending).
Ensure control messages are prioritized above all other Objects.
Dynamic Updates:
Handle updates to Subscriber Priority from SUBSCRIBE_UPDATE and FETCH_UPDATE messages.
Apply changes to in-flight and queued Objects as best as possible.
Testing:
Write unit tests for parsing and priority calculations.
Conduct integration tests under congestion scenarios to validate priority-based scheduling.
Relay Considerations:
Relays must respect Subscriber and Publisher Priority but not use Subscriber Priority directly for upstream subscriptions.
Documentation:
Update protocol documentation to reflect the implementation of Subscriber and Publisher Priority.
Provide examples showing the impact of priorities during scheduling.
Implement Subscriber and Publisher Priority Scheduling
Description
This issue focuses on implementing a scheduling mechanism in the library that supports Subscriber Priority and Publisher Priority, as inspired by the MoQ transport protocol. The implementation enables dynamic control over the transmission order of Objects, ensuring compliance with both subscriber and publisher-defined priorities.
Background
The library introduces two types of priorities to control scheduling:
Subscriber Priority:
SUBSCRIBE
,SUBSCRIBE_UPDATE
,FETCH
, andFETCH_UPDATE
messages.Publisher Priority:
GROUP
message header, which applies to all Objects within the group.Scheduling Rules:
Group Order
andObject ID
are used for ordering.Acceptance Criteria
SUBSCRIBE
,SUBSCRIBE_UPDATE
,FETCH
, andFETCH_UPDATE
messages.GROUP
message headers.SUBSCRIBE_UPDATE
andFETCH_UPDATE
.Tasks
Priority Parsing:
SUBSCRIBE
,SUBSCRIBE_UPDATE
,FETCH
, andFETCH_UPDATE
messages.GROUP
message headers.Scheduling Algorithm:
Ascending
orDescending
).Dynamic Updates:
SUBSCRIBE_UPDATE
andFETCH_UPDATE
messages.Testing:
Relay Considerations:
Documentation:
References
Additional Notes
Priority
High
The text was updated successfully, but these errors were encountered: