Sedna XML Database: Transactions and Recovery

2,501 views

Published on

Describes ACID transactions implementation in Sedna XML Database, covers recovery techniques

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,501
On SlideShare
0
From Embeds
0
Number of Embeds
16
Actions
Shares
0
Downloads
67
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Sedna XML Database: Transactions and Recovery

  1. 1. Sedna XML DBMS: Transactions and Recovery Alexander Kalinin [email_address] Nickolay Zavaritsky [email_address] Sedna Team
  2. 2. General principles <ul><li>ACID transactions </li></ul><ul><ul><ul><li>Atomicity – rollback procedure </li></ul></ul></ul><ul><ul><ul><li>Consistency – by design </li></ul></ul></ul><ul><ul><ul><li>Isolation – S2PL and snapshots </li></ul></ul></ul><ul><ul><ul><li>Durability – two-level recovery scheme </li></ul></ul></ul><ul><li>Versioning environment </li></ul><ul><ul><ul><li>Support for Read-Only transactions </li></ul></ul></ul><ul><ul><ul><li>Physical recovery using persistent snapshot </li></ul></ul></ul><ul><li>Logical recovery using log of microoperations </li></ul>
  3. 3. Versioning Scheme <ul><li>Page-level versioning </li></ul><ul><ul><ul><li>Consistent with internal representation (e.g. following the pointers) </li></ul></ul></ul><ul><ul><ul><li>Transaction-transparent solution </li></ul></ul></ul><ul><ul><ul><li>All logic is encapsulated in a separate module on SM </li></ul></ul></ul><ul><li>Limited number of versions for each page </li></ul><ul><ul><ul><li>More effective maintenance and garbage collecting ( 4 versions on 2 snapshots ) </li></ul></ul></ul><ul><li>Support for snapshots to process read-only transactions </li></ul><ul><ul><ul><li>No isolation is required </li></ul></ul></ul><ul><ul><ul><li>Long-running read-only transactions cannot be rolled back due to the lack of versions </li></ul></ul></ul>
  4. 9. Rollback and Recovery scheme <ul><li>Normal processing: </li></ul><ul><ul><ul><li>Logical logging of all microoperations (1 record per microoperation + 1 record per changed persistent version) </li></ul></ul></ul><ul><ul><ul><li>Transaction-consistent snapshots on checkpoints </li></ul></ul></ul><ul><li>Rollback processing: </li></ul><ul><ul><ul><li>Undo microoperations using logical log records </li></ul></ul></ul><ul><li>Two-level recovery process: </li></ul><ul><ul><ul><li>Restore transaction-consistent state using persistent snapshot </li></ul></ul></ul><ul><ul><ul><li>Redo the necessary microoperations using logical log </li></ul></ul></ul>
  5. 10. Recovery process
  6. 11. Isolation <ul><li>Usual transactions </li></ul><ul><ul><ul><li>S2PL protocol </li></ul></ul></ul><ul><ul><ul><li>Document-level granularity </li></ul></ul></ul><ul><li>Read-only transactions </li></ul><ul><ul><ul><li>No isolation is required since they use transaction-consistent snapshots </li></ul></ul></ul>
  7. 12. <ul><li>Thank you for your attention! </li></ul>

×