Title: ADT 2005 Lecture 10 Relational XQuery (Bomen, Bloemen
1ADT 2005Lecture 10Relational XQuery(Bomen,
Bloemen Tabellen)
Stefan Manegold Stefan.Manegold_at_cwi.nl http//www.
cwi.nl/manegold/
2 XQuery Systems 2 Approaches
- Tree-based
- Tree is basic data structure
- Also on disk (if an XQuery DBMS)
- Navigational Approach
- Galax, Saxon, Flux, X-Hive, Tamino, eXist, ...
- Tree Algebra Approach
- TIMBER
- Relational
- Data shredded in relational tables
- XQuery translated into database query (e.g. SQL)
3 The Challenge Comic Strip Finder
- Existing native XML/XQuery systems are built
from scratch - Galax, Saxon,
- X-Hive, Tamino,
- Re-inventing the wheel?
- Our approach
- Lets use the old rim, but make a new tyre
- Build XQuery system on top of an RDBMS
- Leverage mature relational technology
- to achieve efficient XQuery processing
4 Architecture
Tyre
Rim
Steel
Aluminium
5 Part I XML Storage in Relational Systems
6(No Transcript)
7(No Transcript)
8(No Transcript)
9(No Transcript)
10ltagt ltbgt ltcgt ltd/gt lte/gt lt/cgt
lt/bgt ltfgt ltg/gt lthgt lti/gt
ltj/gt lt/hgt lt/fgt lt/agt
11(No Transcript)
12(No Transcript)
13(No Transcript)
14(No Transcript)
15(No Transcript)
16(No Transcript)
17(No Transcript)
18(No Transcript)
19(No Transcript)
20(No Transcript)
21(No Transcript)
22() post(v) pre(v) size(v) - level(v)
23(No Transcript)
24pre(v) size(v)
post(v) - size(v)
() post(v) pre(v) size(v) - level(v)
25Replace pre / post by pre / size / level
26(No Transcript)
27We replace pre / post by pre / size / level
28(No Transcript)
29(No Transcript)
30(No Transcript)
31 Part II Staircase Join Tree-Awareness for
Relational Systems
32(No Transcript)
33(No Transcript)
34(No Transcript)
35(No Transcript)
36(No Transcript)
37(No Transcript)
38(No Transcript)
39(No Transcript)
40(No Transcript)
41(No Transcript)
42(No Transcript)
43(No Transcript)
44(No Transcript)
45(No Transcript)
46(No Transcript)
47(No Transcript)
48(No Transcript)
49(No Transcript)
50(No Transcript)
51(No Transcript)
52(No Transcript)
53 Part III Beyond XPath XQuery on Relational
Systems
54(No Transcript)
55(No Transcript)
56(No Transcript)
57(No Transcript)
58(No Transcript)
59(No Transcript)
60 Item Representation
- Item sequences, sequence order
Item
(10, x, lta/gt, 10) ?
61 Iteration in XQuery Core
62 Iteration in XQuery Core
63 Loop Lifting
64 Loop Lifting
65 Loop Lifting
66(No Transcript)
67 Nested Scopes
68 Nested Scopes
69 Nested Scopes
70 Nested Scopes
71 Relating Scopes
72 Evaluation in Scope S2
73(No Transcript)
74(No Transcript)
75(No Transcript)
76(No Transcript)
77(No Transcript)
78(No Transcript)
79(No Transcript)
80(No Transcript)
81(No Transcript)
82(No Transcript)
83 Part IV MonetDB/XQuery
84 European MonetDB/XQuery Team
- CWI, Amsterdam (Netherlands)
- Peter Boncz, Stefan Manegold, Sjoerd Mullender
- University of Twente (Netherlands)
- Maurice van Keulen, Jan Flokstra
- Technische Universität München (Germany)
- Torsten Grust, Jens Teubner, Jan Rittinger
85 Architecture
86 Science Research
- More research lead to more optimization
- Join Recognition
- Embedded XPath processing
- Order Awareness
- Various scientific publications
87 Results Performance (1)
XMark benchmark, 110 MB MonetDB/XQuery vs.
X-Hive Galax
88 Results Performance (2)
XMark benchmark, 1.1 GB MonetDB/XQuery vs.
X-Hive
89 Results Scalability (3)
- Unsurpassed scalability
- Standard Opteron PC, 8GB RAM, 64-bit Linux
- Can process 11GB documents!
- Mostly linear scaling with document size
90 Conclusions
- Relational approach
- Works
- Is fast
- Is scalable
- Crucial Optimizations
- Join recognition
- Embedded XPath processing
- Order awareness
- Research turned into open-source release
91 Open Source Release References
- MonetDB Pathfinder on SourceForge
- Mozilla-like License
- MonetDB homepage
- http//monetdb.cwi.nl/
- Pathfinder homepage
- http//pathfinder-xquery.org/
- Developers website
- http//sf.net/projects/monetdb/
You are welcome to join the MonetDB/XQuery team!
92(No Transcript)
93(No Transcript)
94 Part V Appendix
95(No Transcript)
96(No Transcript)
97(No Transcript)
98(No Transcript)
99(No Transcript)
100(No Transcript)
101(No Transcript)
102(No Transcript)
103(No Transcript)
104(No Transcript)
105(No Transcript)
106(No Transcript)
107(No Transcript)
108(No Transcript)