cs 839 design the next generation database lecture 2
play

CS 839: Design the Next-Generation Database Lecture 2: Transaction - PowerPoint PPT Presentation

CS 839: Design the Next-Generation Database Lecture 2: Transaction Basics Xiangyao Yu 1/23/2020 1 Announcements Course website http://pages.cs.wisc.edu/~yxy/cs839-s20/index.html Email me if you are not in HotCRP


  1. CS 839: Design the Next-Generation Database Lecture 2: Transaction Basics Xiangyao Yu 1/23/2020 1

  2. Announcements Course website http://pages.cs.wisc.edu/~yxy/cs839-s20/index.html Email me if you are not in HotCRP https://wisc-cs839-ngdb20.hotcrp.com 2

  3. Today’s Agenda OLTP vs. OLAP ACID properties • Atomicity • Consistency • Isolation • Durability 3

  4. OLTP vs. OLAP OLTP: On-Line Transaction Processing • Users submit transactions that contain simple read/write operations • Example: banking, online shopping, etc. OLAP: On-Line Analytical Processing • Complex analytics queries that reveal insights behind data • Example: business report, marketing, forecasting, etc. 4

  5. OLTP vs. OLAP Transactions OLTP database (Update Intensive)

  6. OLTP vs. OLAP Transactions OLTP database OLAP database (Update Intensive) (Read Intensive, rare updates) 6

  7. OLTP vs. OLAP Transactions • Takes hours for conventional databases • Takes seconds for Hybrid transactional/analytical processing (HTAP) systems OLTP database OLAP database (Update Intensive) (Read Intensive, rare updates) 7

  8. OLTP vs. OLAP This lecture Next lecture OLTP database OLAP database (Update Intensive) (Read Intensive, rare updates) 8

  9. Transaction Definition 9

  10. Transaction Definition What are the required properties of a database transaction? ACID 10

  11. Transaction Definition What are the required properties of a database transaction? ACID Example transactions: Begin Read(X) If checking.balance > 100 Write(Y) checking.balance -= 100 saving.balance += 100 Insert(Z) Commit 11

  12. A CID: Atomicity If checking.balance > 100 checking.balance -= 100 saving.balance += 100 Atomicity: Either all operations occur, or nothing occurs (All or nothing) 12

  13. A C ID: Consistency If checking.balance > 100 checking.balance -= 100 saving.balance += 100 Checking $50 -$50 RunTxn() Saving $1000 $1100 Consistency: Integrity constraints must be maintained. Example Integrity constraint: balance of checking account must be above $0 13

  14. ACI D : Durability Example transaction: If checking.balance > 100 checking.balance -= 100 saving.balance += 100 Checking $1000 Saving $1000 14

  15. ACI D : Durability Example transaction: If checking.balance > 100 checking.balance -= 100 saving.balance += 100 Checking $1000 $900 RunTxn() Saving $1000 $1100 15

  16. ACI D : Durability Example transaction: If checking.balance > 100 checking.balance -= 100 saving.balance += 100 Checking $1000 $900 ??? RunTxn() Saving $1000 $1100 ??? CRASH !! 16

  17. ACI D : Durability Example transaction: If checking.balance > 100 checking.balance -= 100 saving.balance += 100 Checking $1000 $900 ??? RunTxn() Saving $1000 $1100 ??? CRASH !! Durability: A transaction’s updates persist in case of system failure 17

  18. AC I D: Isolation Initailly checking.balance = 1000 18

  19. AC I D: Isolation Initailly checking.balance = 1000 If checking.balance > 100 If checking.balance > 100 bal = checking.balance bal = checking.balance bal = bal – 100 bal = bal – 100 checking.balance = bal checking.balance = bal 19

  20. AC I D: Isolation Initailly checking.balance = 1000 If checking.balance > 100 If checking.balance > 100 bal = checking.balance 1 bal = checking.balance bal = 1000 bal = bal – 100 bal = bal – 100 checking.balance = bal checking.balance = bal 20

  21. AC I D: Isolation Initailly checking.balance = 1000 If checking.balance > 100 If checking.balance > 100 2 bal = checking.balance 1 bal = checking.balance bal = 1000 bal = 1000 bal = bal – 100 bal = bal – 100 checking.balance = bal checking.balance = bal 21

  22. AC I D: Isolation Initailly checking.balance = 1000 If checking.balance > 100 If checking.balance > 100 2 bal = checking.balance 1 bal = checking.balance bal = 1000 bal = 1000 bal = bal – 100 bal = bal – 100 bal = 900 bal = 900 checking.balance = bal checking.balance = bal 22

  23. AC I D: Isolation Initailly checking.balance = 1000 If checking.balance > 100 If checking.balance > 100 2 bal = checking.balance 1 bal = checking.balance bal = 1000 bal = 1000 bal = bal – 100 bal = bal – 100 bal = 900 bal = 900 3 checking.balance = bal checking.balance = bal checking = 900 23

  24. AC I D: Isolation Initailly checking.balance = 1000 If checking.balance > 100 If checking.balance > 100 2 bal = checking.balance 1 bal = checking.balance bal = 1000 bal = 1000 bal = bal – 100 bal = bal – 100 bal = 900 bal = 900 3 4 checking.balance = bal checking.balance = bal checking = 900 checking = 900 24

  25. AC I D: Isolation Strong isolation: Serializability (Focus of this course) Schedule of concurrent transactions is equivalent to some serial schedule Weak isolation: Snapshot Isolation, Read Committed, Read Uncommitted, etc. Weaker isolation levels allow more interleaving of transactions 25

  26. AC I D: Isolation – Why Strong Isolation? MongoDB & Bitcoin: How NoSQL design flaws brought down two exchanges April 2014 Attackers stole 896 Bitcoins ≈ 3 million US dollars Why you should pick strong consistency, whenever possible January 2018 Systems that don't provide strong consistency … create a burden for application developers SQL (before 2000) -> NoSQL (since 2000) -> NewSQL (since 2010s) 26

  27. How to Enforce ACID Atomic & Isolation : Concurrency control Consistency : Check integrity for transactions Durability : Logging 27

  28. Concurrency Control Pessimistic Optimistic 28

  29. Pessimistic – Two Phase Locking (2PL) T1 Begin Read(X) Write(Y) Commit Time 29

  30. Pessimistic – Two Phase Locking (2PL) T1 Begin Read(X) Write(Y) Commit Time 30

  31. Pessimistic – Two Phase Locking (2PL) T1 Begin Read(X) Write(Y) Commit Time 31

  32. Pessimistic – Two Phase Locking (2PL) T1 T2 Begin Begin Read(X) Write(X) Write(Y) Commit Time 32

  33. Pessimistic – Two Phase Locking (2PL) T1 T2 Begin Begin Read(X) Write(X) Write(Y) Commit Time 33

  34. Pessimistic – Two Phase Locking (2PL) T1 T2 Begin Begin Read(X) Write(X) Write(Y) Commit Time Commit 34

  35. Pessimistic – Deadlock in 2PL T1 T2 Begin Begin Write(Y) Read(X) Write(X) Write(Y) Time 35

  36. Pessimistic – Deadlock in 2PL T1 T2 Begin Begin Write(Y) Read(X) Write(X) Write(Y) Time 36

  37. Pessimistic – Deadlock in 2PL T1 T2 Begin Begin Write(Y) Read(X) Write(X) Write(Y) Time 37

  38. Pessimistic – Deadlock in 2PL T1 T2 Begin Begin Write(Y) Read(X) Write(X) Write(Y) Time 38

  39. Pessimistic – Deadlock in 2PL T1 T2 Begin Begin Write(Y) Read(X) Write(X) Write(Y) Time 39

  40. Pessimistic – Deadlock in 2PL T1 T2 Begin Begin Write(Y) Read(X) Write(X) Write(Y) Time Deadlock ! 40

  41. Pessimistic – Deadlock Resolution T1 T2 Detect and break cycles Begin Allow only certain waits Begin • NoWait Write(Y) Read(X) • WaitDie • WoundWait Write(X) Wait-for Wait-for Write(Y) • LimitedDepth • etc. Deadlock ! 41

  42. Optimistic Concurrency Control (OCC) T1 T2 Begin Begin Read(X) Write(X) Write(Y) Commit Validate(X) Time Abort 42

  43. How to Enforce ACID Atomic & Isolation : Concurrency control Consistency : Check integrity for transactions Durability : Logging 43

  44. Durability: Logging Initially checking = 1000 Write Read Begin Commit Recovery (Checking = (Checking = 900) 900) CRASH 44

  45. Durability: Logging Initially checking = 1000 Write Read Begin Logging Commit Recovery (Checking = (Checking = 900) 900) CRASH … Log T1 T2 T3 T4 T5 (on disk) 45

  46. Summary A transaction in an OLTP system has ACID properties A tomicity, C onsistency, I solation, D urability Concurrency control (enforces Atomicity and Isolation ) Two Phase Locking (2PL) Optimistic Concurrency Control (OCC) Logging (enforces Durability ) 46

  47. Group Discussion Discuss the relative advantages and disadvantages of 2PL and OCC. What is your opinion on the debate between SQL and NoSQL (strong guarantee vs. high performance)? Do you see any scalability problem with logging? If so, any potential solution? 47

  48. Before Next Lecture Submit discussion summary to https://wisc-cs839-ngdb20.hotcrp.com • One summary per group • Authors: group members • Any format is ok (e.g., pdf, doc, txt) • Feel free to comment on others’ discussion Submit review for [optional] C-Store: A Column-oriented DBMS 48

Recommend


More recommend