durusmail: quixote-users: Re: How do you handle long running requests?
How do you handle long running requests?
2003-07-18
2003-07-18
Re: How do you handle long running requests?
2003-07-18
2003-07-18
2003-07-18
2003-07-18
2003-07-19
2003-07-18
2003-07-19
Graham Fawcett (5 parts)
2003-07-20
2003-07-21
2003-07-21
2003-07-18
Re: How do you handle long running requests?
Graham Fawcett
2003-07-18
Titus Brown wrote:

> ->  wrote:
> -> >what's a "tuple space?"  actually, i don't understand what you meant in
> -> >the entire first sentance.  care to elaborate?
> ->
> -> Try searching for "linda tuple space" on Google.  Tuple spaces are a
> -> distributed programming model.  As you get jobs to perform, you create a
> -> tuple wrapping up the requested computation and throw it into a big global
> -> pool.  A bunch of independent worker processes then grab tasks out of the
> -> pool, perform them, and throw the results back in to the pool.  So getting
> -> some work done requires throwing a tuple into the pool
> -> and then waiting until it eventually gets answered.
>
> There are a lot of hits on google, but it's not clear which one to start
> with;
>
> http://sarasavi.cmb.ac.lk/academic/Science/Computer/dscs/staff/dn_ranasinghe/p
aper3.pdf
>
> seems like a good-tho-short intro.  Do you have any specific recommendations?
>
> http://pulsar.snurgle.org/~pybrenda/ is a Python implementation of a tuple
> space but I don't see much info there.
>
> thanks,
> --titus

Actually, I don't have a reference to a good Python-friendly tuple space
implementation. PyBrenda is quite old, though there may be some usable
ideas there; I might take a look. The two best-known implementations (at
least to me) are JavaSpaces and IBM's TSpaces. TSpaces, sadly, seems to
have fallen prey to the SOAP/UDDI cabal, but presumably you can sidestep
all of that and just get to the tuples.

You can also roll your own, of course. There are only a very few verbs,
and hence the API is very small. (If I recall correctly, a formal Linda
system has only two verbs: 'write' and 'take'.) Some tuple spaces have a
persistent store (and you could certainly use ZODB/bsddb beneath yours)
and others exist only in memory.

Actually, it would be very interesting, and probably quite simple, to
write a Quixote-based tuple space engine: a bare-bones write/take
interface with a pluggable backend (in-memory, ZODB, Berkeley, ...).
Would anyone be interested in such a thing?

-- Graham



reply