Showing posts with label ZeroMQ. Show all posts
Showing posts with label ZeroMQ. Show all posts

Sunday, October 28, 2012

Performance: ZeroMQ: throughput is not the inverse of latency


By Vasudev Ram

Interesting study of performance, throughput and latency (among other things) in the chapter about the ZeroMQ asynchronous messaging library, in the book Architecture of Open Source Applications (Vol. 2), which I blogged about recently.

See Section 24.3. Performance, in that chapter, for the stuff about throughput and latency.

- Vasudev Ram - Dancing Bison Enterprises


Wednesday, August 1, 2012

Mozilla's Circus, process and socket manager in Python

By Vasudev Ram


Saw this on Tarek Ziadé's blog. He's a Pythonista who has written a book about Python, and works for Mozilla.

Circus is a process & socket manager.



It is one of a collection of tools called Mozilla Services Python Tools And Libraries. Circus is written in Python and uses ZeroMQ.

The Circus site mentions that it shares some of the goals of Supervisord, Bluepill and Daemontools (those products are linked to from the Circus site, or GIYF:)

Its purpose is to monitor and control processes and sockets. It can be controlled via a command-line interface, a Python API and a Web Console.

Here is a good overview of the design of Circus in a single page.

This is an example Circus program (from the docs) that will run four instances of myprogram and watch them, restarting them if they die unexpectedly.

from circus import get_arbiter

arbiter = get_arbiter("myprogram", 4)
try:
    arbiter.start()
finally:
    arbiter.stop()


I found Circus interesting for its capabilities and also because I had worked on a project some years ago, that used a tool like Circus, though it was written in C. It had some of the same features as Circus, such as monitoring processes and restarting stopped ones, though, IIRC, it did not handle sockets like Circus does, i.e. it was only a process manager.


- Vasudev Ram - Dancing Bison Enterprises