7 ms·
Tuple Space (2014)
- jsmcgd 4y ago[flagged]
- tonyarkles 4y agoHeh, nice ChatGPT reply... it's more eloquent than what I was going to reply with, and doesn't start with "Grad school was a long time ago, but from what I recall..." > To mitigate this, tuple spaces may use locking or transactional mechanisms to ensure consistency and prevent conflicts. I think I played with some kind of TupleSpace implementation around 2009 or so (as part of a "paradigms of distributed systems" course) and I'm pretty sure it was some kind of hybrid STM (software-transactional memory) / TupleSpace thing that addressed that issue. It was pretty cool... again from vague memories here, I believe it only had tuple-level locking, but you could build a bunch of really neat higher-order synchronization primitives on top of just tuple-level locks.
- macintux 4y agoYour comment was flagged, I assume for the ChatGPT dump, but that seemed unreasonable to me so I vouched for it.
- jsmcgd 4y agoThank you :) Upon reflection perhaps this is fair enough, all Hacker News discussions might descend into ~50% ChatGPT content. I'll endeavour to put what ChatGPT produces through my messy human filter. Humans before bots? Guys before AIs. Ho(mo sapien)s before b(r)o ... doesn't quite work.
- discreteevent 4y agoAnother interesting technology that was inspired by tuple spaces is DDS which tries to be a distributed tuple space for communication between embedded/field devices. https://en.wikipedia.org/wiki/Data_Distribution_Service https://en.wikipedia.org/wiki/Data_Distribution_Service
- detaro 4y agowhat makes it a "tuple space" vs a "message queue" system?
- convolvatron 4y agotuples don't have an implicit ordering and are pattern matched on contents instead of 'head'
- rektide 4y agoI hadn't heard of DDS until an hour ago, when I did some preliminary research into GM's just open sourced Eclipse uProtocol, their car IoT system built on Protobuf & CloudEvents. Among some usual suspect transports (http2, mqtt, android binder), they listed DDS. https://news.ycombinator.com/item?id=35742650 https://news.ycombinator.com/item?id=35742650
- discreteevent 4y agoIt's also used in ROS the robot operating system.
- macintux 4y agoFor a long time I toyed with the idea of implementing a tuple space as a pub/sub mechanism for system alerts. I tried to get Java Jini, specifically JavaSpaces which was inspired by Linda, up and running a long time ago as a hobby project, but it seemed like it had been long-neglected even then and my limited knowledge of the JVM world left me stranded.
- pag 4y agoI implemented something like this! The Dr. Lojekyll [1] datalog system was built around the idea of inputs as receiving messages over time, and publishing outputs (also as messages) or responding to queries (using materialized views). It worked quite well, but it's differential nature ended up being the downfall for the usecase we had in mind. Specifically, it had no way to "extend" its consistency model out to consumers of its messages, and so if consumers were also producers, then this distributed system as a whole could enter into a state where parts of it are lying to itself! Otherwise, there were some really fun things you could do with it. For example, we could have per-client databases that would bring themselves up-to-date given the differential outputs of the server database. This would let you engage in a kind of manual sharding of data. [1] https://www.petergoodman.me/docs/dr-lojekyll.pdf https://www.petergoodman.me/docs/dr-lojekyll.pdf
- RodgerTheGreat 4y ago"This site uses features not available in older browsers." It is difficult to express the degree of my frustration with C2 being rewritten from a gunmetal HTML page that worked everywhere into an inaccessible heavyweight SPA mess with a frankly bizarre UI.
- smusamashah 4y agoC2 is such a good resource. It's a shame a simple, plain readable and most accessible website has been turned into a bloat.
- beefman 4y agoIt does look like just another bloated SPA, but Federated Wiki was a geniune advance when Ward was developing it a decade ago. Still is. Shame it hasn't caught on. I agree it was a mistake to move the existing c2 content into it. Maybe a better try was to start a new wiki of some kind. But the temptation to leverage the existing site to launch Federated Wiki is understandable.
- colonwqbang 4y agoNo offense, but how is it an advance? Who needs a wiki that can't be edited? (If I'm mistaken about this, maybe someone can educate me)
- cratermoon 4y agoThe federated wiki concept is that you run your own wiki, and replicate, or "fork" content from other federated wikis to yours.
- andolanra 4y agoIf you know git: a federated wiki works like that. To make a federated wiki work like a traditional wiki, you can think of there as being a "canonical copy" which you can clone, make edits, and then use a 'pull request' process for incorporating those edits back into the original. But you also don't need to have a single source of truth: you can, for example, have a group of people—say, students studying for a class—who are building their own wikis, and among each other they can copy in pages, make changes, copy changes back, and so forth, all building a web of things. In the same way that git can replicate a subversion-like workflow but also introduces the possibility of different workflows, a federated wiki can replicate a traditional wiki but also has a number of workflows it can accomplish.
- Julesman 4y ago[flagged]
- cwillu 4y agoWhile I agree that the current rendition is unfortunate, it's a bit amusing hearing someone say that the literal inventor of the wiki is a twisted ego that should be completely ignored.
- Julesman 4y agoI stand by my statement. Terrible people can build good things.
- dang 4y agoBoth of your comments in this thread broke the site guidelines badly. Can you please review https://news.ycombinator.com/newsguidelines.html https://news.ycombinator.com/newsguidelines.html and use the site as intended?
- dmn322 4y ago"that is, TupleSpace won't work on the Internet, precisely because of its underlying "distributed shared memory" idea". anyone know why?
- tyingq 4y agoSome further notes are here: http://wiki.c2.com/?TupleSpaceScalability http://wiki.c2.com/?TupleSpaceScalability
- convolvatron 4y agonear the beginning of the Scientific Computing Associates work (?) they implemented an extended model that supported multiple spaces - to scope the number of machines involved in a given update.
- Groxx 4y agoGiven the bare-bones API and semantics, probably because it describes absolutely no fault tolerance at all. Lose a processor or a message and it's just lost. Try to address that with copy-put-take and you now have duplicates. Try to address that and you now have byzantine failures with no resolution or supporting tooling. So it's wonderfully simple until you need to do something outside of a single process and then it's useless. Internet-friendly stuff generally has a hard requirement on being fault tolerant.
- JackFr 4y agoI remember when tuple spaces were the new hotness and going to a presentation from GigaSpaces at my local JUG. And now I can't even remember the problem they solve or any potential use cases. Weird.
- Jtsummers 4y agoPrimary problem: Distribute work on heterogenous data across a cluster of heterogenous processes. Add new processes (either additional workers or additional capabilities) by attaching them to the existing shared tuple space. Add new data by wrapping it into a tuple and tossing it into the pile. Add a processor for the new data by having it search for a pattern that picks up the new tuple. Similar concept behind message queue based systems, service oriented architecture, and many, many others. Though more pull-based than push-based. You wouldn't explicitly launch a process, you have a process that sits around waiting to for a tuple to show up and then takes/copies it and does the work.
- cratermoon 4y ago> Add new data by wrapping it into a tuple and tossing it into the pile In David Gelernter's original work, it's not just data. In Linda, it's possible to put Objects in, which are little executable (`eval` in Linda terms) which a processor can manipulate through whatever interface the tuple type exposes.
- Jupe 4y agoThat does not sound very secure. Also, what's to stop another processor "finding" the Object before the intended recipient?
- cratermoon 4y ago1. Just bare like that, it's not. Unless, of course, the object requires a key to allow a processor to execute it. See for example Capability-Based Access Control 2. In TupleWorld, there's no concept of "the" intended recipient. The tuple's properties determine what kind of processor would match. If those properties happen to only match a single processor, you'd get that 1:1 mapping you want, but that's missing the point of tuple spaces.
- bradneuberg 4y agoI always thought Tuple Spaces were a super cool idea and am a bit bummed out they never took off. JavaSpaces was based on the idea but had a somewhat limited release.
- jjtheblunt 4y agohaving ported Yale's Gelernter and Carriero (sp?) Tuple Spaces to Alliant FX-2800 in 1988, so familiar for a long time, you just gave rise to a question that I can not answer. Is NoSQL close enough, so MongoDB etc displaced tuple spaces?
- jitl 4y agoThere's similar ideas almost in things like Apache Ignite, Hazelcast, Datomic.
- infinite8s 4y agoDynamicLand (Bret Victor's 50yr research project) uses a tuplespace model, except instead of basic pattern matching on content and type it uses a datalog-like query language (the wishes and claims of RealTalk).
- bradneuberg 4y agoOne of the inventors of the original Tuple Spaces idea was David Gelernter. He was actually targeted by the Unabomber, and survived but was heavily hurt (https://www.nytimes.com/1995/05/21/magazine/the-unabomber-and-david-gelertner.html https://www.nytimes.com/1995/05/21/magazine/the-unabomber-an...). David was a brilliant researcher, with lots of great ideas including Mirror Worlds (https://en.wikipedia.org/wiki/Mirror_Worlds https://en.wikipedia.org/wiki/Mirror_Worlds). I sometimes wonder if what the Unabomber did to him in early 90s slowed David down, and made it harder for David's idea to get out there.
- cratermoon 4y agoMirror Worlds (the book) is a great read. I have it on my shelf next to his other book, Machine Beauty. I didn't know he was a victim of the Unabomber, that's unfortunate.
- imglorp 4y agoTuple spaces implementations and their efficiency - 2016 https://arxiv.org/pdf/1612.02979.pdf https://arxiv.org/pdf/1612.02979.pdf > SUMMARY > Among the paradigms for parallel and distributed computing, the one popularized with Linda, and based on tuple spaces, is one of the least used, despite the fact of being intuitive, easy to understand and to use. A tuple space is a repository, where processes can add, withdraw or read tuples by means of atomic operations. Tuples may contain different values, and processes can inspect their content via pattern matching. The lack of a reference implementation for this paradigm has prevented its widespread. In this paper, first we perform an extensive analysis of a number of actual implementations of the tuple space paradigm and summarise their main features. Then, we select four such implementations and compare their performances on four different case studies that aim at stressing different aspects of computing such as communication, data manipulation, and cpu usage. After reasoning on strengths and weaknesses of the four implementations, we conclude with some recommendations for future work towards building an effective implementation of the tuple space paradigm.