Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Replace bufferedSubStreamOutput in Http2Demux with direct access to stream state machine

Aperta
#330 0 commenti 2 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
35/100
Tipo di issue
Refactoring
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
scala

Direzione di ricerca

Inizia tracciando Http2Demux e il relativo percorso bufferedSubStreamOutput, quindi leggi la macchina a stati dello stream e come vengono recuperati e distribuiti i substream. Definisci il comportamento della posizione di attesa, inclusi il buffering dei dati in arrivo anticipati e la gestione di endStream. Il lavoro è completato quando la distribuzione è guidata direttamente dalla disponibilità della macchina a stati e si evita un’infrastruttura di streaming non necessaria per gli stream annullati o completamente ricevuti.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

enhancement performance

Right now, we dispatch substreams as soon as they are incoming / we detect them into bufferedSubStreamOutput. Instead, we can let them be pulled and query the state machine whether a stream is ready to be dispatched. In particular, this will automatically avoid allocating infrastructure for streams that might never materialize (e.g. because they are cancelled before they will be pulled).

One way to do it would be to introduce a kind of "holding position" state. In that state, we could also already start collecting incoming data (which we have to buffer anyway up to the default window size). In the best case, we have already seen endStream = true for the request side, so that we can avoid setting up the expensive streaming infrastructure (this will mean that in overload cases we will "automatically" reduce work because we collect buffers early on when there is backpressure from the stream handling flow).

Lingua principale
Scala
Stelle
196
Fork
56
Merge medio
1g 18h
PR unite (30g)
43

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di apache/pekko-http

Tutte le issue di apache/pekko-http

Issue simili

Altre issue su Scala

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.