Pathfinder: XQuery Compilation Techniques for Relational Database Targets

Size: px
Start display at page:

Download "Pathfinder: XQuery Compilation Techniques for Relational Database Targets"

Transcription

1 EMPTY_FRAG SERIALIZE (item, pos) ROW# (pos:<pos1>) (pos1, item) X (iter = iter1) ELEM (iter1, item:<iter1, item><iter1, pos, item>) (iter1, item1, pos) ROW# (pos:<pos1>/iter1) (iter1, pos1, item1) access textnode content (item1:<item>) ROW# (pos1:<item>/iter1) / child::text (iter1, item) ATTR (item:<item2, (item2), val: person (item1), val: " " / child::element name { item* } (iter1, item) (item:item1, iter1:iter) (item), val: item (iter1:iter) NMBER (iter) ROW# (pos1:<item1>) (item1) / child::element person { item* } (iter, item1) (iter1, item, pos) ROW# (pos1), val: (pos1), val: #2 (iter1, item) (iter1, item) TEXT (item:<item2>) CAST (item2:<item1>), type: (item1), val: 0 DIFF (iter1) CONT (item1:/iter1) (iter1) (iter, iter1) X (item1 = item) (iter, item1) (iter1, item) access attribute value (item1:<item>) (item, iter:iter2) / attribute::attribute person { atomic* } (iter2, item) / child::element people { item* } (iter, item1) / child::element buyer { item* } (iter2, item) DOC TBL: (iter item1) [#1,"auctionG.xml"] (item:item1, iter2:iter) NMBER (iter) (item1) / child::element closed_auction { item* } (iter, item1) / child::element closed_auctions { item* } (iter, item1) / child::element site { item* } (iter, item1) access attribute value (item:<item1>) (item1, iter1:iter2) / attribute::attribute id { atomic* } (iter2, item1) (item1, iter2:iter) Pathfinder: XQuery Compilation Techniques for Relational Database Targets Jens Teubner Technische niversität München Joint work with: Torsten Grust, Peter Boncz, Martin Kersten, Maurice van Keulen, Stefan Manegold, Sjoerd Mullender, Jan Rittinger, Marc H. Scholl,...

2 Scalable XQuery Processing Challenge: Construction of a Scalable XQuery Processor XQuery: tree-structured XML data ordered sequences of items: (x 1,..., x n ) XQuery explicit iteration: for $v in e 1 return e 2 side effects: element t { e } Pathfinder: XQuery Compilation Techniques for Relational Database Targets BTW / 14

3 Scalable XQuery Processing Challenge: Construction of a Scalable XQuery Processor XQuery: tree-structured XML data ordered sequences of items: (x 1,..., x n ) XQuery explicit iteration: for $v in e 1 return e 2 side effects: element t { e } Re-use existing RDBMS technology? flat, unordered data model: tables of tuples bulk-oriented processing no side effects RDBMS Pathfinder: XQuery Compilation Techniques for Relational Database Targets BTW / 14

4 Scalable XQuery Processing Challenge: Construction of a Scalable XQuery Processor XQuery: tree-structured XML data ordered sequences of items: (x 1,..., x n ) XQuery explicit iteration: for $v in e 1 return e 2 side effects: element t { e } Re-use existing RDBMS technology? flat, unordered data model: tables of tuples bulk-oriented processing no side effects RDBMS Pathfinder: XQuery Compilation Techniques for Relational Database Targets BTW / 14

5 Scalable XQuery Processing This talk bridges the apparent gap. trees, sequences, iteration, side effects XQuery compositional compilation: loop-lifting XQuery Semantics relational step evaluation: staircase join tree encoding: XPath accelerator XPath Evaluation XML Storage tables of tuples, relational algebra, SQL RDBMS Pathfinder is a full open-source implementation of these techniques. Pathfinder: XQuery Compilation Techniques for Relational Database Targets BTW / 14

6 XPath Accelerator: Relational XML Storage XML Storage Pathfinder s XML Storage is based on XPath Accelerator (Grust 02) 0 a 9 1 b 3 5 f 8 2 c 2 6 g 4 7 h 7 3 d 0 4 e 1 8 i 5 9 j 6 n pre post a 0 9 b 1 3 c 2 2 d 3 0 e 4 1 f 5 8 g post a 9 f 8 h 7 6 j 5 g i 4 b 3 2 c d e pre Any encoding providing node identity/document order suffices. We actually use a variant of this encoding: pre/size/level. Pathfinder: XQuery Compilation Techniques for Relational Database Targets BTW / 14

7 XPath on Commodity RDBMSs XML Storage Relational XML storage can beat native XPath processors execution time [ms] [SIGMOD 2007] 767 /descendant::open_auction/bidder/increase 1 6 /site/regions/africa 453 /descendant::description [ parent::node() ] 13,534 Relational XML Storage IBM DB2 purexml R 14,595 se B-trees with low-selectivity prefixes (e.g., level, tag names)! Pathfinder: XQuery Compilation Techniques for Relational Database Targets BTW / 14 IBM DB2 DB Intel Xeon 3.2 GHz 8 GB RAM

8 Staircase Join: XPath Step Evaluation XPath Evaluation XPath is the backbone of every XQuery processor. XPath: Context is a set of nodes Document order, duplicate-free result Problems: Repeated scans over the same area Expensive sorting and duplicate elimination post c 1 c 2 c 4 c 3 c5 pre Pathfinder: XQuery Compilation Techniques for Relational Database Targets BTW / 14

9 Staircase Join: XPath Step Evaluation XPath Evaluation XPath is the backbone of every XQuery processor. XPath: Context is a set of nodes Document order, duplicate-free result Problems: Repeated scans over the same area Expensive sorting and duplicate elimination Staircase join: [VLDB 2003] Encapsulates tree awareness in a single join operator Cache-friendly and XPath-compliant post c 4 c5 c 3 c 1 c 2 pre scan skip scan scan Pathfinder: XQuery Compilation Techniques for Relational Database Targets BTW / 14

10 Staircase Join: XPath Step Evaluation XPath Evaluation We injected staircase join into PostgreSQL 7.3. execution time [ms] orig. XPath accelerator staircase join execution times page misses orig. XPath accelerator staircase join ,118 XML document size [MB] page misses Query: /descendant::age/ancestor::person [VLDB 2004 Demo] Pathfinder: XQuery Compilation Techniques for Relational Database Targets BTW / 14

11 Loop-Lifting: XQuery Compilation XQuery Semantics XPath is only part the story. Variables and iteration: for $v in e 1 return e 2 Sequence construction: (e 1, e 2 ) Element construction: element { e 1 } { e 2 } Dynamic typing: e 1 instance of e 2 etc. XQuery is a functional language, though. Process independent FLWOR iterations in parallel se bulk-oriented processing capabilities of modern RDBMSs Pathfinder: XQuery Compilation Techniques for Relational Database Targets BTW / 14

12 Loop-Lifting: XQuery Compilation XQuery Semantics Loop-lifting: Encode independent iterations using a single relation. for $x in (1, 2, 3) return $x to 3 Column iter labels independent iterations. Sequence order is maintained in column pos. This is the loop-lifted encoding of an XQuery item sequence. The compilation procedure operates on loop-lifted sequence representations only. iter pos item Pathfinder: XQuery Compilation Techniques for Relational Database Targets BTW / 14

13 Loop-Lifting: XQuery Compilation XQuery Semantics Loop-lifting: Encode independent iterations using a single relation. for $x in (1, 2, 3) return $x to 3 Column iter labels independent iterations. Sequence order is maintained in column pos. This is the loop-lifted encoding of an XQuery item sequence. The compilation procedure operates on loop-lifted sequence representations only. iter pos item Pathfinder: XQuery Compilation Techniques for Relational Database Targets BTW / 14

14 Loop-Lifting: XQuery Compilation XQuery Semantics Loop-lifting: Encode independent iterations using a single relation. for $x in (1, 2, 3) return $x to 3 Column iter labels independent iterations. Sequence order is maintained in column pos. This is the loop-lifted encoding of an XQuery item sequence. The compilation procedure operates on loop-lifted sequence representations only. iter pos item type τ int τ int τ int τ int τ int τ int This representation is highly versatile. Item types to support dynamic type semantics Pathfinder: XQuery Compilation Techniques for Relational Database Targets BTW / 14

15 Loop-Lifting: XQuery Compilation XQuery Semantics Loop-lifting: Encode independent iterations using a single relation. for $x in (1, 2, 3) return $x to 3 Column iter labels independent iterations. Sequence order is maintained in column pos. This is the loop-lifted encoding of an XQuery item sequence. The compilation procedure operates on loop-lifted sequence representations only. iter pos item type score τ int τ int τ int τ int τ int τ int 1 This representation is highly versatile. Item types to support dynamic type semantics Additional information to support, e.g., XQuery full-text search Pathfinder: XQuery Compilation Techniques for Relational Database Targets BTW / 14

16 XQuery on DB2 XQuery Semantics XML Storage XPath Evaluation Commodity RDBMSs readily provide all the functionality we need. E.g., SQL on IBM DB2 niversal Database V 8.2. XMark 1 XMark 2 XMark 6 XMark 7 XMark MB 11 MB 110 MB 1.1 GB Intel Xeon 3.2 GHz 8 GB RAM execution time [sec] [VLDB 2004] Pathfinder: XQuery Compilation Techniques for Relational Database Targets BTW / 14

17 Pathfinder: A Loop-Lifting XQuery Compiler XQuery Semantics XML Storage XPath Evaluation Pathfinder is a full implementation of a loop-lifting compiler. Fully compositional, in line with the XQuery language Pathfinder: XQuery Compilation Techniques for Relational Database Targets BTW / 14

18 EMPTY_FRAG SERIALIZE (iter:outer, pos:pos1, item) ROW# (pos1:<sort, pos>/outer) ELEM (iter, item:<iter, item><iter, pos, item>) ATTR (res:<item, item1>) X (iter = iter1) (iter1:iter, (item), val: person (iter:outer, pos:pos1, item) ROW# (pos1:<sort, pos>/outer) (iter, pos, item:res) access textnode content (res:<item>) (item), val: " " ELEM_TAG (iter, pos:pos1, (item), val: item (outer:iter, sort:pos, inner) / child::text (iter, item) / child::element name { item* } (iter, item) ROW# (pos1:<ord, (ord), val: (ord), val: #2 (iter, pos, item:res) TEXT (res:<cast>) CAST (cast:<item>), type: (item), val: 0 DIFF CONT (item:/iter) (iter:outer) ROW# (pos1:<sort, pos>/outer) (iter, pos, item) X (iter = iter1) (iter1:iter) SEL (item) (iter, pos, item:res) NOT (item), val: false (iter, pos, item:cast) CAST (cast:<item>), type: ua (outer:iter, sort:pos, inner) (iter, pos, item:res) access attribute value (res:<item>) (iter, (item), val: true DIFF / attribute::attribute id { atomic* } (iter, item) / child::element person { item* } (iter, item) / child::element closed_auction { item* } (iter, item) / child::element people { item* } (iter, item) (item), val: "auctiong.xml" TBL: (iter) [#1] (iter:outer) / child::element closed_auctions { item* } (iter, item) / child::element site { item* } (iter, item) / child::element site { item* } (iter, item) ROW# (pos1:<sort, pos>/outer) (item), val: false (iter:outer) ROW# (pos1:<sort, pos>/outer) (outer:iter, sort:pos, (item), val: 1 SEL (item) (iter, pos, item:res) = (res:<item, item1>) X (iter = (item), val: 1 SEL (item) (iter, pos, item:res) NOT (item), val: true (iter, pos, item:cast) (iter1:iter, item1:cast) CAST (cast:<item>), type: str CAST (cast:<item>), type: str (iter:inner, pos, item) X (iter = outer) ROW# (pos1:<sort, pos>/outer) (iter:outer, pos:pos1, item) (iter:outer, pos:pos1, item) ROW# (pos1:<sort, pos>/outer) (iter, pos, item:cast) CAST (cast:<item>), type: ua (iter, pos, item:res) access attribute value (res:<item>) X (iter = outer) (iter:inner, pos, item) (outer:iter, sort:pos, inner) / attribute::attribute person { atomic* } (iter, item) (outer:iter, sort:pos, inner) X (iter = outer) (outer:iter, sort:pos, inner) (outer:iter, sort:pos, inner) / child::element buyer { item* } (iter, item) X (iter = outer) Pathfinder: A Loop-Lifting XQuery Compiler XQuery Semantics XML Storage XPath Evaluation Pathfinder is a full implementation of a loop-lifting compiler. Fully compositional, in line with the XQuery language The resulting plans can be of significant size, though. XMark Q8 34 MB Intel Xeon 3.2 GHz 8 GB RAM sec Pathfinder: XQuery Compilation Techniques for Relational Database Targets BTW / 14

19 EMPTY_FRAG ATTR (res:<item, item1>) X (iter = iter1) SERIALIZE (iter:outer, pos:pos1, item) ROW# (pos1:<sort>) ELEM (iter, item:<iter, item><iter, pos, item>) (iter1:iter, (item), val: person (iter:outer, pos:pos1, item) ROW# (pos1:<sort>/outer) (iter, pos, item:res) access textnode content (res:<item>) (item), val: " " ELEM_TAG (iter, pos:pos1, (item), val: item (outer:iter, sort:pos, inner) / child::text (iter, item) / child::element name { item* } (iter, item) ROW# (ord), val: (ord), val: #2 (iter, pos, item:res) TEXT (res:<cast>) CAST (cast:<item>), type: (item), val: 0 DIFF CONT (item:/iter) (iter:outer) ROW# (pos1:<sort, pos>/outer) (iter, pos, item) X (iter = iter1) (iter1:iter) SEL (item) (iter, pos, item:res) NOT (item), val: (item), val: true DIFF (iter, pos, item:cast) CAST (cast:<item>), type: ua (outer:iter, sort:pos, inner) (iter, pos, item:res) access attribute value (res:<item>) (iter, item:res) / attribute::attribute id { atomic* } (iter, item) ROW# (iter), val: #1 (item) ROW# (pos:<item>) / child::element person { item* } (iter, item) ROW# (iter), val: #1 (item) (iter:outer) ROW# (pos1:<sort, pos>/outer) ROW# (pos:<item>) / child::element people { item* } (iter, item) (item), val: "auctiong.xml" TBL: (iter) [#1] / child::element closed_auction { item* } (iter, (item), val: false DIFF / child::element closed_auctions { item* } (iter, item) ROW# (iter), val: #1 / child::element site { item* } (iter, item) (item) ROW# (pos:<item>) / child::element site { item* } (iter, (item), val: 1 SEL (item) (iter, pos, item:res) NOT (item), val: true (iter:outer) ROW# (pos1:<sort, (item), val: 1 SEL (item) (iter, pos, item:res) = (res:<item, item1>) X (iter = iter1) (iter, pos, item:cast) (iter1:iter, item1:cast) CAST (cast:<item>), type: str CAST (cast:<item>), type: str (iter:inner, pos, item) X (iter = outer) ROW# (pos1:<sort>/outer) (outer:iter, sort:pos, inner) (iter:outer, pos:pos1, item) (iter:outer, pos:pos1, item) ROW# (pos1:<sort>/outer) (iter, pos, item:cast) CAST (cast:<item>), type: ua (iter, pos, item:res) access attribute value (res:<item>) X (iter = outer) (iter:inner, pos, item) (outer:iter, sort:pos, inner) / attribute::attribute person { atomic* } (iter, item) (outer:iter, sort:pos, inner) (outer:iter, sort:pos, inner) (outer:iter, sort:pos, inner) / child::element buyer { item* } (iter, item) X (iter = outer) Pathfinder: A Loop-Lifting XQuery Compiler XQuery Semantics XML Storage XPath Evaluation Pathfinder is a full implementation of a loop-lifting compiler. Fully compositional, in line with the XQuery language The resulting plans can be of significant size, though. To optimize relational plans, Pathfinder thus implements 1 constant propagation, XMark Q8 34 MB Intel Xeon 3.2 GHz 8 GB RAM sec 112 sec Pathfinder: XQuery Compilation Techniques for Relational Database Targets BTW / 14

20 EMPTY_FRAG SERIALIZE (pos:pos1, item) ROW# (pos1:<sort>) ELEM (iter, item:<iter, item><iter, pos, (item), val: person (iter:outer, pos:pos1, item) ROW# (pos1:<sort>/outer) (iter, pos, item:res) access textnode content (res:<item>) ATTR (res:<item, item1>) X (iter = iter1) ELEM_TAG (iter, pos:pos1, (item), val: item (iter1:iter, item1:item) fn:string_join (outer:iter, sort:pos, inner) / child::text (iter, item) / child::element name { item* } (iter, (item), val: " " (iter:inner) ROW# (ord), val: (ord), val: #2 (iter, pos, item:res) (iter, item:res) TEXT (res:<cast>) CAST (cast:<item>), type: (item), val: 0 DIFF CONT (item:/iter) (iter:outer) X (iter = iter1) (iter1:iter) SEL (item) (iter, item:res) NOT (item), val: false (iter:inner) ROW# (pos:<item>) / child::element person { item* } (iter, item) / child::element people { item* } (iter, (item), val: true DIFF (iter, item:cast) CAST (cast:<item>), type: ua (iter, item:res) / child::element closed_auction { item* } (iter, item) / child::element closed_auctions { item* } (iter, item) / child::element site { item* } (iter, item) (item), val: "auctiong.xml" TBL: (iter) [#1] (item), val: false DIFF (outer:iter, sort:pos, inner) / child::element site { item* } (iter, item) SEL (item) (iter, item:res) NOT (item), val: true (iter:outer) SEL (item) (iter, item:res) = (res:<item, item1>) X (iter = iter1) (iter, item:cast) CAST (cast:<item>), type: str X (iter = outer) (iter:outer, item) (outer:iter, inner) access attribute value (res:<item>) / attribute::attribute person { atomic* } (iter, item) / child::element buyer { item* } (iter, item) (iter:inner) (iter1:iter, item1:cast) CAST (cast:<item>), type: str (iter, item:cast) CAST (cast:<item>), type: ua (iter, item:res) access attribute value (res:<item>) (iter:outer, item) (outer:iter, inner) (outer:iter, inner) / attribute::attribute id { atomic* } (iter, item) X (iter = outer) X (iter = outer) (outer:iter, inner) (outer:iter, inner) Pathfinder: A Loop-Lifting XQuery Compiler XQuery Semantics XML Storage XPath Evaluation Pathfinder is a full implementation of a loop-lifting compiler. Fully compositional, in line with the XQuery language The resulting plans can be of significant size, though. To optimize relational plans, Pathfinder thus implements 1 constant propagation, 2 projection pushdown, XMark Q8 34 MB Intel Xeon 3.2 GHz 8 GB RAM 2 51 sec sec 112 sec Pathfinder: XQuery Compilation Techniques for Relational Database Targets BTW / 14

21 EMPTY_FRAG SERIALIZE (item, pos) ROW# (pos:<pos1>) (pos1, item) X (iter = iter1) ELEM (iter1, item:<iter1, item><iter1, pos, item>) (iter1, item1, pos) ROW# (pos:<pos1>/iter1) (iter1, pos1, item1) access textnode content (item1:<item>) ROW# (pos1:<item>/iter1) / child::text (iter1, item) ATTR (item:<item2, (item2), val: person fn:string_join / child::element name { item* } (iter1, item) (item:item1, (item1), val: " " (item), val: item NMBER (iter) ROW# (pos1:<item1>) (item1) (iter1:iter) / child::element person { item* } (iter, item1) (iter1, item, pos) ROW# (pos1), val: (pos1), val: #2 (iter1, item) (iter1, item) TEXT (item:<item2>) CAST (item2:<item1>), type: (item1), val: 0 DIFF (iter1) CONT (item1:/iter1) (iter1) X (iter = iter2) (iter:iter2) (iter2) SEL (item) (iter2, item) = (item:<item3, item4>) (iter2, item3, item4) CAST (item4:<item>), type: str CAST (item3:<item2>), type: str (iter2, item2, item) CAST (item:<item4>), type: ua access attribute value (item4:<item3>) (item3, iter2, item2) X (iter1 = iter3) (iter1:iter3, item3) / attribute::attribute id { atomic* } (iter3, item3) / child::element people { item* } (iter, item1) (item3:item, iter3:iter1) (iter2, item2:item1, iter3:iter1) NMBER (iter1) (item, iter2, item1) CAST (item1:<item3>), type: ua access attribute value (item3:<item2>) / child::element site { item* } (iter, (iter), val: #1 DOC TBL: (iter item) [#1,"auctionG.xml"] (item1:item) (item2, item, iter2) X (iter = iter3) (iter:iter3, item2) (item, item1, iter1, iter2:iter) / attribute::attribute person { atomic* } (iter3, item2) (item:item1, iter2:iter, iter3:iter) / child::element buyer { item* } (iter3, item2) (item2:item, iter3:iter) (item) NMBER (iter) (item1, iter1:iter) / child::element closed_auction { item* } (iter, item) / child::element closed_auctions { item* } (iter, item) / child::element site { item* } (iter, item) Pathfinder: A Loop-Lifting XQuery Compiler XQuery Semantics XML Storage XPath Evaluation Pathfinder is a full implementation of a loop-lifting compiler. Fully compositional, in line with the XQuery language The resulting plans can be of significant size, though. To optimize relational plans, Pathfinder thus implements 1 constant propagation, 2 projection pushdown, 3 functional dependency and data flow analyses, and XMark Q8 34 MB Intel Xeon 3.2 GHz 8 GB RAM 3 33 sec 2 51 sec sec 112 sec Pathfinder: XQuery Compilation Techniques for Relational Database Targets BTW / 14

22 EMPTY_FRAG SERIALIZE (item, pos) ROW# (pos:<pos1>) (pos1, item) X (iter = iter1) ELEM (iter1, item:<iter1, item><iter1, pos, item>) (iter1, item1, pos) ROW# (pos:<pos1>/iter1) (iter1, pos1, item1) access textnode content (item1:<item>) ROW# (pos1:<item>/iter1) / child::text (iter1, item) ATTR (item:<item2, (item2), val: person (item1), val: " " / child::element name { item* } (iter1, item) (item:item1, iter1:iter) (item), val: item (iter1:iter) NMBER (iter) ROW# (pos1:<item1>) (item1) / child::element person { item* } (iter, item1) (iter1, item, pos) ROW# (pos1), val: (pos1), val: #2 (iter1, item) (iter1, item) TEXT (item:<item2>) CAST (item2:<item1>), type: (item1), val: 0 DIFF (iter1) CONT (item1:/iter1) (iter1) (iter, iter1) X (item1 = item) (iter, item1) (iter1, item) access attribute value (item1:<item>) (item, iter:iter2) / attribute::attribute person { atomic* } (iter2, item) / child::element buyer { item* } (iter2, item) / child::element people { item* } (iter, item1) DOC TBL: (iter item1) [#1,"auctionG.xml"] (item:item1, iter2:iter) NMBER (iter) (item1) / child::element closed_auction { item* } (iter, item1) / child::element closed_auctions { item* } (iter, item1) / child::element site { item* } (iter, item1) access attribute value (item:<item1>) (item1, iter1:iter2) / attribute::attribute id { atomic* } (iter2, item1) (item1, iter2:iter) Pathfinder: A Loop-Lifting XQuery Compiler XQuery Semantics XML Storage XPath Evaluation Pathfinder is a full implementation of a loop-lifting compiler. Fully compositional, in line with the XQuery language The resulting plans can be of significant size, though. To optimize relational plans, Pathfinder thus implements 1 constant propagation, 2 projection pushdown, 3 functional dependency and data flow analyses, and 4 algebraic join detection. (You saw these optimizations in yesterday s demo session.) XMark Q8 34 MB Intel Xeon 3.2 GHz 8 GB RAM sec 3 33 sec 2 51 sec sec 112 sec Pathfinder: XQuery Compilation Techniques for Relational Database Targets BTW / 14

23 MonetDB/XQuery Pathfinder targets the main-memory RDMBS MonetDB. Queries over multi-gigabyte XML instances answered in interactive time (XMark: 18 of 20 queries in 1 min on 1.1 GB) nprecedented scalability normalized execution time MB 111 MB 1.1 GB 11 GB Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Q11 Q12 Q13 Q14 Q15 Q16 Q17 Q18 Q19 Q20 [SIGMOD 2006, VLDB 2005 Demo] Pathfinder: XQuery Compilation Techniques for Relational Database Targets BTW / 14

24 Wrap-p A complete and purely relational XQuery processing stack: XML Storage A relational tree encoding, derived from XPath accelerator, maps XML document trees into relational tables. Re-use of mature storage and indexing techniques Pathfinder: XQuery Compilation Techniques for Relational Database Targets BTW / 14

25 Wrap-p A complete and purely relational XQuery processing stack: XML Storage A relational tree encoding, derived from XPath accelerator, maps XML document trees into relational tables. Re-use of mature storage and indexing techniques XPath Evaluation Staircase join encapsulates knowledge about our tree encoding in terms of a single join operator. Outstanding XPath performance on any RDBMS Pathfinder: XQuery Compilation Techniques for Relational Database Targets BTW / 14

26 Wrap-p A complete and purely relational XQuery processing stack: XML Storage A relational tree encoding, derived from XPath accelerator, maps XML document trees into relational tables. Re-use of mature storage and indexing techniques XPath Evaluation Staircase join encapsulates knowledge about our tree encoding in terms of a single join operator. Outstanding XPath performance on any RDBMS XQuery Semantics The loop-lifting compilation procedure maps arbitrary XQuery expressions to primitives of relational algebra. Implementation of iterative XQuery semantics in terms of efficient, bulk-oriented processing Pathfinder: XQuery Compilation Techniques for Relational Database Targets BTW / 14

27 Ongoing and Future Work Pathfinder is an ongoing, joint research project with CWI Amsterdam, Twente, and Konstanz. Algebraic optimization, cost and result size estimation New functionality: recursion, dynamic typing, and validation Alternative back-ends: Idefix (KN), SQL:1999 [SIGMOD 2007] Pathfinder: XQuery Compilation Techniques for Relational Database Targets BTW / 14

28 Ongoing and Future Work Pathfinder is an ongoing, joint research project with CWI Amsterdam, Twente, and Konstanz. Algebraic optimization, cost and result size estimation New functionality: recursion, dynamic typing, and validation Alternative back-ends: Idefix (KN), SQL:1999 [SIGMOD 2007] MonetDB/XQuery has started to spread across the world already. X-RPC: XQuery processing in peer-to-peer networks XIRAF: multi-hierarchical XML documents Tijah: full-text retrieval for the MonetDB/XQuery system 150 SourceForge downloads per month (MonetDB/XQuery only) Pathfinder: XQuery Compilation Techniques for Relational Database Targets BTW / 14

29 Ongoing and Future Work Pathfinder is an ongoing, joint research project with CWI Amsterdam, Twente, and Konstanz. Algebraic optimization, cost and result size estimation New functionality: recursion, dynamic typing, and validation Alternative back-ends: Idefix (KN), SQL:1999 [SIGMOD 2007] MonetDB/XQuery has started to spread across the world already. X-RPC: XQuery processing in peer-to-peer networks XIRAF: multi-hierarchical XML documents Tijah: full-text retrieval for the MonetDB/XQuery system 150 SourceForge downloads per month (MonetDB/XQuery only) pathfinder ("pa:t n. a person who makes or finds a way, esp. through unexplored areas or fields of knowledge. Collins English Dictionary Pathfinder: XQuery Compilation Techniques for Relational Database Targets BTW / 14

MonetDB/XQuery (2/2): High-Performance, Purely Relational XQuery Processing

MonetDB/XQuery (2/2): High-Performance, Purely Relational XQuery Processing ADT 2010 MonetDB/XQuery (2/2): High-Performance, Purely Relational XQuery Processing http://pathfinder-xquery.org/ http://monetdb-xquery.org/ Stefan Manegold Stefan.Manegold@cwi.nl http://www.cwi.nl/~manegold/

More information

Pathfinder: XQuery Compilation Techniques for Relational Database Targets

Pathfinder: XQuery Compilation Techniques for Relational Database Targets Pathfinder: XQuery Compilation Techniques for Relational Database Targets Jens Teubner Technische Universität München, Institut für Informatik jensteubner@intumde Abstract: Relational database systems

More information

ADT 2010 ADT XQuery Updates in MonetDB/XQuery & Other Approaches to XQuery Processing

ADT 2010 ADT XQuery Updates in MonetDB/XQuery & Other Approaches to XQuery Processing 1 XQuery Updates in MonetDB/XQuery & Other Approaches to XQuery Processing Stefan Manegold Stefan.Manegold@cwi.nl http://www.cwi.nl/~manegold/ MonetDB/XQuery: Updates Schedule 9.11.1: RDBMS back-end support

More information

MonetDB/XQuery: High Performance, Purely Relational XQuery Processing

MonetDB/XQuery: High Performance, Purely Relational XQuery Processing ADT 7 Lecture 4 MonetDB/XQuery: High Performance, Purely Relational XQuery Processing http://pathfinder xquery.org/ http://monetdb xquery.org/ Stefan Manegold Stefan.Manegold@cwi.nl http://www.cwi.nl/~manegold/

More information

INS. Information Systems. INformation Systems. Loop-lifted staircase join: from XPath to XQuery

INS. Information Systems. INformation Systems. Loop-lifted staircase join: from XPath to XQuery C e n t r u m v o o r W i s k u n d e e n I n f o r m a t i c a INS Information Systems INformation Systems Loop-lifted staircase join: from XPath to XQuery P.A. Boncz, T. Grust, M. van Keulen, S. Manegold,

More information

ADT 2009 Other Approaches to XQuery Processing

ADT 2009 Other Approaches to XQuery Processing Other Approaches to XQuery Processing Stefan Manegold Stefan.Manegold@cwi.nl http://www.cwi.nl/~manegold/ 12.11.2009: Schedule 2 RDBMS back-end support for XML/XQuery (1/2): Document Representation (XPath

More information

Part XVII. Staircase Join Tree-Aware Relational (X)Query Processing. Torsten Grust (WSI) Database-Supported XML Processors Winter 2008/09 440

Part XVII. Staircase Join Tree-Aware Relational (X)Query Processing. Torsten Grust (WSI) Database-Supported XML Processors Winter 2008/09 440 Part XVII Staircase Join Tree-Aware Relational (X)Query Processing Torsten Grust (WSI) Database-Supported XML Processors Winter 2008/09 440 Outline of this part 1 XPath Accelerator Tree aware relational

More information

1 The size of the subtree rooted in node a is 5. 2 The leaf-to-root paths of nodes b, c meet in node d

1 The size of the subtree rooted in node a is 5. 2 The leaf-to-root paths of nodes b, c meet in node d Enhancing tree awareness 15. Staircase Join XPath Accelerator Tree aware relational XML resentation Tree awareness? 15. Staircase Join XPath Accelerator Tree aware relational XML resentation We now know

More information

Pushing XPath Accelerator to its Limits

Pushing XPath Accelerator to its Limits 1st International Workshop on Performance and Evaluation of Data Management Systems EXPDB 2006, June 30 Pushing XPath Accelerator to its Limits Christian Grün, Marc Kramis Alexander Holupirek, Marc H.

More information

Pathfinder/MonetDB: A High-Performance Relational Runtime for XQuery

Pathfinder/MonetDB: A High-Performance Relational Runtime for XQuery Introduction Problems & Solutions Join Recognition Experimental Results Introduction GK Spring Workshop Waldau: Pathfinder/MonetDB: A High-Performance Relational Runtime for XQuery Database & Information

More information

11. XML storage details Introduction Last Lecture Introduction Introduction. XML Databases XML storage details

11. XML storage details Introduction Last Lecture Introduction Introduction. XML Databases XML storage details XML Databases Silke Eckstein Andreas Kupfer Institut für Informationssysteme Technische Universität Braunschweig http://www.ifis.cs.tu-bs.de 2 11.1 Last Lecture Different methods for storage of XML documents

More information

XML Databases 11. XML storage details

XML Databases 11. XML storage details XML Databases 11. XML storage details Silke Eckstein Andreas Kupfer Institut für Informationssysteme Technische Universität Braunschweig http://www.ifis.cs.tu-bs.de 11. XML storage details 11.1 Introduction

More information

Pathfinder: Compiling XQuery for Execution on the Monet Database Engine

Pathfinder: Compiling XQuery for Execution on the Monet Database Engine Pathfinder: Compiling XQuery for Execution on the Monet Database Engine Jens Teubner University of Konstanz Dept. of Computer & Information Science Box D 188, 78457 Konstanz, Germany teubner@inf.uni-konstanz.de

More information

XQuery Implementation Paradigms (06472)

XQuery Implementation Paradigms (06472) Executive Summary of Dagstuhl Seminar XQuery Implementation Paradigms (06472) Nov 19 22, 2006 Organizers: Peter A. Boncz (CWI Amsterdam, NL) Torsten Grust (TU München, DE) Jérôme Siméon (IBM TJ Watson

More information

Part V. Relational XQuery-Processing. Marc H. Scholl (DBIS, Uni KN) XML and Databases Winter 2007/08 297

Part V. Relational XQuery-Processing. Marc H. Scholl (DBIS, Uni KN) XML and Databases Winter 2007/08 297 Part V Relational XQuery-Processing Marc H Scholl (DBIS, Uni KN) XML and Databases Winter 2007/08 297 Outline of this part (I) 12 Mapping Relational Databases to XML Introduction Wrapping Tables into XML

More information

11. XML storage details Introduction Introduction Introduction Introduction. XML Databases XML storage details

11. XML storage details Introduction Introduction Introduction Introduction. XML Databases XML storage details XML Databases Silke Eckstein Andreas Kupfer Institut für Informationssysteme Technische Universität Braunschweig http://www.ifis.cs.tu-bs.de 11.3 Path-based XPath Accelerator encoding 11.6 Staircase join

More information

Pathfinder/MonetDB: A Relational Runtime for XQuery

Pathfinder/MonetDB: A Relational Runtime for XQuery Master Thesis Pathfinder/MonetDB: A Relational Runtime for XQuery Jan Rittinger jan.rittinger@uni-konstanz.de University of Konstanz, Germany August 2005 Pathfinder/MonetDB: A Relational Runtime for XQuery

More information

Jump Through Hoops to Grok the Loops

Jump Through Hoops to Grok the Loops Jump Through Hoops to Grok the Loops Pathfinder s Purely Relational Account of XQuery-style Iteration Semantics Torsten Grust Jan Rittinger Technische Universität München Munich, Germany torstengrust janrittinger@intumde

More information

Part XII. Mapping XML to Databases. Torsten Grust (WSI) Database-Supported XML Processors Winter 2008/09 321

Part XII. Mapping XML to Databases. Torsten Grust (WSI) Database-Supported XML Processors Winter 2008/09 321 Part XII Mapping XML to Databases Torsten Grust (WSI) Database-Supported XML Processors Winter 2008/09 321 Outline of this part 1 Mapping XML to Databases Introduction 2 Relational Tree Encoding Dead Ends

More information

Updating XML documents

Updating XML documents Grindei Manuela Lidia Updating XML documents XQuery Update XQuery is the a powerful functional language, which enables accessing different nodes of an XML document. However, updating could not be done

More information

Running CLEF-IP experiments using a graphical query builder

Running CLEF-IP experiments using a graphical query builder Running CLEF-IP experiments using a graphical query builder W. Alink, R. Cornacchia, A. P. de Vries Centrum Wiskunde en Informatica {alink,roberto,arjen}@cwi.nl Abstract The CWI submission for the CLEF-IP

More information

Tree-Aware Relational Database Systems

Tree-Aware Relational Database Systems Tree-Aware Relational Database Systems (and A Purely Functional Account of Database Query Languages) Summary of Publications Submitted in Partial Fulfillment of the Requirements for the Habilitation Degree

More information

Pathfinder Meets DB2

Pathfinder Meets DB2 Pathfinder Meets DB2 Relational XQuery Optimization Techniques Manuel Mayr Advisor: Torsten Grust Technische Universität München Munich, Germany manuelmayr@intumde ABSTRACT We are taking the next big step

More information

XML and Databases. Outline. Outline - Lectures. Outline - Assignments. from Lecture 3 : XPath. Sebastian Maneth NICTA and UNSW

XML and Databases. Outline. Outline - Lectures. Outline - Assignments. from Lecture 3 : XPath. Sebastian Maneth NICTA and UNSW Outline XML and Databases Lecture 10 XPath Evaluation using RDBMS 1. Recall / encoding 2. XPath with //,, @, and text() 3. XPath with / and -sibling: use / size / level encoding Sebastian Maneth NICTA

More information

Data-Intensive XQuery Debugging with Instant Replay

Data-Intensive XQuery Debugging with Instant Replay Data-Intensive XQuery Debugging with Instant Replay Torsten Grust Jan Rittinger Jens Teubner Technische Universität München Munich, Germany torsten.grust jan.rittinger jens.teubner@in.tum.de ABSTRACT We

More information

XML and Databases. Lecture 10 XPath Evaluation using RDBMS. Sebastian Maneth NICTA and UNSW

XML and Databases. Lecture 10 XPath Evaluation using RDBMS. Sebastian Maneth NICTA and UNSW XML and Databases Lecture 10 XPath Evaluation using RDBMS Sebastian Maneth NICTA and UNSW CSE@UNSW -- Semester 1, 2009 Outline 1. Recall pre / post encoding 2. XPath with //, ancestor, @, and text() 3.

More information

PF/Tijah: text search in an XML database system

PF/Tijah: text search in an XML database system PF/Tijah: text search in an XML database system Djoerd Hiemstra, Henning Rode, Roel van Os and Jan Flokstra University of Twente Centre for Telematics and Information Technology P.O. Box 217, 7500 AE Enschede

More information

XQuery on SQL Hosts. Torsten Grust Sherif Sakr Jens Teubner

XQuery on SQL Hosts. Torsten Grust Sherif Sakr Jens Teubner XQuery on SQL Hosts Torsten Grust Sherif Sakr Jens Teubner University of Konstanz Department of Computer and Information Science P.O. Box D 88, 78457 Konstanz, Germany {grust,sakr,teubner}@inf.uni-konstanz.de

More information

INTRODUCTION TO RELATIONAL DATABASE SYSTEMS

INTRODUCTION TO RELATIONAL DATABASE SYSTEMS INTRODUCTION TO RELATIONAL DATABASE SYSTEMS DATENBANKSYSTEME 1 (INF 3131) Torsten Grust Universität Tübingen Winter 2017/18 1 DATABASE DESIGN Given a particular mini-world, almost always there will be

More information

Using scores. XQuery and Full-Text. Try building pairs? Try building trees? Access scores of items: Implementing a scoring infrastructure

Using scores. XQuery and Full-Text. Try building pairs? Try building trees? Access scores of items: Implementing a scoring infrastructure Using s 1. How to deal with s? What can one do with s? XQuery and Full-Tet Implementing a scoring infrastructure Stefan Klinger DBIS, Uni KN January 28, 2008 Stefan Klinger (DBIS, Uni KN) XQuery and Full-Tet

More information

Mammals Flourished Long Before Dinosaurs Became Extinct

Mammals Flourished Long Before Dinosaurs Became Extinct Mammals Flourished Long Before Dinosaurs Became Extinct VLDB 2009 Lyon - Ten Year Award Database Architecture Optimized For The New Bottleneck: Memory Access (VLDB 1999) Stefan Manegold (manegold@cwi.nl)

More information

Pre-Discussion. XQuery: An XML Query Language. Outline. 1. The story, in brief is. Other query languages. XML vs. Relational Data

Pre-Discussion. XQuery: An XML Query Language. Outline. 1. The story, in brief is. Other query languages. XML vs. Relational Data Pre-Discussion XQuery: An XML Query Language D. Chamberlin After the presentation, we will evaluate XQuery. During the presentation, think about consequences of the design decisions on the usability of

More information

Speech 2 Part 2 Transcript: The role of DB2 in Web 2.0 and in the IOD World

Speech 2 Part 2 Transcript: The role of DB2 in Web 2.0 and in the IOD World Speech 2 Part 2 Transcript: The role of DB2 in Web 2.0 and in the IOD World Slide 1: Cover Welcome to the speech, The role of DB2 in Web 2.0 and in the Information on Demand World. This is the second speech

More information

Using an Oracle Repository to Accelerate XPath Queries

Using an Oracle Repository to Accelerate XPath Queries Using an Oracle Repository to Accelerate XPath Queries Colm Noonan, Cian Durrigan, and Mark Roantree Interoperable Systems Group, Dublin City University, Dublin 9, Ireland {cnoonan, cdurrigan, mark}@computing.dcu.ie

More information

MonetDB: Open-source Columnar Database Technology Beyond Textbooks

MonetDB: Open-source Columnar Database Technology Beyond Textbooks MonetDB: Open-source Columnar Database Technology Beyond Textbooks http://wwwmonetdborg/ Stefan Manegold StefanManegold@cwinl http://homepagescwinl/~manegold/ >5k downloads per month Why? Why? Motivation

More information

Representing and Querying Multi-dimensional Markup for Question Answering

Representing and Querying Multi-dimensional Markup for Question Answering Representing and Querying Multi-dimensional Markup for Question Answering Wouter Alink, Valentin Jijkoun, David Ahn, Maarten de Rijke ISLA, University of Amsterdam alink,jijkoun,ahn,mdr@science.uva.nl

More information

Efficient XQuery Support for Stand-Off Annotation

Efficient XQuery Support for Stand-Off Annotation Efficient XQuery Support for Stand-Off Annotation Wouter Alink Raoul Bhoedjang Nederlands Forensisch Instituut Laan van Ypenburg 6, 2497 GB The Hague, the Netherlands {wouter,raoul}@holmes.nl Arjen de

More information

Cardinality-Aware Purely Relational XQuery Processor

Cardinality-Aware Purely Relational XQuery Processor Cardinality-Aware Purely Relational XQuery Processor Sherif Sakr NICTA, University of New South Wales, Sydney, Australia sherif.sakr@nicta.com.au Abstract. Recently, the use of XML continues to grow in

More information

Accelerating XPath Evaluation in Any RDBMS

Accelerating XPath Evaluation in Any RDBMS Accelerating XPath Evaluation in Any RDBMS TORSTEN GRUST University of Konstanz and MAURICE VAN KEULEN University of Twente and JENS TEUBNER University of Konstanz This article is a proposal for a database

More information

Compression of the Stream Array Data Structure

Compression of the Stream Array Data Structure Compression of the Stream Array Data Structure Radim Bača and Martin Pawlas Department of Computer Science, Technical University of Ostrava Czech Republic {radim.baca,martin.pawlas}@vsb.cz Abstract. In

More information

An Algebraic Approach to XQuery View Maintenance

An Algebraic Approach to XQuery View Maintenance Translation An Algebraic Approach to XQuery View Maintenance J. Nathan Foster (Penn) Ravi Konuru (IBM) Jérôme Siméon (IBM) Lionel Villard (IBM) Source Source Query View View PLAN-X 08 Quick! 1 + 2 + +

More information

Tree-Pattern Queries on a Lightweight XML Processor

Tree-Pattern Queries on a Lightweight XML Processor Tree-Pattern Queries on a Lightweight XML Processor MIRELLA M. MORO Zografoula Vagena Vassilis J. Tsotras Research partially supported by CAPES, NSF grant IIS 0339032, UC Micro, and Lotus Interworks Outline

More information

Part VII. Querying XML The XQuery Data Model. Marc H. Scholl (DBIS, Uni KN) XML and Databases Winter 2005/06 153

Part VII. Querying XML The XQuery Data Model. Marc H. Scholl (DBIS, Uni KN) XML and Databases Winter 2005/06 153 Part VII Querying XML The XQuery Data Model Marc H. Scholl (DBIS, Uni KN) XML and Databases Winter 2005/06 153 Outline of this part 1 Querying XML Documents Overview 2 The XQuery Data Model The XQuery

More information

Scaling for Humongous amounts of data with MongoDB

Scaling for Humongous amounts of data with MongoDB Scaling for Humongous amounts of data with MongoDB Alvin Richards Technical Director, EMEA alvin@10gen.com @jonnyeight alvinonmongodb.com From here... http://bit.ly/ot71m4 ...to here... http://bit.ly/oxcsis

More information

XQuery Optimization in Relational Database Systems

XQuery Optimization in Relational Database Systems XQuery Optimization in Relational Database Systems Riham Abdel Kader Supervised by Maurice van Keulen Univeristy of Twente P.O. Box 217 7500 AE Enschede, The Netherlands r.abdelkader@utwente.nl ABSTRACT

More information

The Pig Experience. A. Gates et al., VLDB 2009

The Pig Experience. A. Gates et al., VLDB 2009 The Pig Experience A. Gates et al., VLDB 2009 Why not Map-Reduce? Does not directly support complex N-Step dataflows All operations have to be expressed using MR primitives Lacks explicit support for processing

More information

PathStack : A Holistic Path Join Algorithm for Path Query with Not-predicates on XML Data

PathStack : A Holistic Path Join Algorithm for Path Query with Not-predicates on XML Data PathStack : A Holistic Path Join Algorithm for Path Query with Not-predicates on XML Data Enhua Jiao, Tok Wang Ling, Chee-Yong Chan School of Computing, National University of Singapore {jiaoenhu,lingtw,chancy}@comp.nus.edu.sg

More information

Let SQL Drive the XQuery Workhorse (XQuery Join Graph Isolation)

Let SQL Drive the XQuery Workhorse (XQuery Join Graph Isolation) Let SQL Drive the XQuery Workhorse (XQuery Join Graph Isolation) Torsten Grust Manuel Mayr Jan Rittinger Eberhard Karls Universität Tübingen Tübingen, Germany torsten.grust manuel.mayr jan.rittinger@uni-tuebingen.de

More information

An XML-IR-DB Sandwich: Is it Better With an Algebra in Between?

An XML-IR-DB Sandwich: Is it Better With an Algebra in Between? An XML-IR-DB Sandwich: Is it Better With an Algebra in Between? Vojkan Mihajlović Djoerd Hiemstra Henk Ernst Blok Peter M. G. Apers CTIT, University of Twente P.O. Box 217, 7500AE Enschede, The Netherlands

More information

Data Blocks: Hybrid OLTP and OLAP on compressed storage

Data Blocks: Hybrid OLTP and OLAP on compressed storage Data Blocks: Hybrid OLTP and OLAP on compressed storage Ben Brümmer Technische Universität München Fürstenfeldbruck, 26. November 208 Ben Brümmer 26..8 Lehrstuhl für Datenbanksysteme Problem HDD/Archive/Tape-Storage

More information

Introduction to Column Stores with MemSQL. Seminar Database Systems Final presentation, 11. January 2016 by Christian Bisig

Introduction to Column Stores with MemSQL. Seminar Database Systems Final presentation, 11. January 2016 by Christian Bisig Final presentation, 11. January 2016 by Christian Bisig Topics Scope and goals Approaching Column-Stores Introducing MemSQL Benchmark setup & execution Benchmark result & interpretation Conclusion Questions

More information

Architecture and Implementation of Database Systems Query Processing

Architecture and Implementation of Database Systems Query Processing Architecture and Implementation of Database Systems Query Processing Ralf Möller Hamburg University of Technology Acknowledgements The course is partially based on http://www.systems.ethz.ch/ education/past-courses/hs08/archdbms

More information

The XQuery Data Model

The XQuery Data Model The XQuery Data Model 9. XQuery Data Model XQuery Type System Like for any other database query language, before we talk about the operators of the language, we have to specify exactly what it is that

More information

Copyright 2016 Ramez Elmasri and Shamkant B. Navathe

Copyright 2016 Ramez Elmasri and Shamkant B. Navathe CHAPTER 19 Query Optimization Introduction Query optimization Conducted by a query optimizer in a DBMS Goal: select best available strategy for executing query Based on information available Most RDBMSs

More information

Performance in the Multicore Era

Performance in the Multicore Era Performance in the Multicore Era Gustavo Alonso Systems Group -- ETH Zurich, Switzerland Systems Group Enterprise Computing Center Performance in the multicore era 2 BACKGROUND - SWISSBOX SwissBox: An

More information

Supporting Positional Predicates in Efficient XPath Axis Evaluation for DOM Data Structures

Supporting Positional Predicates in Efficient XPath Axis Evaluation for DOM Data Structures Supporting Positional Predicates in Efficient XPath Axis Evaluation for DOM Data Structures Torsten Grust Jan Hidders Philippe Michiels Roel Vercammen 1 July 7, 2004 Maurice Van Keulen 1 Philippe Michiels

More information

A high performance database kernel for query-intensive applications. Peter Boncz

A high performance database kernel for query-intensive applications. Peter Boncz MonetDB: A high performance database kernel for query-intensive applications Peter Boncz CWI Amsterdam The Netherlands boncz@cwi.nl Contents The Architecture of MonetDB The MIL language with examples Where

More information

High-Performance Holistic XML Twig Filtering Using GPUs. Ildar Absalyamov, Roger Moussalli, Walid Najjar and Vassilis Tsotras

High-Performance Holistic XML Twig Filtering Using GPUs. Ildar Absalyamov, Roger Moussalli, Walid Najjar and Vassilis Tsotras High-Performance Holistic XML Twig Filtering Using GPUs Ildar Absalyamov, Roger Moussalli, Walid Najjar and Vassilis Tsotras Outline! Motivation! XML filtering in the literature! Software approaches! Hardware

More information

06472 Abstracts Collection XQuery Implementation Paradigms

06472 Abstracts Collection XQuery Implementation Paradigms 06472 Abstracts Collection XQuery Implementation Paradigms Dagstuhl Seminar Peter A. Boncz 1, Torsten Grust 2, Jérome Siméon 3 and Maurice van Keulen 4 1 CWI - Amsterdam, NL boncz@cwi.nl 2 TU München,

More information

Part XII. Mapping XML to Databases. Marc H. Scholl (DBIS, Uni KN) XML and Databases Winter 2005/06 324

Part XII. Mapping XML to Databases. Marc H. Scholl (DBIS, Uni KN) XML and Databases Winter 2005/06 324 Part XII Mapping XML to Databases Marc H Scholl (DBIS, Uni KN) XML and Databases Winter 2005/06 324 Outline of this part 1 Mapping XML to Databases Introduction 2 Relational Tree Encoding Dead Ends Node-Based

More information

Big Data Management and NoSQL Databases

Big Data Management and NoSQL Databases NDBI040 Big Data Management and NoSQL Databases Lecture 10. Graph databases Doc. RNDr. Irena Holubova, Ph.D. holubova@ksi.mff.cuni.cz http://www.ksi.mff.cuni.cz/~holubova/ndbi040/ Graph Databases Basic

More information

B.H.GARDI COLLEGE OF MASTER OF COMPUTER APPLICATION. Ch. 1 :- Introduction Database Management System - 1

B.H.GARDI COLLEGE OF MASTER OF COMPUTER APPLICATION. Ch. 1 :- Introduction Database Management System - 1 Basic Concepts :- 1. What is Data? Data is a collection of facts from which conclusion may be drawn. In computer science, data is anything in a form suitable for use with a computer. Data is often distinguished

More information

Evaluating XPath Queries

Evaluating XPath Queries Chapter 8 Evaluating XPath Queries Peter Wood (BBK) XML Data Management 201 / 353 Introduction When XML documents are small and can fit in memory, evaluating XPath expressions can be done efficiently But

More information

Database Systems and Modern CPU Architecture

Database Systems and Modern CPU Architecture Database Systems and Modern CPU Architecture Prof. Dr. Torsten Grust Winter Term 2006/07 Hard Disk 2 RAM Administrativa Lecture hours (@ MI HS 2): Monday, 09:15 10:00 Tuesday, 14:15 15:45 No lectures on

More information

XML Systems & Benchmarks

XML Systems & Benchmarks XML Systems & Benchmarks Christoph Staudt Peter Chiv Saarland University, Germany July 1st, 2003 Main Goals of our talk Part I Show up how databases and XML come together Make clear the problems that arise

More information

Accelerating Foreign-Key Joins using Asymmetric Memory Channels

Accelerating Foreign-Key Joins using Asymmetric Memory Channels Accelerating Foreign-Key Joins using Asymmetric Memory Channels Holger Pirk Stefan Manegold Martin Kersten holger@cwi.nl manegold@cwi.nl mk@cwi.nl Why? Trivia: Joins are important But: Many Joins are (Indexed)

More information

Sepand Gojgini. ColumnStore Index Primer

Sepand Gojgini. ColumnStore Index Primer Sepand Gojgini ColumnStore Index Primer SQLSaturday Sponsors! Titanium & Global Partner Gold Silver Bronze Without the generosity of these sponsors, this event would not be possible! Please, stop by the

More information

Curriculum Vitae. Stefan Manegold September 28, 2009

Curriculum Vitae. Stefan Manegold September 28, 2009 Curriculum Vitae Stefan Manegold September 28, 2009 Personalia Full name Affiliation Telephone E-mail address WWW address Stefan Manegold Centrum Wiskunde & Informatica (CWI) Science Park 123 1098 XG Amsterdam

More information

Algebraic XQuery Decorrelation with Order Sensitive Operations

Algebraic XQuery Decorrelation with Order Sensitive Operations Worcester Polytechnic Institute Digital WPI Computer Science Faculty Publications Department of Computer Science 2-2005 Algebraic XQuery Decorrelation with Order Sensitive Operations Song Wang Worcester

More information

CSE 530A. B+ Trees. Washington University Fall 2013

CSE 530A. B+ Trees. Washington University Fall 2013 CSE 530A B+ Trees Washington University Fall 2013 B Trees A B tree is an ordered (non-binary) tree where the internal nodes can have a varying number of child nodes (within some range) B Trees When a key

More information

Extending In-Memory Relational Database Engines with Native Graph Support

Extending In-Memory Relational Database Engines with Native Graph Support Extending In-Memory Relational Database Engines with Native Graph Support EDBT 18 Mohamed S. Hassan 1 Tatiana Kuznetsova 1 Hyun Chai Jeong 1 Walid G. Aref 1 Mohammad Sadoghi 2 1 Purdue University West

More information

Track Join. Distributed Joins with Minimal Network Traffic. Orestis Polychroniou! Rajkumar Sen! Kenneth A. Ross

Track Join. Distributed Joins with Minimal Network Traffic. Orestis Polychroniou! Rajkumar Sen! Kenneth A. Ross Track Join Distributed Joins with Minimal Network Traffic Orestis Polychroniou Rajkumar Sen Kenneth A. Ross Local Joins Algorithms Hash Join Sort Merge Join Index Join Nested Loop Join Spilling to disk

More information

ROX: Run-time Optimization of XQueries

ROX: Run-time Optimization of XQueries ROX: Run-time Optimization of XQueries Riham Abdel Kader University of Twente Enschede, The Netherlands r.abdelkader@utwente.nl Stefan Manegold CWI Amsterdam, The Netherlands Stefan.Manegold@cwi.nl Peter

More information

Optimizer Challenges in a Multi-Tenant World

Optimizer Challenges in a Multi-Tenant World Optimizer Challenges in a Multi-Tenant World Pat Selinger pselinger@salesforce.come Classic Query Optimizer Concepts & Assumptions Relational Model Cost = X * CPU + Y * I/O Cardinality Selectivity Clustering

More information

XQuery. Announcements (March 21) XQuery. CPS 216 Advanced Database Systems

XQuery. Announcements (March 21) XQuery. CPS 216 Advanced Database Systems XQuery CPS 216 Advanced Database Systems Announcements (March 21) 2 Midterm has been graded Homework #3 will be assigned next Tuesday Reading assignment due next Wednesday XML processing in Lore (VLDB

More information

Indexing XML Data Stored in a Relational Database

Indexing XML Data Stored in a Relational Database Indexing XML Data Stored in a Relational Database Shankar Pal, Istvan Cseri, Oliver Seeliger, Gideon Schaller, Leo Giakoumakis, Vasili Zolotov VLDB 200 Presentation: Alex Bradley Discussion: Cody Brown

More information

88X + PERFORMANCE GAINS USING IBM DB2 WITH BLU ACCELERATION ON INTEL TECHNOLOGY

88X + PERFORMANCE GAINS USING IBM DB2 WITH BLU ACCELERATION ON INTEL TECHNOLOGY 05.11.2013 Thomas Kalb 88X + PERFORMANCE GAINS USING IBM DB2 WITH BLU ACCELERATION ON INTEL TECHNOLOGY Copyright 2013 ITGAIN GmbH 1 About ITGAIN Founded as a DB2 Consulting Company into 2001 DB2 Monitor

More information

PDF hosted at the Radboud Repository of the Radboud University Nijmegen

PDF hosted at the Radboud Repository of the Radboud University Nijmegen PDF hosted at the Radboud Repository of the Radboud University Nijmegen The following full text is a publisher's version. For additional information about this publication click this link. http://hdl.handle.net/2066/173172

More information

Session: E14 Unleash SQL Power to your XML Data. Matthias Nicola IBM Silicon Valley Lab

Session: E14 Unleash SQL Power to your XML Data. Matthias Nicola IBM Silicon Valley Lab Session: E14 Unleash SQL Power to your XML Data Matthias Nicola IBM Silicon Valley Lab 16 October 2008 09:00 10:00am Platform: DB2 for z/os and DB2 for Linux, Unix, Windows SQL is no longer the purely

More information

Accelerating Data Warehousing Applications Using General Purpose GPUs

Accelerating Data Warehousing Applications Using General Purpose GPUs Accelerating Data Warehousing Applications Using General Purpose s Sponsors: Na%onal Science Founda%on, LogicBlox Inc., IBM, and NVIDIA The General Purpose is a many core co-processor 10s to 100s of cores

More information

Index. Bitmap Heap Scan, 156 Bitmap Index Scan, 156. Rahul Batra 2018 R. Batra, SQL Primer,

Index. Bitmap Heap Scan, 156 Bitmap Index Scan, 156. Rahul Batra 2018 R. Batra, SQL Primer, A Access control, 165 granting privileges to users general syntax, GRANT, 170 multiple privileges, 171 PostgreSQL, 166 169 relational databases, 165 REVOKE command, 172 173 SQLite, 166 Aggregate functions

More information

Course Modules for MCSA: SQL Server 2016 Database Development Training & Certification Course:

Course Modules for MCSA: SQL Server 2016 Database Development Training & Certification Course: Course Modules for MCSA: SQL Server 2016 Database Development Training & Certification Course: 20762C Developing SQL 2016 Databases Module 1: An Introduction to Database Development Introduction to the

More information

CS143: Relational Model

CS143: Relational Model CS143: Relational Model Book Chapters (4th) Chapters 1.3-5, 3.1, 4.11 (5th) Chapters 1.3-7, 2.1, 3.1-2, 4.1 (6th) Chapters 1.3-6, 2.105, 3.1-2, 4.5 Things to Learn Data model Relational model Database

More information

Hash Joins for Multi-core CPUs. Benjamin Wagner

Hash Joins for Multi-core CPUs. Benjamin Wagner Hash Joins for Multi-core CPUs Benjamin Wagner Joins fundamental operator in query processing variety of different algorithms many papers publishing different results main question: is tuning to modern

More information

Architecture and Implementation of Database Systems (Winter 2015/16)

Architecture and Implementation of Database Systems (Winter 2015/16) Jens Teubner Architecture & Implementation of DBMS Winter 2015/16 1 Architecture and Implementation of Database Systems (Winter 2015/16) Jens Teubner, DBIS Group jens.teubner@cs.tu-dortmund.de Winter 2015/16

More information

CSC 261/461 Database Systems Lecture 19

CSC 261/461 Database Systems Lecture 19 CSC 261/461 Database Systems Lecture 19 Fall 2017 Announcements CIRC: CIRC is down!!! MongoDB and Spark (mini) projects are at stake. L Project 1 Milestone 4 is out Due date: Last date of class We will

More information

Announcements. CSCI 334: Principles of Programming Languages. Exam Study Session: Monday, May pm TBL 202. Lecture 22: Domain Specific Languages

Announcements. CSCI 334: Principles of Programming Languages. Exam Study Session: Monday, May pm TBL 202. Lecture 22: Domain Specific Languages Announcements CSCI 334: Principles of Programming Languages Lecture 22: Domain Specific Languages Exam Study Session: Monday, May 14 2-4pm TBL 202 Instructor: Dan Barowy Exercise Domain Specific Languages

More information

Semantic Optimization of Preference Queries

Semantic Optimization of Preference Queries Semantic Optimization of Preference Queries Jan Chomicki University at Buffalo http://www.cse.buffalo.edu/ chomicki 1 Querying with Preferences Find the best answers to a query, instead of all the answers.

More information

Perm Integrating Data Provenance Support in Database Systems

Perm Integrating Data Provenance Support in Database Systems Perm Integrating Data Provenance Support in Database Systems Boris Glavic Database Technology Group Department of Informatics University of Zurich glavic@ifi.uzh.ch Gustavo Alonso Systems Group Department

More information

Multi-User Evaluation of XML Data Management Systems with XMach-1

Multi-User Evaluation of XML Data Management Systems with XMach-1 Multi-User Evaluation of XML Data Management Systems with XMach-1 Timo Böhme, Erhard Rahm University of Leipzig, Germany {boehme, rahm}@informatik.uni-leipzig.de http://dbs.uni-leipzig.de Abstract. XMach-1

More information

Architecture and Implementation of Database Systems (Summer 2018)

Architecture and Implementation of Database Systems (Summer 2018) Jens Teubner Architecture & Implementation of DBMS Summer 2018 1 Architecture and Implementation of Database Systems (Summer 2018) Jens Teubner, DBIS Group jens.teubner@cs.tu-dortmund.de Summer 2018 Jens

More information

Ecient XPath Axis Evaluation for DOM Data Structures

Ecient XPath Axis Evaluation for DOM Data Structures Ecient XPath Axis Evaluation for DOM Data Structures Jan Hidders Philippe Michiels University of Antwerp Dept. of Math. and Comp. Science Middelheimlaan 1, BE-2020 Antwerp, Belgium, fjan.hidders,philippe.michielsg@ua.ac.be

More information

Architecture-Conscious Database Systems

Architecture-Conscious Database Systems Architecture-Conscious Database Systems 2009 VLDB Summer School Shanghai Peter Boncz (CWI) Sources Thank You! l l l l Database Architectures for New Hardware VLDB 2004 tutorial, Anastassia Ailamaki Query

More information

Database Management

Database Management Database Management - 2011 Model Answers 1. a. A data model should comprise a structural part, an integrity part and a manipulative part. The relational model provides standard definitions for all three

More information

Compiler. Runtime System

Compiler. Runtime System Query Execution SQL Statement Compiler Runtime System Query Execution Plan Result (Relation) 1 Compiler SQL is declarative, for runtime system it has to be translated into something procedural DBMS first

More information

Rack-scale Data Processing System

Rack-scale Data Processing System Rack-scale Data Processing System Jana Giceva, Darko Makreshanski, Claude Barthels, Alessandro Dovis, Gustavo Alonso Systems Group, Department of Computer Science, ETH Zurich Rack-scale Data Processing

More information

Topics. History. Architecture. MongoDB, Mongoose - RDBMS - SQL. - NoSQL

Topics. History. Architecture. MongoDB, Mongoose - RDBMS - SQL. - NoSQL Databases Topics History - RDBMS - SQL Architecture - SQL - NoSQL MongoDB, Mongoose Persistent Data Storage What features do we want in a persistent data storage system? We have been using text files to

More information

DDO-Free XQuery. Hiroyuki Kato 1, Yasunori Ishihara 2 and Torsten Grust 3

DDO-Free XQuery. Hiroyuki Kato 1, Yasunori Ishihara 2 and Torsten Grust 3 DDO-Free XQuery Hiroyuki Kato 1, Yasunori Ishihara 2 and Torsten Grust 3 1 National Institute of Informatics 2 Osaka University 3 Universität Tübingen The 16th International Symposium on Database Programming

More information

Working with XML and DB2

Working with XML and DB2 Working with XML and DB2 What is XML? XML stands for EXtensible Markup Language XML is a markup language much like HTML XML was designed to carry data, not to display data XML tags are not predefined.

More information

XQueC: embedding compression into XML databases

XQueC: embedding compression into XML databases 1 XQueC: embedding compression into XML databases Tralala, Marseille, 03/2005 Andrei Arion 1,2 Angela Bonifati 3 Ioana Manolescu 1 Andrea Pugliese 4 1 INRIA Futurs LRI, PCRI, France 2 University of Paris

More information