transactions and locking rose-hulman institute of technology curt clifton
Post on 18-Dec-2015
212 views
TRANSCRIPT
![Page 1: Transactions and Locking Rose-Hulman Institute of Technology Curt Clifton](https://reader038.vdocument.in/reader038/viewer/2022110322/56649d225503460f949f853a/html5/thumbnails/1.jpg)
Transactions and Locking
Rose-Hulman Institute of Technology
Curt Clifton
![Page 2: Transactions and Locking Rose-Hulman Institute of Technology Curt Clifton](https://reader038.vdocument.in/reader038/viewer/2022110322/56649d225503460f949f853a/html5/thumbnails/2.jpg)
Outline ACID Transactions COMMIT and ROLLBACK Managing Transactions Locks
![Page 3: Transactions and Locking Rose-Hulman Institute of Technology Curt Clifton](https://reader038.vdocument.in/reader038/viewer/2022110322/56649d225503460f949f853a/html5/thumbnails/3.jpg)
The Setting Database systems are normally being accessed by
many users or processes at the same time Operating Systems also deal with concurrent access
OSs allow two people to edit a document at the same time. If both write, one’s changes get lost.
DB can and must do better
![Page 4: Transactions and Locking Rose-Hulman Institute of Technology Curt Clifton](https://reader038.vdocument.in/reader038/viewer/2022110322/56649d225503460f949f853a/html5/thumbnails/4.jpg)
Example Mom and Dad each deposit $100 from
different ATMs into your account at about the same time
![Page 5: Transactions and Locking Rose-Hulman Institute of Technology Curt Clifton](https://reader038.vdocument.in/reader038/viewer/2022110322/56649d225503460f949f853a/html5/thumbnails/5.jpg)
ACID Transactions Atomic
All or nothing Consistent
Constraints preserved Isolated
(Apparently) one user at a time Durable
Crashes can’t violate the other properties
![Page 6: Transactions and Locking Rose-Hulman Institute of Technology Curt Clifton](https://reader038.vdocument.in/reader038/viewer/2022110322/56649d225503460f949f853a/html5/thumbnails/6.jpg)
Transactions in SQL SQL supports transactions
Generic query interface Each statement issued is a transaction by itself
Programming interfaces A transaction begins with first SQL statement Ends with the procedure end (or an explicit end)
![Page 7: Transactions and Locking Rose-Hulman Institute of Technology Curt Clifton](https://reader038.vdocument.in/reader038/viewer/2022110322/56649d225503460f949f853a/html5/thumbnails/7.jpg)
Ending Transactions COMMIT completes a transaction
Modifications are now permanent in the database ROLLBACK ends transaction by aborting
No effects on the database! Failures (e.g., division by 0) also cause
ROLLBACK
![Page 8: Transactions and Locking Rose-Hulman Institute of Technology Curt Clifton](https://reader038.vdocument.in/reader038/viewer/2022110322/56649d225503460f949f853a/html5/thumbnails/8.jpg)
Another Example Assume the usual Sells(rest,soda,price)
relation Suppose that Majnoo’s Rest sells only Coke for
$1.50 and Salaam Cola for $1.75. Laila is querying Sells for
the highest and lowest price Majnoo charges. Majnoo decides
to stop selling Coke and Salaam Cola to starting only Juice at $2.00
![Page 9: Transactions and Locking Rose-Hulman Institute of Technology Curt Clifton](https://reader038.vdocument.in/reader038/viewer/2022110322/56649d225503460f949f853a/html5/thumbnails/9.jpg)
Laila’s Program Laila executes the following two SQL
statements Call this one “max”:
SELECT MAX(price) FROM SellsWHERE rest = 'Majnoo''s Rest';
“min”: SELECT MIN(price) FROM Sells
WHERE rest = 'Majnoo''s Rest';
![Page 10: Transactions and Locking Rose-Hulman Institute of Technology Curt Clifton](https://reader038.vdocument.in/reader038/viewer/2022110322/56649d225503460f949f853a/html5/thumbnails/10.jpg)
Majnoo’s Program At about the same time, Majnoo executes the
following SQL statements “del”
DELETE FROM SellsWHERE rest = 'Majnoo''s Rest';
“ins” INSERT INTO Sells
VALUES('Majnoo''s Rest', 'Juice', 2.00);
![Page 11: Transactions and Locking Rose-Hulman Institute of Technology Curt Clifton](https://reader038.vdocument.in/reader038/viewer/2022110322/56649d225503460f949f853a/html5/thumbnails/11.jpg)
Interleaving of Statements Constraints:
max must come before min del must come before ins
No other constraints on the order of the statements
![Page 12: Transactions and Locking Rose-Hulman Institute of Technology Curt Clifton](https://reader038.vdocument.in/reader038/viewer/2022110322/56649d225503460f949f853a/html5/thumbnails/12.jpg)
Example: Strange Interleaving Suppose the steps execute in the order:
max del ins min What answers does Laila see?
![Page 13: Transactions and Locking Rose-Hulman Institute of Technology Curt Clifton](https://reader038.vdocument.in/reader038/viewer/2022110322/56649d225503460f949f853a/html5/thumbnails/13.jpg)
Fixing the Problem: Transactions If we group Laila’s statements max min into
one transaction: Cannot see this inconsistency Will see Majnoo’s prices at some fixed time
![Page 14: Transactions and Locking Rose-Hulman Institute of Technology Curt Clifton](https://reader038.vdocument.in/reader038/viewer/2022110322/56649d225503460f949f853a/html5/thumbnails/14.jpg)
Problem: Undoing Changes Majnoo executes del ins
Changes his mind Reverses the changes, say by del', ins'
Suppose the order is: del ins max min del' ins'
What does Laila see?
![Page 15: Transactions and Locking Rose-Hulman Institute of Technology Curt Clifton](https://reader038.vdocument.in/reader038/viewer/2022110322/56649d225503460f949f853a/html5/thumbnails/15.jpg)
Solution If Majnoo executes del ins as a transaction, its
effect cannot be seen by others until the transaction executes COMMIT Instead of del' ins' he uses ROLLBACK instead Effects of transaction can never be seen.
![Page 16: Transactions and Locking Rose-Hulman Institute of Technology Curt Clifton](https://reader038.vdocument.in/reader038/viewer/2022110322/56649d225503460f949f853a/html5/thumbnails/16.jpg)
Transactions and Locks in SQL Server Transactions Ensure That Multiple Data
Modifications Are Processed Together Locks Prevent Update Conflicts
Transactions are serializable Locking is automatic Locks allow concurrent use of data
Concurrency Control
![Page 17: Transactions and Locking Rose-Hulman Institute of Technology Curt Clifton](https://reader038.vdocument.in/reader038/viewer/2022110322/56649d225503460f949f853a/html5/thumbnails/17.jpg)
Managing Transactions (outline) Transaction Recovery and Checkpoints Considerations for Using Transactions Setting the Implicit Transactions Option Restrictions on User-defined Transactions
![Page 18: Transactions and Locking Rose-Hulman Institute of Technology Curt Clifton](https://reader038.vdocument.in/reader038/viewer/2022110322/56649d225503460f949f853a/html5/thumbnails/18.jpg)
Transaction Recovery, CheckpointsTi
me
(and
pla
ce in
log)
Database
Transaction Log
Transaction LogINSERT …DELETE …UPDATE ……
INSERT …DELETE …UPDATE ……
INSERT …DELETE …UPDATE ……
INSERT …DELETE …UPDATE ……
INSERT …DELETE …UPDATE ……
CHECKPOINT
CRASH!!!
COMMIT
COMMIT
COMMIT
Recovery Needed? NONERecovery Needed? NONE
Recovery Needed? ROLL FORWARDRecovery Needed? ROLL FORWARD
Recovery Needed? ROLL BACKRecovery Needed? ROLL BACK
Recovery Needed? ROLL FORWARDRecovery Needed? ROLL FORWARD
Recovery Needed? ROLL BACKRecovery Needed? ROLL BACK
ZOT!
![Page 19: Transactions and Locking Rose-Hulman Institute of Technology Curt Clifton](https://reader038.vdocument.in/reader038/viewer/2022110322/56649d225503460f949f853a/html5/thumbnails/19.jpg)
Considerations when Using Transactions
Transaction Guidelines Keep transactions as small as possible Use caution with certain Transact-SQL
statements Avoid transactions that require user interaction
Issues in Nesting Transactions Allowed, but not recommended Use @@trancount to determine nesting level
![Page 20: Transactions and Locking Rose-Hulman Institute of Technology Curt Clifton](https://reader038.vdocument.in/reader038/viewer/2022110322/56649d225503460f949f853a/html5/thumbnails/20.jpg)
SET IMPLICIT_TRANSACTIONS ONSET IMPLICIT_TRANSACTIONS ON
Implicit Transactions Automatically Starts a Transaction When You
Execute Certain Statements Nested Transactions Are Not Allowed Transaction Must Be Explicitly Completed
with COMMIT or ROLLBACK By Default, Setting Is Off
![Page 21: Transactions and Locking Rose-Hulman Institute of Technology Curt Clifton](https://reader038.vdocument.in/reader038/viewer/2022110322/56649d225503460f949f853a/html5/thumbnails/21.jpg)
ALTER DATABASE BACKUP LOG CREATE DATABASE DROP DATABASE RECONFIGURE RESTORE DATABASE RESTORE LOG UPDATE STATISTICS
Restrictions on Transactions Certain Statements May Not Be Included in a
Transaction:
![Page 22: Transactions and Locking Rose-Hulman Institute of Technology Curt Clifton](https://reader038.vdocument.in/reader038/viewer/2022110322/56649d225503460f949f853a/html5/thumbnails/22.jpg)
How much ACID have we done? Explicit transactions support Atomicity Automatic rollback on errors supports
Consistency Transaction log supports Durability
![Page 23: Transactions and Locking Rose-Hulman Institute of Technology Curt Clifton](https://reader038.vdocument.in/reader038/viewer/2022110322/56649d225503460f949f853a/html5/thumbnails/23.jpg)
Locks Support Isolation
![Page 24: Transactions and Locking Rose-Hulman Institute of Technology Curt Clifton](https://reader038.vdocument.in/reader038/viewer/2022110322/56649d225503460f949f853a/html5/thumbnails/24.jpg)
Lockable Resources ItemItem DescriptionDescription
RID Row identifier
Key Row lock within an index
Page
Extent
Table
Data page or index page
Group of pages
Entire table
Database Entire database
![Page 25: Transactions and Locking Rose-Hulman Institute of Technology Curt Clifton](https://reader038.vdocument.in/reader038/viewer/2022110322/56649d225503460f949f853a/html5/thumbnails/25.jpg)
Types of Locks Basic Locks
Shared Exclusive
Special Situation Locks Intent Update Schema Bulk update
![Page 26: Transactions and Locking Rose-Hulman Institute of Technology Curt Clifton](https://reader038.vdocument.in/reader038/viewer/2022110322/56649d225503460f949f853a/html5/thumbnails/26.jpg)
Lock Compatibility Locks May or May Not Be Compatible with
Other Locks Examples
Shared locks are compatible with all locks except exclusive
Exclusive locks are not compatible with any other locks
Update locks are compatible only with shared locks
![Page 27: Transactions and Locking Rose-Hulman Institute of Technology Curt Clifton](https://reader038.vdocument.in/reader038/viewer/2022110322/56649d225503460f949f853a/html5/thumbnails/27.jpg)
DynamicLocking
TablePageRow
Cost
GranularityLocking CostConcurrency Cost
![Page 28: Transactions and Locking Rose-Hulman Institute of Technology Curt Clifton](https://reader038.vdocument.in/reader038/viewer/2022110322/56649d225503460f949f853a/html5/thumbnails/28.jpg)
Week Eight Deliverables Sample Reports
See rubric on Angel First draft due by Friday night (50 points) New versions due week nine (100 points) Meet with me during lab time today to agree
on reports!