[Stackless] Google Application Engine Thread on Stackless
Kristján Valur Jónsson
kristjan at ccpgames.com
Thu Mar 26 18:27:26 CET 2009
Is pickling really necessary? Can't you just have the tasklet sleeping, until a HTTP request comes back?
You can put a tasklet to sleep by calling stackless.schedule_remove() or by calling receive() on a channel.
I can't see pickling being required unless you need to pass it to a different process.
From: stackless-bounces at stackless.com [mailto:stackless-bounces at stackless.com] On Behalf Of Andrew Francis
Sent: 26. mars 2009 11:43
To: Christian Tismer; Alain Poirier
Cc: stackless at stackless.com
Subject: Re: [Stackless] Google Application Engine Thread on Stackless
Hi Alain, Christian and Company:
--- On Mon, 3/23/09, Alain Poirier <alain.poirier at net-ng.com> wrote:
> From: Alain Poirier <alain.poirier at net-ng.com>
> Subject: Re: [Stackless] Google Application Engine Thread on Stackless
> To: "Christian Tismer" <tismer at stackless.com>
> Cc: stackless at stackless.com, "Andrew Francis" <andrewfr_ice at yahoo.com>
> Date: Monday, March 23, 2009, 5:10 PM
> Thanks Christian. But without the pickle enhancement you
> created nothing could be possible. I personally think this golden
>nugget is not known enough by the community. BTW, do you think it could be >possible ? easy ? to extrac it into an extension module to the classic >CPython ? A GSoC perhaps.
It was pickling that originally attracted me to Stackless Python. Alain, I need to look at Nagare (and Seaside) more to understand how you use pickling. However what you are doing sounds cool.
That said, at PyCon 2008, a few people after my talk, asked me about pickling. So I demoed it. I also had a really interesting conversation with some folks from Second Life.
The main thing I use pickling for is to serialize the execution state of the WS-BPEL processor and individual WS-BPEL processes. However I think pickling may also simplify something called "compensation." Compensations are based on Molina's concept of a 'saga.' A part of compensation is to take snapshots of the system and in case of an error, roll the system back to that state in order to take corrective action.
Implementing compensation will be loads of fun :-|
About why more people don't know about pickling. My answer: need. I think we still live in a HTTP-centric web where the web server in handling a request, only needs to spawn a single process, talk to at most, a single machine at the backend and a transaction that takes a few seconds is considered an eternity. This is probably good for most web based activities. So stuff like Google Application Engine is okay for most developers. I think things break down quickly once you move out of this simple paradigm.
Stackless mailing list
Stackless at stackless.com
More information about the Stackless