I just got around to reading the messages.<br><br>When I first saw this, I thought this is so that the processes that need to share and work on shared objects. That is where the locks are required. However, all shread objects are managed by the object manager and thus all such operations are in effect sequential, even acquires on different locks.&nbsp; Thus other shared objects in the object manager will actually not require any (additional) synchronization. Of course, the argument here is that it is still possible to use that code.
<br><br>Cleanup of shared objects seems to be another thing to look out for. This is a problem that subprocesses seem to avoid and has been already suggested.<br><br>-Chetan<br><br><div><span class="gmail_quote">On 10/11/06, 
<b class="gmail_sendername"><a href="mailto:python-dev-request@python.org">python-dev-request@python.org</a></b> &lt;<a href="mailto:python-dev-request@python.org">python-dev-request@python.org</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Message: 5<br>Date: Wed, 11 Oct 2006 10:23:40 +0200<br>From: &quot;M.-A. Lemburg&quot; &lt;<a href="mailto:mal@egenix.com">mal@egenix.com</a>&gt;<br>Subject: Re: [Python-Dev] Cloning threading.py using proccesses<br>To: Josiah Carlson &lt;
<a href="mailto:jcarlson@uci.edu">jcarlson@uci.edu</a>&gt;<br>Cc: <a href="mailto:python-dev@python.org">python-dev@python.org</a><br>Message-ID: &lt;<a href="mailto:452CAA0C.6030306@egenix.com">452CAA0C.6030306@egenix.com
</a>&gt;<br>Content-Type: text/plain; charset=ISO-8859-1<br><br>Josiah Carlson wrote:<br>&gt; Fredrik Lundh &lt;<a href="mailto:fredrik@pythonware.com">fredrik@pythonware.com</a>&gt; wrote:<br>&gt;&gt; Josiah Carlson wrote:
<br>&gt;&gt;<br>&gt;&gt;&gt; Presumably with this library you have created, you have also written a<br>&gt;&gt;&gt; fast object encoder/decoder (like marshal or pickle).&nbsp;&nbsp;If it isn't any<br>&gt;&gt;&gt; faster than cPickle or marshal, then users may bypass the module and opt
<br>&gt;&gt;&gt; for fork/etc. + XML-RPC<br>&gt;&gt; XML-RPC isn't close to marshal and cPickle in performance, though, so<br>&gt;&gt; that statement is a bit misleading.<br>&gt;<br>&gt; You are correct, it is misleading, and relies on a few unstated
<br>&gt; assumptions.<br>&gt;<br>&gt; In my own personal delving into process splitting, RPC, etc., I usually<br>&gt; end up with one of two cases; I need really fast call/return, or I need<br>&gt; not slow call/return.&nbsp;&nbsp;The not slow call/return is (in my opinion)
<br>&gt; satisfactorally solved with XML-RPC.&nbsp;&nbsp;But I've personally not been<br>&gt; satisfied with the speed of any remote 'fast call/return' packages, as<br>&gt; they usually rely on cPickle or marshal, which are slow compared to
<br>&gt; even moderately fast 100mbit network connections.&nbsp;&nbsp;When we are talking<br>&gt; about local connections, I have even seen cases where the<br>&gt; cPickle/marshal calls can make it so that forking the process is faster
<br>&gt; than encoding the input to a called function.<br><br>This is hard to believe. I've been in that business for a few<br>years and so far have not found an OS/hardware/network combination<br>with the mentioned features.
<br><br>Usually the worst part in performance breakdown for RPC is network<br>latency, ie. time to connect, waiting for the packets to come through,<br>etc. and this parameter doesn't really depend on the OS or hardware<br>
you're running the application on, but is more a factor of which<br>network hardware, architecture and structure is being used.<br><br>It also depends a lot on what you send as arguments, of course,<br>but I assume that you're not pickling a gazillion objects :-)
<br><br>&gt; I've had an idea for a fast object encoder/decoder (with limited support<br>&gt; for certain built-in Python objects), but I haven't gotten around to<br>&gt; actually implementing it as of yet.<br><br>Would be interesting to look at.
<br><br>BTW, did you know about <a href="http://sourceforge.net/projects/py-xmlrpc/">http://sourceforge.net/projects/py-xmlrpc/</a> ?<br><br>--<br>Marc-Andre Lemburg<br>eGenix.com<br><br>Professional Python Services directly from the Source&nbsp;&nbsp;(#1, Oct 11 2006)
<br>&gt;&gt;&gt; Python/Zope Consulting and Support ...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.egenix.com/">http://www.egenix.com/</a><br>&gt;&gt;&gt; mxODBC.Zope.Database.Adapter ...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://zope.egenix.com/">http://zope.egenix.com/
</a><br>&gt;&gt;&gt; mxODBC, mxDateTime, mxTextTools ...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://python.egenix.com/">http://python.egenix.com/</a><br>________________________________________________________________________<br><br>::: Try 
mxODBC.Zope.DA for Windows,Linux,Solaris,FreeBSD for free ! ::::<br><br><br>------------------------------<br></blockquote></div><br>