VLDB 2006 Contest of XML Lock Protocols Michael P. Haustein, SAP AG Theo Härder, Univ. of Kaiserslautern Konstantin Luttenberger, Fraunhofer Institute IESE [email protected] 32nd Int. Conf. on Very Large Data Bases VLDB 2006 12-15 September 2006, Seoul, Korea © 2006 AG DBIS VLDB 2006 Outline Key ideas of 2 groups of competing XML lock protocols • Doc2PL and followers - Node2PL, NO2PL, OO2PL • multi-granularity locking (MGL* group) Introduction - RIX, RIX+, IRIX, IRIX+, URIX *-2PL group • • • • MGL* group taDOM* group Introduction to XTC Performance evaluation Our own protocols: taDOM group taDOM2: base protocol for DOM2 lock conversion optimization to taDOM2+ not considered taDOM3, taDOM3+ Introduction to XTC • identifying nodes • meta-synchronization Conclusions and outlook Performance evaluation • taMIX framework • transaction types of the Banking benchmark • measurements and comparison © 2006 AG DBIS Conclusions and outlook 2 VLDB 2006 DOM Storage Model Introduction *-2PL group MGL* group taDOM* group XML document DOM API <?xml version="1.0"?> <bib> <book year="2004" id="book1"> <title>The Title</title> <author> <last>Lastname</last> <first>Firstname</first> </author> <price>49.99</price> </book> </bib> • Navigation • getFirst/LastChild getNextSibling getPreviousSibling getAttributes/Value • Query getElementById getChildNodes Introduction to XTC Modification appendChild insertBefore removeChild element node Performance evaluation bib Conclusions and outlook book title id book1 2004 price author year attribute node last T first T 49.99 The Title text node © 2006 AG DBIS (> 20 ops) T Lastname T Firstname 3 VLDB 2006 Doc2PL and its Followers Basic assumption: Traversal from root to context node 0. Doc2PL only locks roots Sample of operations 1. Node2PL acquires locks for parent nodes Introduction • nthP retrieves the nth child of C • nthM retrieves the nth child (backw.) • insA inserts a new node after C • insB inserts a new node before C • del deletes a given node *-2PL group MGL* group taDOM* group Introduction to XTC Performance evaluation Conclusions and outlook Separation of traversal and modification of • • • • © 2006 AG DBIS document structure (T/M) content (S/X) direct jumps (IDR/IDX) no intention locks! lock modes: content + structure T M root S X T M S + - + - X - - + - T + + + - M - - - - parent P context node C entire child axis of P affected Structural navigation to locate an object often implies ako document scan repeatable read requires T locks on all nodes 4 VLDB 2006 Doc2PL and its Followers (2) 2. NO2PL • locks (conceptual) pointers for every node • acquires locks for all nodes whose (conceptual) pointers are traversed or modified Introduction *-2PL group 3. OO2PL example at C1: insB (C0) T MGL* group - A/Z: first/last child - R/L: next/previous sibling example: del C2 root T taDOM* group Performance evaluation Conclusions and outlook C0 C1 P P M Introduction to XTC TA … Cn C1 TZ MR C3 C2 ML M only context node and selected child nodes affected TL TR TA TZ Increasing degree of concurrency: Doc2PL -> Node2PL -> NO2PL -> OO2PL © 2006 AG DBIS root ML MR MA MZ TL TR TA TZ ML MR MA MZ + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + - 5 VLDB 2006 Making Full-Fledged Protocols for the *-2PL Group Idea of T/M lock modes Introduction - requires non-interrupted path traversal - prohibits indexed document access: how to protect the ancestor path in case of direct jumps? *-2PL group T root MGL* group M taDOM* group Introduction to XTC Performance evaluation Conclusions and outlook IDS IDX id idref T T T T T T IDX T IDS T id What’s about IDREF(S) links? – locks for direct jumps (IDS/IDX) needed! T T T T A single lock on the jump target is only sufficient for read ops! © 2006 AG DBIS (Very expensive) solution for the *-2PL group: node deletion requires IDX locks on all descendents having ID attr. 6 VLDB 2006 What Else Do Full-Fledged XML Protocols Need? • jumps to element nodes not owning an ID attribute • cheap mechanism to identify the ancestor node IDs! Introduction *-2PL group taDOM* group Introduction to XTC Conclusions and outlook Lock conversion • operations of a transaction necessarily share some part of the ancestor path • weakest possible locks after conversion MGL* group Performance evaluation Support of direct access via indexes Appropriate intention locks and subtree locks needed • lock depth parameter desirable compatibility matrix Use ideas of MGL locking • subtree locks + intention locks • 4. IRX conversion matrix - I R X I I I X X - R R X R X - X X X X X - I R X I + + - - R + - + X + - - conversion matrix • 5. IRX+ © 2006 AG DBIS - specialized conversion (+) - depending on locking situation - I R X I I I R/X X R R R/X R X X X X X X 7 VLDB 2006 Applying Multi-Granularity Locking to XML 6. IRIX conversion Introduction *-2PL group MGL* group - IR IX R X IR IR IR IX R X IX IX IX IX X R R R X X X X X IR Introduction to XTC Performance evaluation Conclusions and outlook R C1 IX R X IR IR IR IX R X X IX IX IX IX X R X IXR R R R R X X X IXR X X X X X X • read C1 – C3 IR root P C2 root P R C3 C1 C2 C3 • delete C2 IX X © 2006 AG DBIS specialized conversion IR • delete C2 C1 7. IRIX+ - • read C1 – C3 taDOM* group IX root P C2 IX C3 C1 R X root P C2 C3 R 8 VLDB 2006 MGL Group (Cont.) Introduction *-2PL group MGL* group taDOM* group Introduction to XTC Performance evaluation Conclusions and outlook © 2006 AG DBIS 8. URIX read for update C1 – C3 • compatibility matrix - IR IX R RIX U X IR + + + + + - - IX + + + - - - - R + + - + - - - RIX + + - - - - - U + + - + - - - X + - - - - - - • conversion matrix RIX C1 - IR IX R RIX U X IR IR IR IX R RIX U X IX IX IX IX RIX RIX X X R R R RIX RIX R X RIX RIX RIX RIX RIX RIX X X R IX U U U X U X U X X X X X X X X X U root P C2 C3 delete C2 IX RIX C1 X root P C2 C3 9 VLDB 2006 Tailored Node Locks for XML – taDOM2 9. taDOM2 Node locks and compatibility matrix • refined URIX protocol with extensions to lock a complete level in a subtree Introduction - well known: IR/IX and R/X (here SR/SX) • edge locks not discussed (3 modes) *-2PL group Compatibility matrix MGL* group Read locks - IR NR LR SR IX CX U X lock effect IR + + + + + + + - - IR intention read lock on a node NR + + + + + + + - - NR (node read) locks only a context node LR + + + + + + - - - LR (level read) Performance evaluation SR + + + + + - - - - read lock on a context node and all direct-child nodes IX + + + + - + + - - SR (subtree read) read lock on an entire subtree Conclusions and outlook CX + + + - - + + - - SU + + + + + - - - - SX + - - - - - - - - taDOM* group Introduction to XTC © 2006 AG DBIS Write locks lock effect IX (intent. excl.) intention of a write lock on a nondirect child node X (exclusive) write lock on an entire subtree CX (child excl.) indicates existence of a write lock on a direct child node SU (update option) read lock for intended update 10 operations on an entire subtree VLDB 2006 Node Locks (1) Node read lock (NR) • requires IR locks on the ancestor path Introduction • requested for reading the context node and all nodes located at the level below (all direct-child nodes) *-2PL group MGL* group taDOM* group Introduction to XTC Performance evaluation Conclusions and outlook Level read lock (LR) Child exclusive lock (CX) • indicates an X lock on a child • defined, in addition to IX, to detect conflicts with LR Transaction T1 is reading <price> Transaction T2 is reading <book> and all direct-child nodes (<title>, <author>, and <price>) IX Transaction T3 is modifying the book title © 2006 AG DBIS bib IX LR IR book author title CX X IX IR IR last T price NR first T 49.99 The Title T Lastname T Firstname 11 VLDB 2006 Node Locks (2) Introduction *-2PL group Locking subtrees exclusively: intention exclusive lock (IX), child exclusive lock (CX), and exclusive lock (X) • requested for updating the context node's content or deleting the context node and its entire subtree • requires a CX lock on the parent and IX locks on the ancestors MGL* group taDOM* group Introduction to XTC Performance evaluation Conclusions and outlook Transaction T1 is deleting the <first> node and its content Transaction T2 is deleting the <last> node and its content Transaction T3 is reading the <author> node IR IR IX IX bib IR LR IX IX book title NR CX CX T X last first X T 49.99 The Title Transaction T4 is reading all direct-child nodes of <book> price author LR T Lastname T Firstname but is blocked when reading all child nodes of <author> © 2006 AG DBIS 12 VLDB 2006 Tunable Lock Depth Introduction *-2PL group MGL* group taDOM* group Introduction to XTC Performance evaluation Conclusions and outlook Goal • reduce the number of locks held by using coarser lock granularity • may decrease concurrency • when nodes deeper than lock depth are accessed: lock modes SR and X are used at the lock depth level Transaction T1 is reading the author's last name © 2006 AG DBIS title however, using lock depth 2 Transaction T2 would have to acquire an X lock on author and would therefore have to wait on author book CX IX IR Transaction T2 is updating the author's first name Transaction T1 would have to acquire an SR lock on author bib IX IR IR T authorIX SR IR price X first IX last 49.99 The Title IR T NR T Lastname T CX Firstname X 13 VLDB 2006 Conversion of Node Locks Conversion for weakest possible locking paths • LR CX requires explicit NR locks on all children • node labeling scheme cannot deliver IDs of descendent nodes Introduction *-2PL group conversion matrix bib IX IR IR - MGL* group taDOM* group Introduction to XTC Performance evaluation Conclusions and outlook NR NR X title NR NR author last T price NR first T 49.99 The Title T Lastname LR SR IX CX SU SX IR IR NR LR SR IX CX SU SX NR NR NR NR LR SR IX CX SU SX LR LR LR LR LR SR IXNR CXNR SU SX SR SR SR SR SR SR IXSR CXSR SR SX IR book CX NR LR IR NR T Firstname IX IXSR IX CX SX SX CX CX CX CX CXNR CXNR CX CX SX SX SU SU SU SU SU SU SX SX SU SX SX SX SX SX SX SX SX SX SX SX Transaction T1 is reading <book> and all its direct-child nodes Transaction T2 is reading <book>, the first child node <title> and its value © 2006 AG DBIS Transaction T1 is deleting <author> and its entire subtree IX IX IX IXNR CXNR IX 14 VLDB 2006 taDOM* Group – Lock Protocol Optimization • new lock modes enable conversion without accessing the document • e.g., LRCX (level read child exclusive) combines both modes and avoids application of conversion rule CXNR Introduction *-2PL group MGL* group taDOM* group Introduction to XTC Performance evaluation Conclusions and outlook 10. taDOM2+: LRIX, SRIX, LRCX, SRCX Optimization steps • 11. taDOM3: modification of a single context node • 12. taDOM3+: new lock modes to avoid document access Example: lock conversion in taDOM3 - IR NR LR SR IX NRIX CX NRCX NU NX SU SX IR IR IR NR LR SR IX NRIX CX NRCX NU NX SU SX NR NR NR NR LR SR NRIX NRIX NRCX NRCX NR NX SU SX LR LR LR LR LR SR NRIXN NRIXN NRCXN NRCXN NUNR NXNR SU SX R R R R SR SR SR SR SR SR NRIXSR NRIXSR NRCXSR NRCXSR NUSR NXSR SR SX IX IX IX NRIX NRIXNR NRIXSR IX NRIX CX NRCX NX NX SX SX NRIX NRIX NRIX NRIX NRIXNR NRIXSR NRIX NRIX NRCX NRCX NX NX SX SX CX CX CX NRCX NRCXN NRCXS CX NRCX CX NRCX NX NX SX SX R R NRCX NRCX NRCX NRCX NX NX SX SX NRCX © 2006 AG DBIS NRCX NRCX NRCX NRCXN NRCXS R R NU NU NU NU NUNR NUSR NX NX NX NX NU NX SU SX NX NX NX NX NXNR NXSR NX NX NX NX NX NX SX SX SU SU SU SU SU SU SX SX SX SX SU SX SU SX SX SX SX SX SX SX SX SX SX SX SX SX SX SX 15 VLDB 2006 XTC – Architectural Overview Interface Services Introduction Http Agent Ftp Agent DOM RMI SAX RMI API RMI XML Processing Services MGL* group taDOM* group Introduction to XTC XQuery Processor XML Manager Node Manager Lock Manager Transaction Manager Node Processing Services Path Processing Transaction Services Record Mgr Index Mgr Catalog Mgr Access Services Buffer Manager Conclusions and outlook L4 L3 Propagation Control Deadlock Detector Performance evaluation L5 XSLT Processor I/O Manager Temp File Mgr File Services L2 XTCserver *-2PL group L1 OS File System Transaction Log © 2006 AG DBIS Container Files Temporary Files determination of ancestor node IDs are of outmost importance for any locking protocol 16 VLDB 2006 taDOM Storage Model – View of Lock Mgr Introduction *-2PL group MGL* group taDOM* group XML document <?xml version="1.0"?> <bib> <book year="2004" id="book1"> <title>The Title</title> <author> <last>Lastname</last> <first>Firstname</first> </author> <price>49.99</price> </book> </bib> attribute root node element node bib book Introduction to XTC title Performance evaluation Conclusions and outlook id book1 year 2004 attribute node © 2006 AG DBIS price author last T first 49.99 The Title text node T T Lastname T Firstname string node 17 VLDB 2006 Identifying Nodes – Node Numbering Schemes sequential Introduction *-2PL group 3 4 5 book1 9 id 10 6 MGL* group taDOM* group Introduction to XTC Performance evaluation 7 title 8 book author 14 21 18 new 15 13 T 17 Lastname first price 19 T 20 49.99 16 T Firstname - very slow, although supported by on-demand indexes - determination of parent ID and ancestor IDs, however, is very frequent SPLIDs (DeweysIDs) 1 1.3 Conclusions and outlook 1.3.1 1.3.1.1 1.3.3 id 1.3.3.3 book1 1.3.5 title T 1.3.5.3 The Title 1.3.1.1.1 1.3.1.3 year 2004 © 2006 AG DBIS 2 last 12 The Title 2004 bib 11 T year 1 1.3.1.3.1 1.3.3.3.1 1.3.5.3.3 T last bib book author 1.3.7 1.3.5.5 first new 1.3.5.4.3 Lastname 1.3.5.3.3.1 price T 1.3.7.3 49.99 1.3.5.5.3 T 1.3.7.3.1 Firstname 1.3.5.5.3.1 18 VLDB 2006 Meta-Synchronization • allows identical runtime environment for lock contests • lock mgr provides methods: supportsSharedLevelLocking, Introduction supportsSharedTreeLocking, supportsExclusiveTreeLocking *-2PL group MGL* group taDOM* group Introduction to XTC Meta-lock requests from node manager to lock manager • request shared node lock • request shared level lock • request tree lock (shared, update, exclusive) • ... Performance evaluation Conclusions and outlook Meta-synchronization Meta-lock requests are mapped to the actual lock algorithm • lock manager implements a certain interface • exchange of the lock manager interface implementation exchanges the system's complete XML locking mechanism Advantages of SPLIDs used in all 12 protocols! © 2006 AG DBIS 19 VLDB 2006 TaMix Benchmark Framework So far, no update benchmark for XML docs available • TaMix infrastructure for distributed OLTP benchmarks Introduction server start / stop XTC Server Coordinator *-2PL group configuration MGL* group taDOM* group Client Introduction to XTC node Performance evaluation node Client node • a list of TX types is assigned to each client • each client runs n TX in parallel and keeps the workload level Conclusions and outlook Automated measurement • • • • © 2006 AG DBIS Client per measurement point 3 runs configurable runtime interval for 12 lock protocols in 6 lock depths ~ 20 hours per measurement 20 VLDB 2006 Performance Measurement Data base (DataGuide) Bank Introduction *-2PL group MGL* group id taDOM* group Introduction to XTC Fname Performance evaluation Customers Accounts Customer Account Balance Name Name Street Address No Zip id Standing_Orders City Conclusions and outlook Day Credit Receiver Owner Protocols Postings Protocol Posting Standing_Order AccountNo ABA_No Amount Disposition Size • ~8 MB • 580,000 taDOM nodes © 2006 AG DBIS 21 VLDB 2006 Performance Measurement (2) Transaction Introduction *-2PL group MGL* group taDOM* group Introduction to XTC Performance evaluation Conclusions and outlook types for Banking benchmark • bank transfer (5 TX/client) - jump to a randomly selected account element - navigation through the document, update operations for Balance and Posting • standing order (5 TX/client) - random account, navigation to Standing Orders, read of all orders - evaluation of the Child axis, small fraction of update operations • customer master - renaming of a Customer element (1 TX/client) - in parallel, reconstruction of randomly selected Customer fragments (5 TX/client) • account statement (5 TX/client) - reconstruction of randomly selected Account fragments - small amount of update operations (insertion an entry in Protocols) • removal of a customer from the data base (2 TX/client) - deletion of fragments Transaction mix • processes all transaction types in parallel • constant system load of 66 transactions © 2006 AG DBIS 22 VLDB 2006 Performance Measurement (3) 400 Introduction *-2PL group 350 MGL* group taDOM* group Introduction to XTC 300 Number of committed transactions in Banking benchmark lock protocol taDOM3+ taDOM3 taDOM2+ taDOM2 URIX IRIX IRIX+ RIX RIX+ OO2PL NO2PL Node2PL taDOM3+, taDOM2+ taDOM3, taDOM2 URIX 250 Performance evaluation Conclusions and outlook 200 RIX(+), IRIX(+) 150 Node2PL, NO2PL, OO2PL 100 0 © 2006 AG DBIS 1 2 3 4 lock depth 5 23 VLDB 2006 Performance Measurement (4) Introduction Number of aborted transactions in Banking benchmark 700 lock protocol taDOM3+ taDOM3 taDOM2+ taDOM2 URIX IRIX IRIX+ RIX RIX+ OO2PL NO2PL Node2PL RIX(+), IRIX(+) *-2PL group 600 MGL* group taDOM* group Introduction to XTC Performance evaluation Conclusions and outlook 500 taDOM, URIX 400 300 200 100 Node2PL, NO2PL, OO2PL 0 © 2006 AG DBIS 0 1 2 3 4 lock depth 5 24 VLDB 2006 Detailed Performance Measurement (5) Successful bank transfers node-based navigation, update operations Introduction 400 *-2PL group Node2PL, NO2PL, OO2PL 350 MGL* group taDOM* group Introduction to XTC Performance evaluation Conclusions and outlook taDOM2, taDOM3 300 250 200 lock protocol taDOM3+ taDOM3 taDOM2+ taDOM2 URIX IRIX IRIX+ RIX RIX+ OO2PL NO2PL Node2PL 150 100 taDOM, URIX 50 RIX(+), IRIX(+) 0 © 2006 AG DBIS 0 1 2 3 4 5 lock depth 25 VLDB 2006 Detailed Performance Measurement (6) Introduction Successfully modified standing orders evaluation of child axis, few update operations 800 *-2PL group taDOM3+, taDOM2+ 700 MGL* group taDOM* group Node2PL, NO2PL, OO2PL 600 MGL taDOM3, taDOM2 Introduction to XTC 500 Performance evaluation 400 Conclusions and outlook 300 lock protocol taDOM3+ taDOM3 taDOM2+ taDOM2 URIX IRIX IRIX+ RIX RIX+ OO2PL NO2PL Node2PL 200 taDOM, URIX 100 0 © 2006 AG DBIS RIX(+), IRIX(+) 0 1 2 3 4 5 lock depth 26 VLDB 2006 Detailed Performance Measurement (7) Introduction Customer Master: successfully modified Customer elements + reconstructed Customer fragments renaming of an inner element node 1500 lock protocol taDOM3+ taDOM3 taDOM2+ taDOM2 URIX IRIX IRIX+ RIX RIX+ OO2PL NO2PL Node2PL *-2PL group MGL* group taDOM* group Introduction to XTC 1400 1300 1200 Performance evaluation Conclusions and outlook taDOM URIX 1100 1000 RIX(+), IRIX(+) 900 Node2PL, NO2PL, OO2PL 800 © 2006 AG DBIS 0 1 2 3 4 5 lock depth 27 VLDB 2006 Detailed Performance Measurement (8) Introduction Successfully processed account statements reconstruction of fragments, few update operations 800 lock protocol taDOM3+ taDOM3 taDOM2+ taDOM2 URIX IRIX IRIX+ RIX RIX+ OO2PL NO2PL Node2PL *-2PL group 700 MGL* group 600 taDOM* group Introduction to XTC Performance evaluation Conclusions and outlook 500 taDOM, MGL 400 300 200 Node2PL, NO2PL, OO2PL 100 0 © 2006 AG DBIS 0 1 2 3 4 5 lock depth 28 VLDB 2006 Detailed Performance Measurement (9) Introduction Successfully removed customer records deletion of fragments 140 taDOM, MGL *-2PL group 120 MGL* group taDOM* group Introduction to XTC Performance evaluation Conclusions and outlook NO2PL, OO2PL 100 80 60 RIX(+), IRIX(+) 40 taDOM, URIX 20 Node2PL 0 © 2006 AG DBIS 0 1 2 3 lock protocol taDOM3+ taDOM3 taDOM2+ taDOM2 URIX IRIX IRIX+ RIX RIX+ OO2PL NO2PL Node2PL 4 5 lock depth 29 VLDB 2006 Conclusions and Outlook XTC is used as a test vehicle for empirical DB research • effectiveness of XML concurrency control - fine-granular locking on nodes and edges - meta-synchronization allows comparison of different compatibilities - taDOM* protocols Introduction *-2PL group MGL* group taDOM* group multiplicity of lock modes intention locks are important indexed document access is frequent ancestor path locking without accessing the storage engine desirable • performance evaluation revealed Introduction to XTC - Performance evaluation Conclusions and outlook use of tailored lock modes pays off indexed document access is frequent effect of isolation levels on transaction throughput influence of node numbering schemes (insertions at arbitrary positions) Outlook • phantom prevention • mapping different XML language models via access models to our XML storage model, e. g., to analyze the locking behavior of XQuery processing © 2006 AG DBIS 30 VLDB 2006 Introduction *-2PL group Contest of XML Lock Protocols MGL* group taDOM* group Introduction to XTC Thank you. Any questions? Performance evaluation Conclusions and outlook © 2006 AG DBIS 31
© Copyright 2026 Paperzz