grpc / grpc/grpc-java

Allow for batching writes to the framer

Ouverte
#502 30 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
performance
Langage dominant
Java
Étoiles
12.1k
Forks
4k
Merge moyen
2 j 17 h
PR mergées (30 j)
37

Description

Need to allow applications to perform a sequence of writes that cause a single flush in the framer to improve throughput.

The typical example for this would be an application thats wants to write messages until isReady() is false and to do more writes when onReady() is called. Even if the application is not flow-control aware (i.e is not using isReady) it would still be useful to allow write batching for bursty streams

One simple option for doing this would be to delay the outbound framer flush while executing onPayload/isReady callbacks though this would only help cases where sends are done inside these callbacks by the same thread. A more thorough API change is probably warranted.

To give some performance context the change described above allows the FlowControlledMessagesPerSecondBenchmark to go from ~700kqps to ~4Mqps on my box

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Commencez par suivre le flush du framer sortant autour des callbacks onPayload/isReady et du FlowControlledMessagesPerSecondBenchmark mentionné dans l’issue. Définissez et validez un comportement d’API ou de callback qui regroupe les écritures séquentielles en un seul flush, y compris pour les streams contrôlés par le flux et les streams en rafales, puis comparez les résultats des benchmarks.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
java
Domaine
networking
Type d'issue
Fonctionnalité
Difficulté
5/5
Temps estimé
Plus d'une semaine
Activité
À l'abandon
Clarté
À clarifier
Accessibilité débutants
30/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.