Tuple-space coordination¶
Concurrent processes coordinate through shared structured entries selected by associative templates for reading or removal.
Core Idea¶
Tuple-space coordination lets concurrent processes exchange structured entries through a shared logical space. A producer deposits an entry without naming a receiving process. Another process selects a match by a template and either reads it while leaving it available or removes it.[1][2]
How would you explain it like I'm…
Shared Note Board
Drop-Off and Pick-Up Space
Template-Matched Shared Space
How It Works¶
The entry, template and selected operation together determine the exchange. Linda's out deposits a tuple, rd reads a match without removing it, and in withdraws a match; a broad template can match more than one tuple without guaranteeing which is chosen.[1] The logical interface can have different implementations, including Foster's central and distributed tuple-space modules.[2]
Examples¶
Matrix blocks. Carriero and Gelernter describe workers reading coordinate-keyed A and B block tuples with rd, consulting task state and depositing computed C blocks. The input blocks remain reusable. This is an illustrative program, not a measured deployment.[1]
Database search. Foster describes a manager depositing search data, workers removing work tuples and returning scores, and the manager retrieving results before sending stop tuples. The program's objective is to identify the highest score. Suggested genetic-sequence and parameter-simulation domains are possibilities in the book, not observed installations.[2]
Boundaries and Use¶
This mechanism is more specific than ordinary shared memory or a distributed store because it selects entries by structured content. Tuple-space operations alone do not establish partitioned processing units, co-location, scale-out, middleware or any particular deployment history. JavaSpaces documents a related typed-entry read/take interface; it does not make such wider claims true of every tuple-space system.[3]
Coordination is a broad conceptual neighbor, but no graph parent is established here. The source-described cases show two different workflows within parallel programming: reusable matrix data and consumed search work. They do not imply ordered delivery or automatic scalability and fault tolerance.[1][2][3]
Neighborhood in Abstraction Space¶
Tuple-space coordination sits in a sparse region of the domain-specific corpus (64th percentile for distinctiveness): few abstractions share its structure, so a faithful description tends to retrieve it precisely.
Family — Storage & Lookup Data Structures (22 abstractions)
Nearest neighbors
- Self-Organizing List — 0.85
- Queap — 0.84
- Duck Typing — 0.84
- Array-access analysis — 0.84
- Rope (Data Structure) — 0.83
Computed from structural-signature embeddings · 2026-10-31
References¶
[1] Nicholas Carriero and David Gelernter, How to Write Parallel Programs: A First Course (MIT Press, 1990), ch. 3. https://lindaspaces.com/book/chap3.html registry ↩a ↩b ↩c ↩d
[2] Ian Foster, Designing and Building Parallel Programs (Addison-Wesley, 1995), §4.5. https://www.mcs.anl.gov/~itf/dbpp/text/node44.html registry ↩a ↩b ↩c ↩d
[3] Qusay H. Mamoud, “Getting Started With JavaSpaces Technology: Beyond Conventional Distributed Programming Paradigms,” Oracle technical article (2005). https://www.oracle.com/technical-resources/articles/javase/javaspaces.html registry ↩a ↩b