TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Tuple Spaces (or, Good Ideas Don’t Always Win)

74 pointsby krsabout 14 years ago

12 comments

DrJosiahabout 14 years ago
I built a tuple space implementation a few years ago. I came to the conclusion that the filter predicates were functionally equivalent to delayed RPC, aka task queues, and occasionally even publish/subscribe. It's at that point that I got bored and left the code to (essentially) rot.<p>I now use task queues on a daily basis to process countless non-realtime tasks. It's a much more straightforward metaphor for what you actually want to do, and without altering the paradigm, allows you to do practically useful things (prioritizing, deadlines, retries, etc.)<p>It is a useful conceptual model, but mostly as a way to pull people away from the MPI/PVM/threads/processes lock-step/locking parallel concurrency models.
jerfabout 14 years ago
Has anyone successfully used this for anything significant? As I post this there's only a couple of people posting about how either they tried but it didn't work out well enough, or they just played with it in school without any code.<p>It strikes me as having the same problems as RDF storage; precisely because the model is so general, there's nothing for optimizations to grab on to and optimize on. Your database has to stand ready to do anything equally. The core of database optimization is, when you really get down to it, working out how to tell your database which things you really want and what you will never care about, as in "This table has twenty columns but I will only query on name and phone number". In practice, limitations aren't always just there because of a lack of imagination or insufficient computer science education (though that does happen), sometimes they're there because you can't get any performance without them.
评论 #2282491 未加载
评论 #2282817 未加载
评论 #2282629 未加载
评论 #2283236 未加载
评论 #2282647 未加载
m0th87about 14 years ago
Btw, Linda's name was "inspired" by Ada. Except instead of using a famous female mathematician (Ada Lovelace), he used a famous female pornstar (Linda Lovelace): <a href="http://en.wikipedia.org/wiki/Linda_Lovelace" rel="nofollow">http://en.wikipedia.org/wiki/Linda_Lovelace</a><p>Edit: Reference: <a href="http://c2.com/cgi/wiki?LindaEtymology" rel="nofollow">http://c2.com/cgi/wiki?LindaEtymology</a>
cachemoneyabout 14 years ago
I tried it in Ruby in ~2006, and found that many operations in Rinda were O(n) in the size of the tuple space :(
评论 #2282274 未加载
pohlabout 14 years ago
We use GigaSpaces (a commercial implementation of JavaSpaces that can also be used from a .NET environment) where I work, but we're underutilizing its capabilities terribly. The product itself apparently has a healthy niche in the financial services sector.
raymondhabout 14 years ago
Tuple spaces seem to have morphed into routers and filters for message queue protocols.
评论 #2283056 未加载
spaznodeabout 14 years ago
Biggest issue I had was the idea of communicating data through the actual space which is why message based protocols that handle direct function/method invocation on take are so much easier to deal with and not worry about performance issues.<p>It sure as shot was fun to play with it in a big enterprise environment for a while though. =)
fleitzabout 14 years ago
I've used this pattern with F# and Mailboxes, works great. Never knew it was called a Tuple Space.
gnubardtabout 14 years ago
Saw a cool presentation by Gary Warren King on AllegroGraph (a lisp based tripple store) last year. It stores RDF tripples, which seem to be a pretty powerful tool for modeling semantic relationships.<p>The slides and a recording are available on the lispnyc site: <a href="http://lispnyc.org/meetings" rel="nofollow">http://lispnyc.org/meetings</a>
wulczerabout 14 years ago
I did Linda in the university, during the Concurrent Programming course. It was lots of fun, even though we never actually wrote a line of code in any place other than the blackboard... It is sad that the model did not take off.
shotgunabout 14 years ago
How does tuple space, as discussed here, compare to something like Redis?
评论 #2282618 未加载
irvabout 14 years ago
cool. but this seems fundamentally similar to the Chan/Var style of parallelism in haskell?