Ioana BurceaWon-Ho Park - PowerPoint PPT Presentation

About This Presentation
Title:

Ioana BurceaWon-Ho Park

Description:

Implementation of Tuple Space Expert Topic ECE 1770 Spring 2003 Ioana Burcea Won-Ho Park Electrical and Computer Engineering Department University of Toronto – PowerPoint PPT presentation

Number of Views:22
Avg rating:3.0/5.0
Slides: 14
Provided by: JohnGrat
Category:

less

Transcript and Presenter's Notes

Title: Ioana BurceaWon-Ho Park


1
Algorithms for Implementation of Tuple
SpaceExpert TopicECE 1770 Spring 2003
  • Ioana Burcea Won-Ho Park
  • Electrical and Computer Engineering Department
  • University of Toronto

2
Agenda
  • Ioana
  • Matching Algorithms (in Linda)
  • Basic Terminology and Concepts
  • Multi-Key Search Algorithm
  • Won-Ho
  • Linda Implementation of Tuple Space

3
Basic Terminology
  • Tuple (out operation)
  • Ex
  • (1, 4.0, Middleware)
  • Template antituple (in operation)
  • Ex
  • (1, 4.0, ?x) x string
  • (1, 4.0, Middleware)
  • Tuple arity
  • Ex
  • (1, ?x) ? arity 2
  • (1, 4.0, Middleware) ? arity 3
  • Type signature
  • Ex
  • (1, 4.0, Middleware) ? (int, float, string)

4
Matching Algorithms
  • Exhaustive search too time consuming
  • Optimizations
  • Segmenting
  • Orthogonal subspaces
  • Based on
  • tuple arity type signature
  • constants
  • Treated separately
  • Searching
  • Zero variable case
  • In(mutex) Out(mutex)
  • One variable case
  • Single key index
  • Multiple variable
  • Multiple key search

5
Patterns
  • Actual parameter
  • Ex
  • (1, 4.0, Middleware) ? 1, 4.0, Middleware
  • (1, 4.0, x) ? 1, 4.0, x
  • Formal parameter (placeholder / wildcard)
  • Ex
  • ?x (x string)
  • Tuple Pattern
  • Bitvector
  • its size is given by the arity of the tuple
  • a bit is set if and only if it corresponds to a
    actual parameter
  • Ex
  • (1, 4.0, Middleware) ? (111)
  • (1, 4.0. ?x) ? (110)

6
Matching Semantics Using Patterns
  • Compatible patterns
  • Two tuples P and Q are compatible if and only if
    P OR Q contains only 1s
  • Two tuples may match if and only if their
    patterns are compatible
  • Must-match pattern
  • Ex
  • Out(a, b, c) ? pattern (111)
  • In (x, ?y, z) ? pattern (101)
  • Matching definition
  • Two tuples match if and only if
  • They have the same type signature
  • Exactly one is an antituple
  • Their patterns are compatible
  • Their must-match values are equal

OR (111) ? compatible
AND (101) ? must-match pattern
7
Multiple key search
  • Applied inside each orthogonal subspace
  • Basic idea
  • Build the key search based on the pairs of
    compatible patterns and must-match values
  • Ex
  • Tuple pattern (111)
  • Antituple patterns (010), (100), (110)
  • an entry in the dictionary for each pair (tupple
    pattern, antituple pattern) gt each tuple will be
    referenced by multiple keys
  • the key of the entry also contains the must-match
    values
  • the entry points to the tuple
  • Ex out(3, 5, x) gt Key (0101115)
  • ! One record per must-match pattern is not
    sufficient !
  • Property
  • If two tuples have the same key gt they match
  • Perfect hash function one to one correspondence
    between search keys and the hash keys

8
Offline Algorithm in operation
1) Lock subspace 2) Identify antituples pattern,
p, and store antituple where it can be found
via a pointer or other reference. 3) For each
compatible tuple pattern, c, in use, 4)
Combine p, c, and antituples must-match values
to form a search key, k. 5)
Search dictionary for a tuple reference indexed
by k. 6) If one is found, then 7)
Delete tuple, antituple and all their
references. 8) Goto 10.
else 9) Insert a reference to
antituple, indexed by k,
into dictionary. 10) Unlock subspace 11) If no
match was found, then 12) Suspend
execution until signalled else 13)
Return match result
9
Online Algorithm
  • Adapt the tuple space whenever a new pattern is
    encountered

2.1) If p is a new antituple pattern, then 2.2)
Create a new list for p 2.3) For each
old, compatible tuple pattern q 2.4)
For each tuple t on qs list 2.5)
Insert into dictionary a new reference to t,
based on p and q 2.6)
Insert antituple in ps list
  • Discussion
  • Usually, no perfect hash
  • Each hash entry has a hash chain
  • The hash chain has to be checked until a match is
    found

10
Virtual Linda Machine (VLM)Implementation of
Linda on Networks
  • TupleSpaces is a virtually shared memory
  • How to implement TupleSpaces in the absence of
    shared memory
  • How to find Tuples and where keep them
  • Components of VLM
  • Hardware
  • Network Communication Kernel
  • Compiler
  • Hardware is networks, or network computers
  • The kernel is the program resident on each
    network node that implements inter-node
    communication
  • Performing In(), out(), read() primitive
    instructions on networks by sending or
    broadcasting messages
  • The compiler adds code for maintaining buffer
    (shared memory)

11
Run-Time Name Resolution in VLMHow to find
Tuples
  • VLM should provide Name(Tuple)-to-Node(address)
    mapping information
  • Centralized in directory nodes
  • Distributed network-wide (e.g., by means of a
    network-wide broadcast)
  • The communication kernel translates Tuple-names
    into network-addresses on a per-reference basis
  • Network state and its storage
  • Only one node generating state information
    maintains the state
  • All nodes maintain all state by broadcasting
  • VLM uses N1/2-Node Broadcast Technique.

12
N1/2-Node Broadcast Techniqueand Name Resolution
  • Write set row nodes
  • Read set column nodes
  • P-in-thread process
  • P-out-thread process
  • P-in-thread is intercepted by a P-out-thread on
    node k.
  • A notification message is generated on k-node,
    and sent to m-node
  • The message instructs m-node to send tuple(P) to
    n-node.

A Network Topology
P-out-thread
m
Out(P)
P-in-thread
k
n
In(P)
13
BufferingWhere to keep Tuples
  • VLM is required to simulate Lindas infinite
    global buffer
  • Buffer is allocated by the compiler-generated
    code, not by the kernel
  • in(P.) allocating a buffer on the execution
    stack of the process, and referred to buffer P.
  • out(P) Tuples are stored in per-process heaps,
    and destroyed when it is delivered
  • Header information required by the communication
    system
  • If a process terminates with undelivered Tuples
  • The buffers are maintained by the communication
    kernel until delivery occurs
Write a Comment
User Comments (0)
About PowerShow.com