Title: MonetDB/XQuery Technology Preview 1
1MonetDB/XQuery Technology Preview 1
- Stefan Manegold
- Centrum voor Wiskunde en Informatica
- Amsterdam
- http//monetdb.cwi.nl/ - http//pathfinder-xquer
y.org/
2European Pathfinder Team
- CWI, Amsterdam (Netherlands)
- Peter Boncz, Stefan Manegold, Sjoerd Mullender
- University of Twente (Netherlands)
- Maurice van Keulen, Jan Flokstra
- University of Konstanz (Germany)
- Torsten Grust, Jens Teubner, Jan Rittinger
3Results Performance (1)
XMark benchmark, 110 MB MonetDB/XQuery vs.
X-Hive Galax
4Results Performance (2)
XMark benchmark, 1.1 GB MonetDB/XQuery vs.
X-Hive
5Story
- XQuery Example
- Relational XQuery
- System Architecture
- XML Encoding
- Science Reseach
- Scalability
- Outlook
- Conclusions
- Roadmaps
- Release References
6XQuery Example
- For each author, return number of books and
receipts - for books published in the past 2 years, ordered
by name - let cat fndoc(www.bn.com/catalog.xml),
(Documents) - sales fndoc(www.publishersweekly.com/s
ales.xml) - for author in distinct-values(cat//author)
(Grouping) - let books cat//book_at_year gt 2003 and
author author,(Sel.) - receipts sales/book_at_isbn
books/_at_isbn/receipts (Join) - order by author
(Ordering) - return
- ltsalesgt (XML
Construction) - author
- ltcountgt fncount(books) lt/countgt
(Aggregation) - lttotalgt fnsum(receipts) lt/totalgt
- lt/salesgt
7XQuery Example
- For each author, return number of books and
receipts - for books published in the past 2 years, ordered
by name - let cat fndoc(www.bn.com/catalog.xml),
?Documents? - sales fndoc(www.publishersweekly.com/s
ales.xml) - for author in distinct-values(cat//author)
?Grouping? - let books cat//book_at_year gt 2003 and
author author,?Sel.? - receipts sales/book_at_isbn
books/_at_isbn/receipts ?Join? - order by author
?Ordering? - return
- ltsalesgt ?XML
Construction? - author
- ltcountgt fncount(books) lt/countgt
?Aggregation? - lttotalgt fnsum(receipts) lt/totalgt
- lt/salesgt
8XQuery Systems 2 Approaches
- Existing native XML/XQuery systems are built
from scratch - Galax, Saxon,
- X-Hive, Tamino,
- (Still have to) re-invent optimization technology
- Our approach
- Build XQuery system on top of an RDBMS
- Leverage mature relational technology
- to achieve efficient XQuery processing
9Architecture
10XML in an RDBMS XPath Accelerator
xx
ltagt ltbgt ltc/gt lt/bgt ltd/gt
ltegt ltfgt ltg/gt lth/gt
lt/fgt ltigt ltj/gt lt/igt
lt/egt lt/agt
0ltagt 1ltbgt 2ltc/gt lt/bgt 3ltd/gt
4ltegt 5ltfgt 6ltg/gt 7lth/gt
lt/fgt 8ltigt 9ltj/gt lt/igt
lt/egt lt/agt
0ltagt 1ltbgt 2ltc/gt0 lt/bgt1 3ltd/gt2
4ltegt 5ltfgt 6ltg/gt3 7lth/gt4
lt/fgt5 8ltigt 9ltj/gt6
lt/igt7 lt/egt8 lt/agt9
?
?
?
?
- f/following SELECT FROM pre_post WHERE pre gt
f.pre AND post gt f.post - f/descendant SELECT FROM pre_post WHERE pre
gt f.pre AND post lt f.post - f/preceeding SELECT FROM pre_post WHERE pre
lt f.pre AND post lt f.post - f/ancester SELECT FROM pre_post WHERE pre lt
f.pre AND post gt f.post - Similar queries for all 13 XPath axes
11Science Research
- More research lead to more optimization
- Join Recognition
- Embedded XPath processing
- Order Awareness
- Various scientific publications
12Results Scalability (3)
- Unsurpassed scalability
- Standard Opteron PC, 8GB RAM, 64-bit Linux
- Can process 11GB documents!
- Mostly linear scaling with document size
13Conclusions
- Relational approach
- Works
- Is fast
- Is scalable
- Crucial Optimizations
- Join recognition
- Embedded XPath processing
- Order awareness
- Research turned into open-source release
14Roadmap
- 30.05.05 MonetDB/XQuery 4.8/0.8 Mercurius
- Developers Release / Technology Preview 1
- 30.09.05 MonetDB/XQuery 4.10/0.10 Venus
- Student Release / Technology Preview 2
- XUpdate, More Optimization
- 30.12.05 MonetDB/XQuery 4.12/1.12 Mars
- Final Release
- Application Programming Interfaces
- End-User Front-Ends
15Open 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!