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

Limits on the amount of buffered data #462

Closed
vasilvv opened this issue Jun 11, 2024 · 3 comments · Fixed by #620
Closed

Limits on the amount of buffered data #462

vasilvv opened this issue Jun 11, 2024 · 3 comments · Fixed by #620
Assignees
Labels
Needs PR Security/DoS Issues with MoQ's security or ways it may be vulnerable to denial of service / resource exhaustion Transmission/Priority Issues involving what to transmit when, what to drop, priorities, etc

Comments

@vasilvv
Copy link
Collaborator

vasilvv commented Jun 11, 2024

If the relay is sending data to a subscriber, and the link between the subscriber and the relay cannot sustain the bitrate of the track, eventually the relay will have to buffer more and more data. At some point, the relay would have to drop the data; we should specify how that happens (lowest priority stream gets dropped first?).

@vasilvv vasilvv changed the title Limits on the number of concurrently open streams Limits on the amount of buffered data Jun 11, 2024
@afrind
Copy link
Collaborator

afrind commented Jun 11, 2024

Individual Comment:

+1 We need to specify what happens in this case. I think there's two parts:

  1. selecting what gets dropped (this is a priority question)
  2. the mechanism for dropping (stream resets, etc).

@englishm
Copy link
Collaborator

+1

Expanding Alan's list, I think we should determine:

  • (1a?) valid boundaries for dropping data (group? object? byte? bit?)
  • (2a?) under what circumstances the subscriber needs to be informed of the dropped data (do we need different verbs with different semantics in this case, e.g. fetch/subscribe? is dropping data always permitted and something all subscribers must be able to tolerate?)
  • (2b?) the means of informing subscribers of dropped data (implied or explicit)

@afrind afrind added the Transmission/Priority Issues involving what to transmit when, what to drop, priorities, etc label Jun 14, 2024
@ianswett ianswett added the Security/DoS Issues with MoQ's security or ways it may be vulnerable to denial of service / resource exhaustion label Jul 23, 2024
@ianswett
Copy link
Collaborator

The AI is to add an error code for SUBSCRIBE_DONE to indicate a subscription was cancelled because the subscription was too far behind.

ianswett added a commit that referenced this issue Dec 2, 2024
This error code can be sent by a publisher to a subscriber that is not
consuming data fast enough, causing a queue to form at the publisher
that exceeds the publisher's limits.

Fixes: #462
Fixes: #582
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Needs PR Security/DoS Issues with MoQ's security or ways it may be vulnerable to denial of service / resource exhaustion Transmission/Priority Issues involving what to transmit when, what to drop, priorities, etc
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants