[zeromq-dev] Notify send()er that they've hit the high water mark

Michel Pelletier pelletier.michel at gmail.com
Mon Jul 9 23:00:28 CEST 2012


On Mon, Jul 9, 2012 at 1:44 PM, Edwin Amsler
<edwinamsler at thinkboxsoftware.com> wrote:
> No need. I don't even care about subscribers. It's all about feeding the
> sending state machine efficiently.

The SSP is about never getting to the point where the PUB socket drops
messages, because your subscribes never go slow enough to fill the
queue.  If you don't care about subscribers, then it sounds like the
right pattern for you.

-Michel

>
> On 09/07/2012 3:41 PM, Michel Pelletier wrote:
>> Have you looked at the suicidal snail pattern?
>>
>> http://zguide.zeromq.org/page:all#Slow-Subscriber-Detection-Suicidal-Snail-Pattern
>>
>> -Michel
>>
>> On Mon, Jul 9, 2012 at 1:24 PM, Edwin Amsler
>> <edwinamsler at thinkboxsoftware.com>  wrote:
>>> So here I am, publishing messages through ZeroMQ's send() function at about
>>> 300MB/s, and my network's set to only send at 10MB/s.
>>>
>>> This is kind of a big problem because, while I don't care if the clients
>>> loose data on their end, the server is either using its memory until it
>>> crashes, or I'm setting its high water mark and loosing about 29 of every
>>> thirty messages I produce because I don't know that ZeroMQ can't keep up.
>>>
>>> Ideally, when a HWM condition happened, send() would return false, then I'd
>>> test EAGAIN so I could decide for myself whether I should drop the message,
>>> or retry later. With that kind of functionality, I could throttle back my
>>> producer algorithm so that I exactly meet the demand of ZeroMQ instead of
>>> overwhelming/starving it out.
>>>
>>> I'm willing to do the work if this sort of addition makes sense to the rest
>>> of the project. I'd rather contribute here instead of forking it off in some
>>> forgotten repository.
>>>
>>> Can/should this be done? Is there someone out there willing to mentor me?
>>>
>>> Thanks,
>>>
>>> Edwin
>>>
>>> _______________________________________________
>>> zeromq-dev mailing list
>>> zeromq-dev at lists.zeromq.org
>>> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>>>
>> _______________________________________________
>> zeromq-dev mailing list
>> zeromq-dev at lists.zeromq.org
>> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>
> _______________________________________________
> zeromq-dev mailing list
> zeromq-dev at lists.zeromq.org
> http://lists.zeromq.org/mailman/listinfo/zeromq-dev



More information about the zeromq-dev mailing list