top | item 36048827

(no title)

eternalban | 2 years ago

Pipelining is a kind of asynchronous communication that we employ to maximize throughput.

discuss

order

stkdump|2 years ago

I don't think that is a widely held opinion. Nor is it a helpful way to describe it.

eternalban|2 years ago

That was not a description. I merely appended the primary motivation for pipelining. We trade latency for throughput in pipelining.*

It's also not opinion. When pipelining, the communicating peers are not sychronizing their interactions; it occurs in an a-synchronous manner. Where does opinion get into the picture?

* since we typically end up packing a multiplicity of requests in a given MTU and further we can saturate the link (on both ends) since we are not blocking for a response before sending the next request. In synchronous protocols, the full bandwidth can't be utilized as there are cycles where the link (on respective sides) is idle.

As for description of pipelining, this question came up years ago in Redis's newsgroup and I posted the following (It starts sync and the final segment is 'pipelining' :)

https://youtu.be/bGv5s3EXH0w