260 likes | 343 Views
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
E N D
TOWARDS SCALABILITYIN TUPLE SPACES Philipp Obreiter, Guntram Gräf Telecooperation Office (TecO) University of Karlsruhe
Obreiter/Gräf: Towards Scalability in Tuple Spaces Goals Scalable 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) F int string 1234 5678 “Hello“ “World“
Obreiter/Gräf: Towards Scalability in Tuple Spaces (int,F) (F, string) (int,(int,int)) (int,string) (F,“Hello“) (1234,(56,78)) (int,“Hello“) (1234,string) (5678,“Hello“) Hierarchy of tuples (,match)
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 0 1 B E 2 0 0 1 2 3 1 1 1 D C 0 0
Obreiter/Gräf: Towards Scalability in Tuple Spaces TSpaces/JavaSpaces scheme: 00110 A 0 1 B E 2 0 0 1 2 3 1 1 1 D C 0 0
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 fromR(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 Conceiving a distribution W(t) t t Abstract representation • uncouples abstraction of tuples and adjustment to p • is an efficient data structure W(t) abstract representation R(t) R(t) directly indirectly
Obreiter/Gräf: Towards Scalability in Tuple Spaces (F) (printer,F,F) (F,1200dpi,F) (scanner,F,F) (printer,1200dpi,F) (scanner,1200dpi,F) (F,1200dpi,x.x.x.x) P1 S4 P3 S3 P2 P4 P5 S1 S2 S5 Indexing based on hashing (I)
Obreiter/Gräf: Towards Scalability in Tuple Spaces (F) (printer,F,F) (F,1200dpi,F) (scanner,F,F) (printer,1200dpi,F) (scanner,1200dpi,F) (F,1200dpi,x.x.x.x) P1 S4 P3 S3 P2 P4 P5 S1 S2 S5 Indexing based on hashing (II) {1} {7} {2} {6} {12} {8} {5} {8} {3} {5}
Obreiter/Gräf: Towards Scalability in Tuple Spaces (F) (printer,F,F) (F,1200dpi,F) (scanner,F,F) (printer,1200dpi,F) (scanner,1200dpi,F) (F,1200dpi,x.x.x.x) P1 S4 P3 S3 P2 P4 P5 S1 S2 S5 Indexing based on hashing (III) {7} {3}
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 domains1,... p • (,) permissible with (t):= {q | q(t) }
Obreiter/Gräf: Towards Scalability in Tuple Spaces disjoint/complete tuple domains x1 5 T6 4 T4 3 T5 2 T3 1 T1 T2 x2 -1 0 1 2 3 4 5
Obreiter/Gräf: Towards Scalability in Tuple Spaces disjoint/complete tuple domains x1 1 2 5 T6 4 T4 3 3 T5 2 4 5 T3 1 T1 T2 x2 -1 0 1 2 3 4 5
Obreiter/Gräf: Towards Scalability in Tuple Spaces Overlapping/incomplete tuple domains x1 2 5 T6 1 4 T4 3 3 T5 2 T3 1 T1 T2 x2 -1 0 1 2 3 4 5
Obreiter/Gräf: Towards Scalability in Tuple Spaces Tuple Space Server Tuple Space Server Tuple Space Server Tuple space server Components of the architecture -server -server Agent server F Agent Agent Agent Client Client 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 Response time 2.5 2 1.5 1 .5 n 0 50 100 150 200 250 300 350 400
Obreiter/Gräf: Towards Scalability in Tuple Spaces Questions?
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
F Obreiter/Gräf: Towards Scalability in Tuple Spaces x modulo y fraction x modulo 3 x modulo 5 1/2 6/9 2/4 4/6 0 1 0 1 2 4 2 3 Hierarchy of fields
x2 = 0 Obreiter/Gräf: Towards Scalability in Tuple Spaces x1 = 2 2 x1 = 4 x2 = 3 4 5 3 2 Tree of tuple domains
Rate Obreiter/Gräf: Towards Scalability in Tuple Spaces Efficiency of the distribution 1 .8 pruning rate .6 .4 .2 overhead n 0 50 100 150 200 250 300 350 400 450 500