[zeromq-dev] 0MQ experimental OpenPGM support

Martin Sustrik sustrik at fastmq.com
Mon Jan 26 09:01:39 CET 2009


Palo,

> If Forward Error Correction (FEC) is enabled it is possible for
> non-blocking to occur at the protocol layer - dropped packets can be
> recovered by receiving applications without any communication on the
> back channel to the sending application.  The caveat is that the
> application developer has to decide on a block size that recovery
> operates on, e.g. 10 packets, this number means that 10 packets have
> to be witnessed - received or noticed missing before error recovery
> can occur.  This can affect recovery latency if blocks are not sent in
> one shot, e.g. if an application sends 5 packets and waits, receiving
> applications cannot recover if any of those packets are lost until 5
> more are sent.
> 
> The PGM protocol defines an extension to support flushing of such a
> partial block of packets, this has not yet been implemented in
> OpenPGM.  The idea would be that zero MQ could send packets into
> OpenPGM as data is waiting, when the data source indicates that it
> would block the FEC block can be flushed allowing receivers to
> initiate recovery on a partial block of packets.
> 
> As a workaround zero MQ could simply flush out the block by sending
> NULL PGM data packets.

If FEC in 0MQ on by default? If so I would suggest to switch it off for 
now to avoid stuck packets and implement the 0-byte packet solution as 
suggested by Steve later on.

Martin




More information about the zeromq-dev mailing list