ANALYSE UND KONZEPTION VON TUPLE SPACES IM HINBLICK AUF SKALIERBARKEIT Philipp Obreiter Telecooperation Office (TecO) Universitaet Karlsruhe Betreuer: Guntram Gräf, Martin Gaedke
Ziele Skalierbarer Tuple Space –ohne zusätzliche Beschränkungen –minimale Zahl zusätzlicher Informationen Vorgehen: Formalisierung/Klassifikation von Tupeln Analyse bisheriger Indexverfahren Herleitung eines neuen Indexverfahrens Konzeption der Architektur/Implementierung eines skalierbaren Tuple Spaces
Fieldhierarchie (F,match F ) HelloWorld intstring F
Tupelhierarchie (,match ) (int, F ) (int,(int,int)) ( F, string) (int,string) ( F,Hello) (int,Hello) (1234,string) ( 1234, ( 56,78 )) ( 5678,Hello )
Taxonomie von Schemata Freiheitsgrade: (A) Klassenhierarchie (B) Instanzhierarchie (C) Semantische Tupel (D) Verschachtelte Tupel (E) Tupelhierarchie Schema ABCDE schränkt Freiheitsgrade ein
Linda Schema: A E B C D
TSpaces/JavaSpaces Schema: A E B C D
Verteilungsmodell Menge von p Servern {1,...,p} Verteilung ( W, R ) für Tupel t –schreibt auf W (t) {1,...,p} –liest von R (t) {1,...,p} Korrektheitsbedingung match (t 1,t 2 ) W (t 2 ) R (t 1 ) RW
abstrakte Darstellung Konzeption einer Verteilung Abstrakte Darstellung –entkoppelt Abstraktionsvorgang und Anpassung an p –ist effiziente Datenstruktur t W (t) t direkt indirekt R (t) W (t) R (t)
Hashindizierung (I) (printer, F, F ) P1 (F) (scanner, F, F )( F,1200dpi, F ) ( printer,1200dpi, F )( scanner,1200dpi, F ) P2 P3 P4 ( F,1200dpi,x.x.x.x ) P5 S4 S5 S3 S2S1 {1} {5} {6} {8}{3} {8} {5} {12} {2} {7} {1,...,p}
Hashindizierung (II) (printer, F, F ) P1 (F) (scanner, F, F )( F,1200dpi, F ) ( printer,1200dpi, F )( scanner,1200dpi, F ) P2 P3 P4 ( F,1200dpi,x.x.x.x ) P5 S4 S5 S3 S2S1 {3} {7} {3} {1,...,p} {7} {1,...,p}
Indizierung durch Hyperquader Fields: –hierarchische Struktur Intervalle statt Punkte –Korrektheit: match F (f 1,f 2 ) F (f 2 ) F (f 1 ) Tupel: –Tupel komplex mehrdimensionaler Index –induziert Trafo auf Hyperquader Verteilung: –Aufteilung des Hyperraums in Tupeldomänen 1,... p –(, ) zulässig mit (t) := {q | q (t) }
disjunkte/vollständige Tupeldomänen x1x1 x2x2 T3T3 T2T2 T4T4 T5T5 T6T6 T1T1 4 5
überlappende/unvollständige Tupeldomänen x1x1 x2x2 T3T3 T2T2 T4T4 T5T5 T6T6 T1T
Client Agent Komponenten der Architektur F Tuple Space Server Tuple Space Server Tuple Space Server Tuple Space Server -Server Agenten- server Agent Client (t) t
F -Server Fieldhierarchie nicht a priori bekannt Aufgaben des F -Server: Bereitstellen der Klassendefinitionen Adaptive Trafo von Fields auf Intervalle –für 12 automatisierbar durch relative Intervalle ?Garbage collection von Indexbereichen
-Server und Tuple Space Server Tupeldomänen müssen adaptiv sein Überlauf eines TS Servers: –Teil der Tupel auf freien TS Server verschieben –Einblenden der neuen Tupeldomänen Unterlauf eines TS Servers: –lokale Vereinigung (mit Buddy) –Delegation oder Sperren Extended k-d tree als Tupeldomänenbaum
Cache-Validation der Agenten F -Server: –Lesecache, also stets gültig -Server: –Unterbäume tragen Sequenznummern –Cacheeintrag invalidiert, wenn mit veralterter Sequenznummer auf TS Server zugegriffen Extended k-d tree garantiert Korrektheit
SATUSSATUS Implementierung eines skalierbaren Tuple Spaces Management Schnittstelle Erweiterung auf 4-tier Architektur Eingebaute Standardfields Validiert hinsichtlich: –Effizienz der Verteilung –Effizienz der Tupeldomänenadaption
Adaption der Tupeldomänen Response time n
Fazit? Vorgehen: Formalisierung/Klassifikation von Tupeln Analyse bisheriger Indexverfahren Herleitung eines neuen Indexverfahrens Konzeption der Architektur/Implementierung eines skalierbaren Tuple Spaces Skalierbarer Tuple Space? –ohne zusätzliche Beschränkungen? –minimale Zahl zusätzlicher Informationen?
Fragen?
Verschachtelte Tupel Field selber komplex, daher Indizierung nicht direkt anwendbar Bei beschränkter Schachtelungstiefe unnesten Aufteilung in mehrere Tupel (Atomizität?) Aufnahme komplexer Klassen in die Fieldhierarchie
Skalierbarkeit Fünf Dimensionen: Größe der Tupel Zahl der Tupel im Tuple Space Zahl der eingesetzten Tuple Spaces Durchsatz des Tuple Spaces Zahl der Clients
Fieldhierarchie x modulo y fraction F 1/22/4 6/94/6 x modulo 5x modulo
Tupeldomänenbaum x 2 = 0 2 x 1 = 2 x 2 = 3 x 1 =
Adaptive Trafo i 11 [0,0] f 1 [0,100] [0,30][30,100] i 12 [10,20] z=0.3 [0,0][0.1,0.2] f 2 [30,44] [44,44] z=1 size=0.2 i 21 [30,37] i 22 [38,42] [0,0.5][0.6,0.9] f 3 [45,100] [45,45][45,100] z=0 size=0.8 f 4 [45,100] [45,78][78,100] z=0.6 size=1
Effizienz der Verteilung Rate n pruning rate overhead