Lack of channel ID prioritization in MConnection's message receiving process #1192
Open
2 tasks done
Labels
WS: Big Blonks 🔭
Improving consensus critical gossiping protocols
Problem
Summary: Currently, there is no channel ID prioritization on the receiving side of an
MConnection
. This results in sequential processing of incoming messages without prioritizing important messages, such as those for voting.More context: In the
MConnection
, sending channels are associated with priorities, which affects the order in which messages are sent. However, on the receiving end, all messages are processed in the order they arrive. For example, if there are 100 messages with a lower priority (i.e., belonging to a channel ID with low priority) in line (i.e., in theMConnection
'sbufConnReader
), and the 101st message is an important one, therecvRoutine
will only process this important message after completing all the preceding 100 messages. Essentially, there is no priority for channel IDs implemented on the receiving side. This contrasts with the sending side, where even if a low priority channel ID has pending messages, the sending routinesendRoutine()
will prioritize a message from a higher priority channel ID over them and send it earlier (these lines). To be precise, the priority is determined by the ratio of the amount of recently sent bytes to the channel ID's absolute priority.Acceptance Criteria
MConnection
. test: sequential receipt of messages in MConnection #1193The text was updated successfully, but these errors were encountered: