From e1d963b2d35dac0e0332a8654befdb327dc0094c Mon Sep 17 00:00:00 2001 From: Garrett D'Amore Date: Fri, 6 Jan 2017 18:26:28 -0800 Subject: Initial swag at pipeline (PUSH/PULL). PUSH attempts to do a round-robin based distribution. However, I noticed that there is a bug in REQ, because REQ sockets will continue to pull down work until the first one no longer has room. This can in theory lead to scheduliung imbalances when the load is very light. (Under heavy load, the backpressure dominates.) Also, I note that mangos suffers the same problem. It does not make any attempt to deliver work equally, basically each pipe winds up pulling messages until its own buffers are full. This is bad. We can borrow the logic here for both REQ and mangos. None of this is tested yet. --- src/CMakeLists.txt | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/CMakeLists.txt') diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 0f040f35..28fcb026 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -67,6 +67,9 @@ set (NNG_SOURCES protocol/pair/pair.c + protocol/pipeline/pull.c + protocol/pipeline/push.c + protocol/pubsub/pub.c protocol/pubsub/sub.c -- cgit v1.2.3-70-g09d2