Headers are a major source of slowness
- Lingua principale
- Java
- Stelle
- 12.1k
- Fork
- 4k
- Merge medio
- 2g 17h
- PR unite (30g)
- 37
Descrizione
Currently the metadata handling has a number of inefficiencies that materially affect performance.
Netty
- We convert MethodDescriptor into Http2Headers for every call. Could be cached
- We have no way of storing a validation result or derived value with a header cached by HPACK. E.g validating that the content-type is correct is done on the string value even though the value is effectively constant when emitted by HPACK.
Performance benchmark UnaryCallQpsBenchmark shows that header handling is ~10% of total CPU cost.
Guida per i contributori
Apri la guida per i contributori
Direzione di ricerca
Inizia con UnaryCallQpsBenchmark e traccia la gestione dei metadati Netty che misura, inclusa la conversione di MethodDescriptor in Http2Headers e gli HPACK-cached headers. Determina quale ottimizzazione può essere isolata e misurata in modo indipendente; il lavoro è completo quando è documentata una riduzione del costo CPU degli header senza modificare la convalida degli header o il comportamento RPC.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- java
- Ambito
- backend, performance
- Tipo di issue
- Refactoring
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Stato di attività
- Ferma
- Chiarezza
- Da chiarire
- Idoneità per principianti
- 25/100