towards scalability in tuple spaces
DESCRIPTION
TOWARDS SCALABILITY IN TUPLE SPACES. Philipp Obreiter, Guntram Gräf Telecooperation Office (TecO) University of Karlsruhe. Goals. Scalable tuple space without schematic restrictions Procedure: formalize and classify tuples analyze former indexing strategies - PowerPoint PPT PresentationTRANSCRIPT
TOWARDS SCALABILITYIN TUPLE SPACES
Philipp Obreiter, Guntram Gräf
Telecooperation Office (TecO)University of Karlsruhe
Obreiter/Gräf: Towards Scalability in Tuple Spaces
GoalsScalable tuple space
– without schematic restrictions
Procedure:
• formalize and classify tuples
• analyze former indexing strategies
• deduce a new indexing strategy
• conceive the architecture and implementation of a scalable tuple space
Obreiter/Gräf: Towards Scalability in Tuple Spaces
Hierarchy of fields (F,matchF)
“Hello“ “World“1234 5678
int string
F
Obreiter/Gräf: Towards Scalability in Tuple Spaces
Hierarchy of tuples (,match)
(int,F)
(int,(int,int))
(F, string)
(int,string) (F,“Hello“)
(int,“Hello“)
(1234,string)
(1234,(56,78))
(5678,“Hello“)
Obreiter/Gräf: Towards Scalability in Tuple Spaces
Taxonomy of schemes
• Degrees of freedom:(A) class hierarchy
(B) instance hierarchy
(C) semantic tuples
(D) nested tuples
(E) tuple hierarchy
• Scheme ABCDE imposes restrictions on degrees of freedom
Obreiter/Gräf: Towards Scalability in Tuple Spaces
Linda scheme: 23111 A
EB
C D
0
0
0
0 0
1
11
1
2
2 31
Obreiter/Gräf: Towards Scalability in Tuple Spaces
TSpaces/JavaSpaces scheme: 00110 A
EB
C D
0
0
0
0 0
1
11
1
2
2 31
Obreiter/Gräf: Towards Scalability in Tuple Spaces
Distribution model• Set of p servers {1,...,p}
• Distribution (W,R) for tuple t– writes to W(t) {1,...,p}
– reads from R(t) {1,...,p}
condition for correctness
match(t1,t2) W(t2) R(t1)
1 2 3 4 5 6
R W
Obreiter/Gräf: Towards Scalability in Tuple Spaces
abstractrepresentation
Conceiving a distribution
Abstract representation
– uncouples abstraction of tuples and adjustment to p
– is an efficient data structure
t W(t) t
directly indirectly
R(t)
W(t)
R(t)
Obreiter/Gräf: Towards Scalability in Tuple Spaces
Indexing based on hashing (I)
(printer,F,F)
P1
(F)
(scanner,F,F)(F,1200dpi,F)
(printer,1200dpi,F) (scanner,1200dpi,F)
P2P3
P4
(F,1200dpi,x.x.x.x)
P5
S4
S5S3
S2S1
Obreiter/Gräf: Towards Scalability in Tuple Spaces
Indexing based on hashing (II)
(printer,F,F)
P1
(F)
(scanner,F,F)(F,1200dpi,F)
(printer,1200dpi,F) (scanner,1200dpi,F)
P2P3
P4
(F,1200dpi,x.x.x.x)
P5
S4
S5S3
S2S1
{1}
{5}
{6}
{8} {3} {8}{5}{12}
{2}{7}
Obreiter/Gräf: Towards Scalability in Tuple Spaces
Indexing based on hashing (III)
(printer,F,F)
P1
(F)
(scanner,F,F)(F,1200dpi,F)
(printer,1200dpi,F) (scanner,1200dpi,F)
P2P3
P4
(F,1200dpi,x.x.x.x)
P5
S4
S5S3
S2S1
{3} {7}
Obreiter/Gräf: Towards Scalability in Tuple Spaces
Indexing based on hypercubes• Fields:
– hierarchical structure intervals instead of points
– correctness: matchF(f1,f2) F(f2) F(f1)
• Tuples:– tuple complex multi-dimensional index
– induces transformation to hypercubes
• Distribution:– Partition hyperspace into tuple domains 1,... p
– (,) permissible with (t) := {q | q(t) }
Obreiter/Gräf: Towards Scalability in Tuple Spaces
disjoint/complete tuple domains
-1 0 1 2 3 4 5
1
2
3
4
5
x1
x2
T3T2
T4
T5
T6
T1
Obreiter/Gräf: Towards Scalability in Tuple Spaces
disjoint/complete tuple domains
1
3
2
-1 0 1 2 3 4 5
1
2
3
4
5
x1
x2
T3T2
T4
T5
T6
T14 5
Obreiter/Gräf: Towards Scalability in Tuple Spaces
Overlapping/incomplete tuple domains
-1 0 1 2 3 4 5
1
2
3
4
5
x1
x2
T3T2
T4
T5
T6
T1
3
1 2
Obreiter/Gräf: Towards Scalability in Tuple Spaces
ClientClient
AgentAgent
Components of the architecture
F
TupleSpaceServer
TupleSpaceServer
TupleSpaceServer
Tuplespaceserver
-server -serverAgentserver
Agent
Client (t)t (t)
Obreiter/Gräf: Towards Scalability in Tuple Spaces
Cache validation of the agents
F-server:
– read-only cache, hence valid
-server:– subtrees own sequence numbers– cache entry invalidated, if contacting TS Server
with deprecated sequence number Extended k-d tree guarantees correctness
Obreiter/Gräf: Towards Scalability in Tuple Spaces
SATUS
• Implementation of a Scalable Tuple Spaces
• Management interface
• Extension to four tiers
• Built-in standard fields
• Validated with respect to:– Efficiency of the distribution– Efficiency of adaptive tuple domains
Obreiter/Gräf: Towards Scalability in Tuple Spaces
Adaptive tuple domains
0 50 100
.5
Response time
n150 200 250 300 350 400
1
1.5
2.5
2
Obreiter/Gräf: Towards Scalability in Tuple Spaces
Nested tuples
• Field complex on itself, hence proposed indexing mechanism not directly applicable
• If depth limited, unnest
• Split into several tuples (atomicity?)
• Include complex classes into the field hierarchy
Obreiter/Gräf: Towards Scalability in Tuple Spaces
Scalability
Five dimensions:
• size of tuples
• number of tuples in the tuple space
• number of considered tuple spaces
• throughput of the tuple space
• number of clients
Obreiter/Gräf: Towards Scalability in Tuple Spaces
Hierarchy of fields
x modulo y fraction
F
1/2 2/4
6/9 4/6
x modulo 5x modulo 3
0 12
0 1
23
4
Obreiter/Gräf: Towards Scalability in Tuple Spaces
Tree of tuple domains
x2 = 0
2x1 = 2
x2 = 3 x1 = 4
4 5 3 2