190 likes | 314 Views
XML Fragment Caching for Large-Scale Mobile Commerce Applications. Sebastian Obermeier, Stefan Böttcher University of Paderborn Germany ICEC 2008, Innsbruck, Austria. Agenda:. Large Event Scenarios. Use Case. Use Case. GPRS/UMTS. Ad-Hoc Network. Query Shipping. Query Q.
E N D
XML Fragment Caching for Large-Scale Mobile Commerce Applications Sebastian Obermeier, Stefan Böttcher University of PaderbornGermany ICEC 2008, Innsbruck, Austria Agenda:
Query Shipping Query Q
Caching for Query Shipping • Intermediate node N checks whether it can answer Q Only Q's result is transferred Test can be complex and time consuming Small missing parts of information lead to cache-misses: • Qcache = //restaurant[./@areaID<50]//description • Q = //restaurant[./@areaID<35]//description
Data Shipping Query Q: {1,3,4} { 1 , 2 } { 2 , 3 } { 1 , 2 , 3 } {7} {1,3,4,7} { 1 , 4 , 7 } { 1 , 2 }
Caching forData Shipping • Request parts of the document Combination of cached content can answer Q Tests are fast Hugeamountofoverheadifread-setis large, e.g. if Q usescount()
ApplicationConsiderations • No arbitrary queries • Query templates predefined • Mostly point and range queries including filters • Database can track queries • Focus on content, e.g. text, pictures, and videos • Database updates are rare • Egoistic node behavior • do not spend much energy to other node’s queries
Solution Overview • Split XML document into disjoint fragments according to aSplit Schema Graph (SSG) • Querying node determines by SSG necessary fragments to answer query Q • Q isexecutedlocally on theread-setof Q (=mergedsegments) S6 XML S5 S4 S1 S2 S3 S6 XML S5 S4 S1 S2 S3 S5 S3
Split Schema Graph • XML documentsplitintodisjointparts Segment 1 /1/2/2/1 <restaurants> <restaurant id = "25" areaID="15"> <name>Forester`s House</name> <description>Traditional… </…> <style>German</style> </restaurant> <restaurant id = "35" areaID="17"> <name>Garden of Sun</name> <description>Large beer garden…</…> <style>Austrian</style> </restaurant> ... </restaurants>
DetermineRequired Segments • //restaurant[@areaID>13][@areaID<19]/name Required Segments 1 / */*/2/*/
Experimental Evaluation • 1600 devices, logicalclock • 24MB Information Repository • Max. distance 5 hops • Individual query profiles • Eachwith 164 XPath queries • 80% requesthotspot data (5MB) • Hotspot changesduring evaluation
Experimental Results XPath Query Shipping XPath Query Shipping 500kB Cache XPath Query Shipping XPath Query Shipping 500kB Cache
GZIP Compression XPath Query Shipping XPath Query Shipping 500kB Cache XPath Query Shipping(GZIP) XPath Query Shipping(GZIP) , 500kB Cache
Varying Cache Sizes 500kb Cache 1000kb Cache 2000kb Cache XPath Query Shipping (GZIP) 1000kB Cache XPath Query Shipping (GZIP) 500kB Cache XPath Query Shipping (GZIP) 2000kB Cache XPath Query Shipping (GZIP)
SummaryandConclusion S6 XML • Querying and caching mechanism that allows clients to execute queries locally • Application based fragmentation schema • Simple cache contribution tests by IDs • Coupes with egoistic node behavior • Reduces network traffic up to 88% • Improves query response time up to factor 5 • Reduces bottlenecks • Can be individually used for each query type S5 S4 S1 S2 S3 2 /4/*/1 == 2 /4/2/1