Introduction to Database Systems CSE 444. Transactions. Lecture 14: Transactions in SQL. Why Do We Need Transactions. Dirty Reads.

Similar documents
Lecture 14: Transactions in SQL. Friday, April 27, 2007

CSEP544 Lecture 4: Transactions

Announcements. Transaction. Motivating Example. Motivating Example. Transactions. CSE 444: Database Internals

CSC 261/461 Database Systems Lecture 20. Spring 2017 MW 3:25 pm 4:40 pm January 18 May 3 Dewey 1101

CMPT 354: Database System I. Lecture 11. Transaction Management

Lecture 5: Transactions in SQL. Tuesday, February 6, 2007

CSE 444: Database Internals. Lectures Transactions

Motivating Example. Motivating Example. Transaction ROLLBACK. Transactions. CSE 444: Database Internals

Transactions. 1. Transactions. Goals for this lecture. Today s Lecture

Lectures 8 & 9. Lectures 7 & 8: Transactions

Announcements. Motivating Example. Transaction ROLLBACK. Motivating Example. CSE 444: Database Internals. Lab 2 extended until Monday

Database Systems CSE 414

CSE 444: Database Internals. Lectures 13 Transaction Schedules

Introduction to Data Management CSE 344

Lecture 12: Transactions. Monday, March 2, 2015

Introduction to Data Management CSE 344

Introduction to Data Management CSE 344

Introduction to Data Management CSE 344

Principles of Data Management. Lecture #2 (Storing Data: Disks and Files)

Transaction Management & Concurrency Control. CS 377: Database Systems

5/17/17. Announcements. Review: Transactions. Outline. Review: TXNs in SQL. Review: ACID. Database Systems CSE 414.

Database Systems CSE 414

CSE 344 MARCH 21 ST TRANSACTIONS

Database Systems. November 2, 2011 Lecture #7. topobo (mit)

DATABASE TRANSACTIONS. CS121: Relational Databases Fall 2017 Lecture 25

Lecture 16: Transactions (Recovery) Wednesday, May 16, 2012

Storing Data: Disks and Files

CSE544 Transac-ons: Concurrency Control. Lectures #5-6 Thursday, January 20, 2011 Tuesday, January 25, 2011

CSE 190D Database System Implementation

SQL: Transactions. Announcements (October 2) Transactions. CPS 116 Introduction to Database Systems. Project milestone #1 due in 1½ weeks

Storing Data: Disks and Files. Storing and Retrieving Data. Why Not Store Everything in Main Memory? Database Management Systems need to:

Database Systems CSE 414

Storing and Retrieving Data. Storing Data: Disks and Files. Solution 1: Techniques for making disks faster. Disks. Why Not Store Everything in Tapes?

CHAPTER 3 RECOVERY & CONCURRENCY ADVANCED DATABASE SYSTEMS. Assist. Prof. Dr. Volkan TUNALI

Storing and Retrieving Data. Storing Data: Disks and Files. Solution 1: Techniques for making disks faster. Disks. Why Not Store Everything in Tapes?

COURSE 1. Database Management Systems

Introduction to Database Systems CSE 444

Transactions. ACID Properties of Transactions. Atomicity - all or nothing property - Fully performed or not at all

CSE 344 MARCH 5 TH TRANSACTIONS

CSC 261/461 Database Systems Lecture 21 and 22. Spring 2017 MW 3:25 pm 4:40 pm January 18 May 3 Dewey 1101

CS122 Lecture 15 Winter Term,

Database Systems CSE 414

Storing Data: Disks and Files. Storing and Retrieving Data. Why Not Store Everything in Main Memory? Chapter 7

SQL: Transactions. Introduction to Databases CompSci 316 Fall 2017

Database Management Systems Introduction to DBMS

Database Technology. Topic 8: Introduction to Transaction Processing

Storing Data: Disks and Files

Lecture 12. Lecture 12: The IO Model & External Sorting

Lecture 21. Lecture 21: Concurrency & Locking

L i (A) = transaction T i acquires lock for element A. U i (A) = transaction T i releases lock for element A

Example: Transfer Euro 50 from A to B

Introduction to Databases, Fall 2005 IT University of Copenhagen. Lecture 10: Transaction processing. November 14, Lecturer: Rasmus Pagh

Copyright 2016 Ramez Elmasri and Shamkant B. Navathe

Database Management Systems

Database Management System Prof. D. Janakiram Department of Computer Science & Engineering Indian Institute of Technology, Madras Lecture No.

Disks and Files. Jim Gray s Storage Latency Analogy: How Far Away is the Data? Components of a Disk. Disks

Database Management Systems CSEP 544. Lecture 9: Transactions and Recovery

TRANSACTION MANAGEMENT

Topics. File Buffer Cache for Performance. What to Cache? COS 318: Operating Systems. File Performance and Reliability

L9: Storage Manager Physical Data Organization

Outline. Failure Types

CSE 344 MARCH 25 TH ISOLATION

Outlines. Chapter 2 Storage Structure. Structure of a DBMS (with some simplification) Structure of a DBMS (with some simplification)

COSC344 Database Theory and Applications. Lecture 21 Transactions

What are Transactions? Transaction Management: Introduction (Chap. 16) Major Example: the web app. Concurrent Execution. Web app in execution (CS636)

CSCI-GA Database Systems Lecture 8: Physical Schema: Storage

Concurrency Control & Recovery

Introduction to Data Management CSE 414

Transaction Management: Introduction (Chap. 16)

XI. Transactions CS Computer App in Business: Databases. Lecture Topics

Practice and Applications of Data Management CMPSCI 345. Lecture 13: Transactions

Storing Data: Disks and Files

Transactions Processing (i)

CSE 530A ACID. Washington University Fall 2013

CSC 261/461 Database Systems Lecture 24

Distributed Systems

Chapter 22. Transaction Management

Storing Data: Disks and Files

Lecture 18: Reliable Storage

Database Systems. Announcement

ECE 650 Systems Programming & Engineering. Spring 2018

Overview of Transaction Management

STORING DATA: DISK AND FILES

TRANSACTION PROPERTIES

Introduction to Data Management CSE 344

Transaction Management. Pearson Education Limited 1995, 2005

Problems Caused by Failures

Introduction. Storage Failure Recovery Logging Undo Logging Redo Logging ARIES

Part IV I/O System. Chapter 12: Mass Storage Structure

Transaction Management

DHANALAKSHMI COLLEGE OF ENGINEERING, CHENNAI

CSE 544 Principles of Database Management Systems. Fall 2016 Lectures Transactions: recovery

Introduction to Data Management. Lecture #18 (Transactions)

1.264 Lecture 8. SQL continued Connecting to database servers

Transactions. Kathleen Durant PhD Northeastern University CS3200 Lesson 9

Databases - Transactions

Introduces the RULES AND PRINCIPLES of DBMS operation.

In This Lecture. Transactions and Recovery. Transactions. Transactions. Isolation and Durability. Atomicity and Consistency. Transactions Recovery

Transaction Management: Concurrency Control, part 2

Locking for B+ Trees. Transaction Management: Concurrency Control, part 2. Locking for B+ Trees (contd.) Locking vs. Latching

Transcription:

Introduction to Database Systems CSE 444 Lecture 14: Transactions in SQL October 26, 2007 Transactions Major component of database systems Critical for most applications; arguably more so than SQL Turing awards to database researchers: Charles Bachman 1973 Edgar Codd 1981 for inventing relational dbs Jim Gray 1998 for inventing transactions 1 2 Why Do We Need Transactions Concurrency control Recovery In the following examples, think of a transaction as meaning a procedure. A transaction commits when it ends successfully. A transaction rolls back when it aborts. 3 Concurrency control: Three Famous anomalies Dirty read T reads data written by T while T has not committed What can go wrong: T write more data (which T has already read), or T aborts Lost update Two tasks T and T both modify the same data T and T both commit Final state shows effects of only T, but not of T Inconsistent read One task T sees some but not all changes made by T 4 Dirty Reads Dirty Reads /* transfer $100 from account 1 to account 2 */ /* Compute total amount */ /* transfer $100 from account 1 to account 2 */ /* withdraw $100 */ If Account1.balance > 100 then Account1.balance = Account1.balance - 100 Account2.balance = Account2.balance + 100 else ROLLBACK X = Account1.balance; Y = Account2.balance; Z = X + Y; Print(Z); /* tentatively move money into account 2 */ Account2.balance = Account2.balance + 100 If Account1.balance > 100 then Account1.balance = Account1.balance - 100 else /* oops: remove $100 from Account 2 */ Account2.balance = Account2.balance - 100 ROLLBACK If Account2.balance > 100 then Account2.balance = Account2.balance - 100; DISPENSE MONEY else ROLLBACK What goes wrong? 5 Not needed (done by ROLLBACK) What goes wrong? 6 1

Lost Updates Inconsistent Read SET Price = Price 1.99 WHERE pname = Gizmo SET Price = Price*0.5 WHERE pname= Gizmo Two different users attempt to apply a discount. Will it work? 7 s SET quantity = quantity + 5 WHERE product = gizmo s SET quantity = quantity - 5 WHERE product = gadget SELECT sum(quantity) FROM Product Note: this is a form of dirty read 8 Protection against crashes Definition s SET quantity = quantity + 5 WHERE product = gizmo s SET quantity = quantity - 5 WHERE product = gadget Crash! A transaction = one or more operations, which reflects a single real-world transition In the real world, this happened completely or not at all Examples Transfer money between accounts Purchase a group of products Register for a class (either waitlist or allocated) If grouped in transactions, all problems in previous slides disappear What s wrong? 9 10 Transactions in SQL In ad-hoc SQL: Default: each statement = one transaction In a program: [SQL statements] or ROLLBACK (=ABORT) May be omitted: first SQL query starts txn 11 Revised Code SET Price = Price 1.99 WHERE pname = Gizmo SET Price = Price*0.5 WHERE pname= Gizmo Now it works like a charm 12 2

Transaction Properties ACID Atomic State shows either all the effects of txn, or none of them Consistent Txn moves from a state where integrity holds, to another where integrity holds Isolated Effect of txns is the same as txns running one after another (ie looks like batch mode) Durable Once a txn has committed, its effects remain in the database ACID: Atomicity Two possible outcomes for a transaction It commits: all the changes are made It aborts: no changes are made That is, transaction s activities are all or nothing 13 14 ACID: Consistency The state of the tables is restricted by integrity constraints Account number is unique Stock amount can t be negative Sum of debits and of credits is 0 Constraints may be explicit or implicit How consistency is achieved: Programmer makes sure a txn takes a consistent state to a consistent state The system makes sure that the txn is atomic ACID: Isolation A transaction executes concurrently with other transaction Isolation: the effect is as if each transaction executes in isolation of the others 15 16 ACID: Durability The effect of a transaction must continue to exists after the transaction, or the whole program has terminated Means: write data to disk (stable storage) 17 ROLLBACK If the app gets to a place where it can t complete the transaction successfully, it can execute ROLLBACK This causes the system to abort the transaction The database returns to the state without any of the previous changes made by activity of the transaction 18 3

Reasons for Rollback READ-ONLY Transactions User changes their mind ( ctl-c /cancel) Explicit in program, when app program finds a problem e.g. when qty on hand < qty being sold System-initiated abort System crash Housekeeping e.g. due to timeouts 19 INSERT INTO SmallProduct(name, price) SELECT pname, price FROM Product WHERE price <= 0.99 DELETE Product WHERE price <=0.99 SET TRANSACTION READ ONLY SELECT count(*) FROM Product SELECT count(*) FROM SmallProduct Makes it faster 20 Isolation Levels in SQL Isolation Level: Dirty Reads 1. Dirty reads SET TRANSACTION ISOLATION LEVEL READ UNTED Plane seat allocation function AllocateSeat( %request) SET ISOLATION LEVEL READ UNED 2. Committed reads SET TRANSACTION ISOLATION LEVEL READ TED 3. Repeatable reads SET TRANSACTION ISOLATION LEVEL REPEATABLE READ 4. Serializable transactions (default): SET TRANSACTION ISOLATION LEVEL SERIALIZABLE 21 What can go wrong? What can go wrong if only the function AllocateSeat modifies Seat? SELECT Seat.occupied FROM Seat If (x == 1) /* occupied */ ROLLBACK UPDATE Seat SET occupied = 1 22 function TransferMoney( %amount, %acc1, %acc2) Isolation Level: Read Committed Are dirty reads OK here? What if we switch the two updates? SELECT Account.balance FROM Account WHERE Account.number = %acc1 If (x < %amount) ROLLBACK UPDATE Account SET balance = balance+%amount WHERE Account.number = %acc2 UPDATE Account SET balance = balance-%amount WHERE Account.number = %acc1 Stronger than READ UNTED It is possible to read twice, and get different values SET ISOLATION LEVEL READ ED SELECT Seat.occupied FROM Seat /*..... More stuff here.... */ Let y = SELECT Seat.occupied FROM Seat /* we may have x y! */ 23 24 4

Isolation Level: Repeatable Read Isolation Level: Serializable Stronger than READ TED May see incompatible values: another txn transfers from acc. 55555 to 77777 SET ISOLATION LEVEL REPEATABLE READ SELECT Account.amount FROM Account WHERE Account.number = 555555 /*..... More stuff here.... */ Let y = SELECT Account.amount FROM Account WHERE Account.number = 777777 /* we may have a wrong x+y! */ 25 SET ISOLATION LEVEL SERIALIZABLE Strongest level.... Default WILL STUDY IN DETAILS IN A WEEK 26 The Mechanics of Disk Mechanical characteristics: Rotation speed (5400RPM) Number of platters (1-30) Number of tracks (<=10000) Number of bytes/track(10 5 ) Unit of read or write: disk block Once in memory: page Typically: 4k or 8k or 16k Arm assembly Disk head Cylinder Arm movement Spindle Tracks Sector Platters 27 Disk Access Characteristics Disk latency = time between when command is issued and when data is in memory Disk latency = seek time + rotational latency Seek time = time for the head to reach cylinder 10ms 40ms Rotational latency = time for the sector to rotate Rotation time = 10ms Average latency = 10ms/2 Transfer time = typically 40MB/s Disks read/write one block at a time 28 RAID Several disks that work in parallel Redundancy: use parity to recover from disk failure Speed: read from several disks at once Various configurations (called levels): RAID 1 = mirror RAID 4 = n disks + 1 parity disk RAID 5 = n+1 disks, assign parity blocks round robin RAID 6 = Hamming codes Buffer Management in a DBMS disk page free frame MAIN MEMORY DISK Page Requests from Higher Levels BUFFER POOL DB Data must be in RAM for DBMS to operate on it! Table of <frame#, pageid> pairs is maintained choice of frame dictated by replacement policy READ WRITE INPUT OUTUPT 29 30 5

Buffer Manager Needs to decide on page replacement policy LRU Clock algorithm Both work well in OS, but not always in DB Enables the higher levels of the DBMS to assume that the needed data is in main memory. 31 Least Recently Used (LRU) Order pages by the time of last accessed Always replace the least recently accessed P5, P2, P8, P4, P1, P9, P6, P3, P7 Access P6 P6, P5, P2, P8, P4, P1, P9, P3, P7 LRU is expensive (why?); the clock algorithm is good approx 32 Buffer Manager Why not use the Operating System for the task?? Main reason: need fine grained control for transactions Other reasons: - DBMS may be able to anticipate access patterns - Hence, may also be able to perform prefetching -DBMS needs the ability to force pages to disk, for recovery purposes Transaction Management and the Buffer Manager The transaction manager operates on the buffer pool Recovery: log-file write-ahead, then careful policy about which pages to force to disk Concurrency control: locks at the page level, multiversion concurrency control 33 Will discuss details during the next few lectures 34 6