Friday October 8, 2010

[Time] NameMessage
[08:40] Vladimir I use REQ/REP socket. When server not runing and client sent same messages to server, then if server is runing it receive all messages! How to clear message queue on client?.
[10:33] pieterh hi guys
[10:45] pieterh I was wondering about translations of the guide
[10:45] pieterh i.e. into other (human) languages
[13:39] dermoth "other (human) languages" - I Like the clarification, but why? Is zermoq no good for aliens? :)
[13:40] PerfDave I've never seen an extraterrestrial writing a good PUB/SUB framework with ZeroMQ
[13:41] dermoth Probably because thye didn'T have the proper guide translation in the first place!
[13:41] dermoth BTW the guide is awesome... I've see it only recently, is it a new addition?
[15:03] dv hello
[15:04] keffo bonjour!
[15:05] dv is it possible to put an amqp layer on top of zeromq? we have an application that was designed with AMQP in mind, but we want to try to use zeromq as amqp server
[15:05] dv since the only rabbitmq version we can use here does not scale very well
[15:06] dv and rewriting the application to use zeromq directly is unfortunately too time consuming now
[15:09] nisbus what kind of prefixes should one use to enable filtering of message subscriptions when sending json with zmq?
[15:25] CIA-20 zeromq2: 03Martin Sustrik 07master * r7a685b0 10/ (10 files):
[15:25] CIA-20 zeromq2: Clean-up of session termination process
[15:25] CIA-20 zeromq2: Specifically, shutdown of child objects is initiated *before* termination
[15:25] CIA-20 zeromq2: handshake with socket object.
[15:25] CIA-20 zeromq2: Signed-off-by: Martin Sustrik <> -
[15:31] BocaJim hello all, anyone have time for a couple scalability questions about zeromq?
[15:38] keffo dv_, Probably
[15:39] keffo nisbus, Doesnt matter, you can use whatever you like..
[15:39] keffo BocaJim, Shoot
[15:43] dv keffo: does something exist for this already?
[15:44] dv do you know about any such project?
[15:50] keffo dv_, Not really no
[15:50] CIA-20 zeromq2: 03Martin Lucina 07master * rf90c8d9 10/ (4 files): (log message trimmed)
[15:50] CIA-20 zeromq2: Scalability improvements for large amounts of connections
[15:50] CIA-20 zeromq2: Add signaler_sndbuf_size option to config.hpp which allows the user to
[15:50] CIA-20 zeromq2: increase the size of the send buffer used by the signalling socketpair.
[15:50] CIA-20 zeromq2: Implement random backoff for reconnection attempts using a primitive
[15:51] CIA-20 zeromq2: pseudo-random generation to prevent reconnection storms.
[15:51] CIA-20 zeromq2: Add wait_before_connect option to config.hpp to allow the user to enable
[15:51] keffo but most people do custom stuff with zmq anyway, hard to believe nobody has tried :)
[15:53] dv hey hold on
[15:53] dv "ZMQ-171 Add AMQP support to 0MQ"
[15:54] dv amqp support was introduced in version 0.5 ?
[15:54] mikko mato: did you commit the rpath fix?
[15:59] mato mikko: not yet, getting there, really busy
[15:59] mikko sure
[15:59] mikko no hurry
[15:59] mikko just noticed a failed build
[15:59] mikko it also reports the amount of failed tests incorrectly
[17:25] zeromqnoob I'm getting an error when installing the python extension: "gcc: zmq/core/constants.c: No such file or directory" Any ideas why?
[17:26] zeromqnoob only zmq/core/constants.pyx exists
[17:33] zeromqnoob hi jrossi
[17:34] zeromqnoob I'm getting an error when installing the python extension: "gcc: zmq/core/constants.c: No such file or directory" Any ideas why?
[17:56] pieterh hi dermoth, still around?
[17:56] dermoth yes
[17:56] pieterh i was offline for a while
[17:56] pieterh i was thinking it'd be fun to have the guide in spanish, russian, french, etc...
[17:57] pieterh well, in fact was drinking with a russian, a francophone, and a spanish guy on wednesday...
[17:57] dermoth I would love to contribute french but I don't really have time... however I can possibly proofread it as it's being translated.
[17:57] dermoth lol
[17:57] pieterh t'es francophone?
[17:58] dermoth oui
[17:58] pieterh bon, peut-etre un extrait du premier chapitre
[17:58] pieterh :-)
[17:59] pieterh anyhow, no point until the text is stable
[18:01] dermoth I have other commitments that i'd like to fulfill... but proofreading I can just print it out and take it on the bus...
[18:02] pieterh so you read it recently?
[18:02] pieterh did you finish chapter 3?
[18:03] dermoth I've sort of went trough it.. I didn't read everything but enough to get to the bottom with the feeling of having understood that complex XREQ/XREP stuff ;)
[18:03] pieterh did you find the socket aliases (router/dealer/mama/papa) helpful or confusing?
[18:04] dermoth helpful
[18:05] dermoth so I understand you're the author? Nice work!
[18:05] pieterh yeah, I'm a writer in my other life
[18:05] dermoth lol
[18:06] pieterh glad you like it, it's fun to write in fact
[18:06] dermoth I mean getting this stuff right is that hard part andyou've apparently figured all out... I did dome testing with REP/REW and a middle device and abandonned... the PUSH/PULL model suits better out need rigth now anyway
[18:07] pieterh push/pull is far easier if you're sending stuff one-way
[18:07] pieterh all the complexity with req/rep is about creating and using return envelopes
[18:07] dermoth web workeds sending data for logging... I already manage the web server I don't want to manage a pool or cpu-intensive workers too, so I preffed keeping the work in the webserver and handling just the results
[18:07] pieterh what i like is that the different patterns all find their place, in different scenarios
[18:08] pieterh have you looked at zed shaw's work with mongrel2?
[18:09] dermoth actually besides the concepts I didn't get right, my issue is that it's much faster to use persistent socket... so if a previous request timed out on the worked how can I recover the socket?
[18:10] pieterh persistent sockets, you mean not closing and opening?
[18:10] pieterh yes, you want to keep sockets open
[18:10] pieterh if workers time out, you mark the worker as 'out of action' for a certain time (2-5 seconds say)
[18:11] pieterh or you use the LRU design where workers explicitly tell the queue when they are read
[18:11] pieterh *ready
[18:11] dermoth i'm talking about the web workers... with apache prefork mpm
[18:11] pieterh so if a worker does not respond within X msecs you just send the request to the next worker
[18:11] dermoth so that would be the job of the device in the middle
[18:11] pieterh yes
[18:12] pieterh device in the middle doing reliable request/reply...
[18:12] pieterh there was a comment on email about the way SIP does it
[18:12] pieterh that's the model I'm going to implement in the next example for Ch4
[18:13] pieterh
[18:13] pieterh it's the right model for 99% of cases, which are about recovering from worker failure
[18:14] dermoth ok... makes sense... It would be much more work though, maybe in a few years ;)
[18:14] pieterh i'll provide the usual 100-line example in C... :-)
[18:14] pieterh it's pretty simple in fact, the main gotcha is a bug in zmq_poll we need to work around (or fix)
[18:15] dermoth whihc bug?
[18:15] pieterh well, design flaw, perhaps
[18:15] pieterh it will return randomly when there is no activity
[18:15] pieterh so to do a proper timeout you need to manually calculate times
[18:15] dermoth yes I worked arount it in some apps
[18:15] dermoth I can sent you c,python and php code
[18:16] pieterh it's worth posting on the wiki somewhere
[18:16] dermoth would pastebins work? you cn grab it and put it wherever you want
[18:16] pieterh nah, just create a page on
[18:16] pieterh i'm thinking the 'topics' area would work
[18:17] pieterh that lets other people find it, and refer to it
[18:17] pieterh it's a wiki, easy to edit, you will need to register first
[18:17] dermoth well I wasn't think on posting full example, just the code portion that deal with zmq_poll
[18:17] pieterh indeed
[18:18] pieterh you can even write it in French and I'll make an English translation :-)
[18:19] dermoth actually I can sent the full clients... at least for the pythin and c examples with are nagios notification handlers
[18:19] pieterh there is a wiki area for example apps as well
[18:19] pieterh sharing is good but you need to be clear about what you're giving people
[18:19] dermoth originally I wanted to use PUSH/PULL, but there was no way to flush the queue (t believe the begavior changed now) so I used xreq-xrep to implement a timeout
[18:20] pieterh there is still no way to flush the queue
[18:20] dermoth
[18:21] pieterh dermoth, the code looks nice, but without some explanatory text it's just code... :-)
[18:21] dermoth
[18:22] pieterh :-)
[18:23] pieterh bon, if you write 200 words of explanation I'll create a wiki page with these examples
[18:23] dermoth err tte python code did not have poll
[18:23] dermoth but c has a standaling my_zmqpoll that works arounf the timeout
[18:23] dermoth standalone
[18:24] pieterh nice
[18:24] pieterh i'm going to steal that fragment and ignore the rest
[18:24] pieterh uhm, what's the license on the code?
[18:27] dermoth I knew someone was going to ask....
[18:27] dermoth
[18:27] dermoth enjoy ;)
[18:28] pieterh nice, thanks
[18:30] pieterh
[18:34] pieterh And :
[18:34] pieterh feel free to edit either of these pages... and thanks for the examples :-)
[19:45] CIA-20 zeromq2: 03Martin Sustrik 07master * rdaf5d32 10/ (3 files):
[19:45] CIA-20 zeromq2: More cleanup of session termination process.
[19:45] CIA-20 zeromq2: Fix in termination of session attached to a REP socket.
[19:45] CIA-20 zeromq2: Several fixes of session termination in case of disconnection.
[19:45] CIA-20 zeromq2: Signed-off-by: Martin Sustrik <> -
[20:07] CIA-20 zeromq2: 03Martin Lucina 07master * r214b560 10/ src/zmq_connecter.cpp :
[20:07] CIA-20 zeromq2: Fix missing platform.hpp in zmq_connecter.cpp
[20:07] CIA-20 zeromq2: Missed testing on Win32
[20:07] CIA-20 zeromq2: Signed-off-by: Martin Lucina <> -