W3C home > Mailing lists > Public > xproc-dev@w3.org > March 2014

Calabash: limits to Piperack scalability?

From: Cranford, Jonathan W. <jcranford@mitre.org>
Date: Tue, 25 Mar 2014 15:55:54 +0000
To: "xproc-dev@w3.org" <xproc-dev@w3.org>
CC: "Costello, Roger L." <costello@mitre.org>
Message-ID: <A0879CE1FEEE1242B002E148D34678DF24DC4993@IMCMBX02.MITRE.ORG>
Norm (and anyone else that is familiar with Piperack),

I started playing with the Piperack RESTful server bundled with Calabash.  I was looking for a long-running Calabash server with a useful API, and it fits the bill perfectly.

So now I'm wondering: are there limits to the scalability you can get with Piperack?  

Specifically:
* Looking at the REST API documentation and the code (from the 1.0.16 release), it looks like a single pipeline can't run concurrently in multiple threads; that is, it looks like multiple concurrent requests to http://.../pipelines/foo/run wouldn't work.  However, I don't see anything in the code that would prevent concurrent requests from corrupting the state of the pipeline; BaseResource.runProtected(), for instance, looks like a critical section that should be protected from concurrent requests.  What prevents multiple concurrent requests to the same pipeline from corrupting the state of the pipeline?

* Is there anything in the code that would limit separate pipelines from running concurrently?  It looks like Restlet supports it; I'm really asking about any underlying architectural limitations.

* If not, is there anything that would prevent multiple pipelines from the same XProc file running concurrently?

I'm not looking for hard numbers; I asking more about any inherent architectural limitations I should be aware of that would prevent me from cranking Piperack up to handle, say, hundreds or thousands of messages a second.

Thanks in advance,

--
Jonathan W. Cranford 
Senior Information Systems Engineer
The MITRE Corporation (http://www.mitre.org)
Received on Tuesday, 25 March 2014 15:56:27 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 21:03:12 UTC