[zeromq-dev] Round robin problems with offline servers

Ben Gray ben at benjamg.com
Sat Jun 2 19:40:32 CEST 2012

On 1 June 2012 12:35, Andrew Hume <andrew at research.att.com> wrote:
> conceptually, the simplest solution is to interpose a scheduler.
> clients push to teh scheduler; servers to req/rep to the scheduler to ask
> for a job.

This is actually what we are doing, the message distribution here is
to schedulers that hand off work as requested. However the problem is
that the messages were never getting to the schedulers at all due to
just filling up the pipes.

On 1 June 2012 14:44, Ian Barber <ian.barber at gmail.com> wrote:
> This is slightly complicated by the fact that either you'd have a massive
> backwards compatability/expectation change (connect()ed sockets block on
> first send() in many cases) or you'd have a disparity between the first
> connection, and subsequent connections, which feels weird.

An alternative might be to prioritise messages to connected pipes, and
then buffer on all pipes afterwards. This would give consistency
between the first and later connections, and would also act how it
currently does with respect to expectations however feels like an
overly complex system.

Either way it differs to how bind treats a connection which is a
shame, although your new patch makes it closer. We also have an
inconsistency with the way new connections are treated compared to
existing ones that are reconnecting.

More information about the zeromq-dev mailing list