

A Look at Nanomsg and Scalability Protocols - signa11
http://www.bravenewgeek.com/a-look-at-nanomsg-and-scalability-protocols/

======
_pmf_
On zero-copy: the article claims nanomsg uses it. The official documentation
at [http://nanomsg.org/development-
bindings.html](http://nanomsg.org/development-bindings.html) says something
else:

> Zero-copy means that the application has to deal

> directly with different native memory buffers, for

> example with blocks of shared memory, or memory pinned

> down to physical memory address (so as to be accessible

> by zero-copy CPU-bypass techniques) and so on. This is

> hard, and sometimes even impossible, to get working

> with languages with automatic garbage collection.

>

> If you still want to provide zero-copy, make sure to

> discuss it on the nanomsg mailing list or IRC channel

> in advance to avoid possible pitfalls.

So, I assume that zero-copy is not used in any out-of-the-box implementation.
Maybe someone with more experience can clarify this. The documentations
further mentions zero-copy only in the local form of scatter/gather (used with
vmsplice etc.), which is distinct from zero-copy to the network layer.

~~~
rumcajz
Nanomsg API is crafted in such a way as to allow for network-level zero-copy.
This is much unlike other messaging products. However, I know of no
implementation that actually uses that.

------
themckman
Interestingly, we do something almost identical using Salt for service
discovery (hey, it's built on ZeroMQ, too). We periodically ping all minions
and record some information about them that gets provided as pillar data such
that we can write out databases hosts and such into environment variables when
configuring hosts.

