From 3d535b638667ad0fcfff4246fce61c0176a056c4 Mon Sep 17 00:00:00 2001 From: Garrett D'Amore Date: Sat, 26 Dec 2020 11:54:40 -0800 Subject: fixes #972 Very slow pull/push performance compared to ZMQ This refactors the pipeline protocol to use lightweight mq instead of the more expensive message queue structure. It also provides nicer backpressure and buffering support. The test suite was updated and converted to NUTS as well. This won't completely close the gap, but it should help quite a bit. --- docs/man/nng_push.7.adoc | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'docs/man') diff --git a/docs/man/nng_push.7.adoc b/docs/man/nng_push.7.adoc index 18c48579..b630c2bb 100644 --- a/docs/man/nng_push.7.adoc +++ b/docs/man/nng_push.7.adoc @@ -1,6 +1,6 @@ = nng_push(7) // -// Copyright 2018 Staysail Systems, Inc. +// Copyright 2020 Staysail Systems, Inc. // Copyright 2018 Capitar IT Group BV // // This document is supplied under the terms of the MIT License, a @@ -56,7 +56,16 @@ Only version 0 of this protocol is supported. === Protocol Options -The _push_ protocol has no protocol-specific options. +xref:nng_options.5.adoc#NNG_OPT_SENDBUF[`NNG_OPT_SENDBUF`]:: + + (`int`, 0 - 8192) + Normally this is set to zero, indicating that send operations are unbuffered. + In unbuffered operation, send operations will wait until a suitable peer is available to receive the message. + If this is set to a positive value (up to 8192), then an intermediate buffer is + provided for the socket with the specified depth (in messages). + +NOTE: Transport layer buffering may occur in addition to any socket + buffer determined by this option. === Protocol Headers -- cgit v1.2.3-70-g09d2