Department of Computer Science University of Cyprus EPL646 Advanced Topics in Databases. Lecture 8. Transaction Management Overview



Σχετικά έγγραφα
Department of Computer Science University of Cyprus EPL646 Advanced Topics in Databases. Lecture 8. Transaction Management Overview

Department of Computer Science University of Cyprus EPL446 Advanced Database Systems. Lecture 14. Transactions and Schedules

Συστήματα Διαχείρισης Βάσεων Δεδομένων

Transaction Processing (Διαχείριση Δοσοληψιών)

Αρχεία και Βάσεις Δεδομένων

Locking to ensure serializability

2 Composition. Invertible Mappings

EE512: Error Control Coding

TMA4115 Matematikk 3

Αρχεία και Βάσεις Δεδομένων

The Simply Typed Lambda Calculus

Phys460.nb Solution for the t-dependent Schrodinger s equation How did we find the solution? (not required)

Instruction Execution Times

Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων. Εξάμηνο 7 ο

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 19/5/2007

HOMEWORK 4 = G. In order to plot the stress versus the stretch we define a normalized stretch:

Section 8.3 Trigonometric Equations

Στο εστιατόριο «ToDokimasesPrinToBgaleisStonKosmo?» έξω από τους δακτυλίους του Κρόνου, οι παραγγελίες γίνονται ηλεκτρονικά.

Lecture 2. Soundness and completeness of propositional logic

derivation of the Laplacian from rectangular to spherical coordinates

Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων. Εξάμηνο 7 ο

Physical DB Design. B-Trees Index files can become quite large for large main files Indices on index files are possible.

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 6/5/2006

Concrete Mathematics Exercises from 30 September 2016

CHAPTER 25 SOLVING EQUATIONS BY ITERATIVE METHODS

3.4 SUM AND DIFFERENCE FORMULAS. NOTE: cos(α+β) cos α + cos β cos(α-β) cos α -cos β

Dynamic types, Lambda calculus machines Section and Practice Problems Apr 21 22, 2016

4.6 Autoregressive Moving Average Model ARMA(1,1)

The challenges of non-stable predicates

Potential Dividers. 46 minutes. 46 marks. Page 1 of 11

Απόκριση σε Μοναδιαία Ωστική Δύναμη (Unit Impulse) Απόκριση σε Δυνάμεις Αυθαίρετα Μεταβαλλόμενες με το Χρόνο. Απόστολος Σ.

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων Μανουσόπουλος Χρήστος

C.S. 430 Assignment 6, Sample Solutions

Example Sheet 3 Solutions

Test Data Management in Practice

Statistical Inference I Locally most powerful tests

Overview. Transition Semantics. Configurations and the transition relation. Executions and computation

Matrices and Determinants

Example of the Baum-Welch Algorithm

the total number of electrons passing through the lamp.

ΚΥΠΡΙΑΚΟΣ ΣΥΝΔΕΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY 21 ος ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Δεύτερος Γύρος - 30 Μαρτίου 2011

Homework 3 Solutions

Επεξεργασία οσοληψιών

Section 7.6 Double and Half Angle Formulas

Εγκατάσταση λογισμικού και αναβάθμιση συσκευής Device software installation and software upgrade

Lecture 2: Dirac notation and a review of linear algebra Read Sakurai chapter 1, Baym chatper 3

Code Breaker. TEACHER s NOTES

Other Test Constructions: Likelihood Ratio & Bayes Tests

Ordinal Arithmetic: Addition, Multiplication, Exponentiation and Limit

DESIGN OF MACHINERY SOLUTION MANUAL h in h 4 0.

Approximation of distance between locations on earth given by latitude and longitude

ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ ΙΙ. Επεξεργασία οσοληψιών. το πώς βλέπει το Σ Β τα προγράµµατα των χρηστών. οσοληψία (transaction)

Modbus basic setup notes for IO-Link AL1xxx Master Block

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΝΟΣΗΛΕΥΤΙΚΗΣ

Second Order RLC Filters

department listing department name αχχουντσ ϕανε βαλικτ δδσϕηασδδη σδηφγ ασκϕηλκ τεχηνιχαλ αλαν ϕουν διξ τεχηνιχαλ ϕοην µαριανι

Advanced Subsidiary Unit 1: Understanding and Written Response

Math 6 SL Probability Distributions Practice Test Mark Scheme

Right Rear Door. Let's now finish the door hinge saga with the right rear door

Μηχανική Μάθηση Hypothesis Testing

Srednicki Chapter 55

ANSWERSHEET (TOPIC = DIFFERENTIAL CALCULUS) COLLECTION #2. h 0 h h 0 h h 0 ( ) g k = g 0 + g 1 + g g 2009 =?

6.1. Dirac Equation. Hamiltonian. Dirac Eq.

Every set of first-order formulas is equivalent to an independent set

Συστήματα Διαχείρισης Βάσεων Δεδομένων

Section 9.2 Polar Equations and Graphs

Block Ciphers Modes. Ramki Thurimella

Δοσοληψίες Βάσεις Δεδομένων Διδάσκων: Μαρία Χαλκίδη

SCITECH Volume 13, Issue 2 RESEARCH ORGANISATION Published online: March 29, 2018

Main source: "Discrete-time systems and computer control" by Α. ΣΚΟΔΡΑΣ ΨΗΦΙΑΚΟΣ ΕΛΕΓΧΟΣ ΔΙΑΛΕΞΗ 4 ΔΙΑΦΑΝΕΙΑ 1

How to register an account with the Hellenic Community of Sheffield.

Assalamu `alaikum wr. wb.

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 11/3/2006

Nowhere-zero flows Let be a digraph, Abelian group. A Γ-circulation in is a mapping : such that, where, and : tail in X, head in

5.4 The Poisson Distribution.

Econ 2110: Fall 2008 Suggested Solutions to Problem Set 8 questions or comments to Dan Fetter 1

PARTIAL NOTES for 6.1 Trigonometric Identities

forms This gives Remark 1. How to remember the above formulas: Substituting these into the equation we obtain with

ST5224: Advanced Statistical Theory II

Section 1: Listening and responding. Presenter: Niki Farfara MGTAV VCE Seminar 7 August 2016

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΙI

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΑ ΤΜΗΜΑ ΝΑΥΤΙΛΙΑΚΩΝ ΣΠΟΥΔΩΝ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ ΣΤΗΝ ΝΑΥΤΙΛΙΑ

Math221: HW# 1 solutions

b. Use the parametrization from (a) to compute the area of S a as S a ds. Be sure to substitute for ds!

1) Formulation of the Problem as a Linear Programming Model

UNIVERSITY OF CALIFORNIA. EECS 150 Fall ) You are implementing an 4:1 Multiplexer that has the following specifications:

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Ψηφιακή Οικονομία. Διάλεξη 7η: Consumer Behavior Mαρίνα Μπιτσάκη Τμήμα Επιστήμης Υπολογιστών

Αλγόριθμοι και πολυπλοκότητα NP-Completeness (2)

Chapter 6: Systems of Linear Differential. be continuous functions on the interval

Οδηγίες Αγοράς Ηλεκτρονικού Βιβλίου Instructions for Buying an ebook

Durbin-Levinson recursive method

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 24/3/2007

Πλειάδες φαντάσματα (phantoms)

ω ω ω ω ω ω+2 ω ω+2 + ω ω ω ω+2 + ω ω+1 ω ω+2 2 ω ω ω ω ω ω ω ω+1 ω ω2 ω ω2 + ω ω ω2 + ω ω ω ω2 + ω ω+1 ω ω2 + ω ω+1 + ω ω ω ω2 + ω

EPL 603 TOPICS IN SOFTWARE ENGINEERING. Lab 5: Component Adaptation Environment (COPE)

Finite Field Problems: Solutions

Abstract Storage Devices

Inverse trigonometric functions & General Solution of Trigonometric Equations

Mean bond enthalpy Standard enthalpy of formation Bond N H N N N N H O O O

Transcript:

Department of Computer Science University of Cyprus EPL646 Advanced Topics in Databases Lecture 8 Transaction Management Overview Chapter 17.1-17.6: Elmasri & Navathe, 5ED Chapter 16.1-16.3 and 16.6: Ramakrishnan & Gehrke, 3ED Demetris Zeinalipour http://www.cs.ucy.ac.cy/~dzeina/courses/epl646 8-1

Overview of Transaction Processing (Επισκόπηση Επεξεργασίας Δοσοληψιών) We will now focus on Concurrency Control (Έλεγχο Ταυτοχρονίας) and Recovery Management (Τεχνικές Ανάκαμψης) in cases of failures THIS PART THIS PART 8-2

Lecture Outline Transaction Management Overview 16.0) Introduction to Transactions (Δοσοληψίες ή Συναλλαγές) 16.1) The ACID (Atomicity-Consistency-Isolation- Durability) Properties 16.2) Transactions and Schedules (Χρονοπρόγραμμα) 16.3) Concurrent Executions of Transactions (Ταυτόχρονες Εκτελέσεις Δοσοληψιών) and Problems 16.6) Transaction Support in SQL Below topics will be covered as part of subsequent lectures 16.4) Concurrency with Locks (Κλειδαριές) 16.5) Concurrency with Timestamps (Χρονόσημα) 16.7) Introduction to Crash Recovery (Ανάκαμψη Σφαλμάτων) 8-3

Introduction to Transactions (Εισαγωγή σε Δοσοληψίες) The concept of transaction (δοσοληψία) provides a mechanism for describing logical units of database processing. Analogy: A transaction is to a DBMS as a process is to an Operating System. Transaction Processing Systems (Συστήματα Επεξεργασίας Δοσοληψιών) are systems with large databases and hundreds of concurrent users executing database transactions Examples: Airline Reservations (Αεροπορικές Κρατήσεις), Banking (Εφαρμογές Τραπεζικού Τομέα), Stock Markets (Χρηματιστήρια), Supermarkets (Υπεραγορές), 8-4

Introduction to Transactions (Εισαγωγή σε Δοσοληψίες) Transaction (Δοσοληψία) (Xact), is an atomic (i.e., allor-nothing) sequence of database operations (i.e., readwrite operations). It is the DBMS s abstract view of a user program! A transaction (collection of actions) makes transformations of system states while preserving the database consistency (συνέπεια βάσης) next slide. DB in a consistent state DB may be in an inconsistent state during execution DB in a consistent state Execution of a EPL646: Begin Advanced transaction Topics T in Databases transaction - Demetris T Zeinalipour End (University transaction of Cyprus) T 8-5

DB Consistency vs. Trans. Consistency (Συνέπεια ΒΔ vs. Συνέπεια Δοσοληψίας) Database Consistency (Συνέπεια Βάσης) A database is in a consistent state if it obeys all of the Integrity Constraints (Κανόνες Ακεραιότητας) defined over it. Examples of Integrity Constraints: Domain Constraints (Πεδίου Ορισμού): e.g., SID must be integer Key Constraints (Κλειδιού): e.g., no 2 students have the same SID Foreign Key Constraints (Ξένου Κλειδιού): e.g., DepartmentID in Student must match the DepartmentID in Department s table. Single Table Constraints: e.g., CHECK (age>18 AND age<25) Multiple Table Constraints: e.g., Create ASSERTION C CHECK ((SELECT A) + (SELECT B) < 10) Transaction consistency (Συνέπεια Δοσοληψίας) Complements Database consistency by incorporating user semantics (e.g., σημασιολογία όπως ορίζεται από τον χρήστη) T.C is the user s responsibility (e.g., previous example) 8-6

Introduction to Transactions (Εισαγωγή σε Δοσοληψίες) One way of specifying the transaction boundaries is by specifying explicit BEGIN TRANSACTION and END TRANSACTION statements in an application program Transaction Example in MySQL START TRANSACTION; SELECT @A:=SUM(salary) FROM table1 WHERE type=1; UPDATE table2 SET summary=@a WHERE type=1; COMMIT; Transaction Example in Oracle (same with SQL Server) When you connect to the database with sqlplus (Oracle command-line utility that runs SQL and PL/SQL commands interactively or from a script) a transaction begins. Once the transaction begins, every SQL DML (Data Manipulation Language) statement you issue subsequently becomes a part of this transaction Transaction Example in C: See Next Slide Note that the given example has no explicit START/END statements as the whole program is essentially 1 transaction (as the previous example with Oracle s sqlplus utility. 8-7

Transaction Consistency Example with Embedded SQL The below example shows a Transaction main { } constraint (not captured by ICs) EXEC SQL BEGIN DECLARE SECTION; // define C host program variables (accessible in SQL environment) char flight_no[6], customer_id[20]; // these host-language variable are prefixed with : in SQL statements char day; EXEC SQL END DECLARE SECTION; scanf( %s %d %s, flight_no, day, customer_id); EXEC SQL UPDATE FLIGHT SET STSOLD = STSOLD + 1 WHERE FNO = :flight_no AND DATE = :day; DB in inconsistent state EXEC SQL INSERT INTO FC(FNO, DATE, CID, SPECIAL); VALUES(:flight_no, :day, :customer_id, null); Consider an airline reservation example with the relations*: FLIGHT(FNO, DATE, SRC, DEST, STSOLD) CUST(CID, ADDR) FC(FNO, DATE, CID, SPECIAL) Sell a seat on a given flight and date by increasing the SeaTSOLD attribute Store the sale in the Flight- Customer table If only the first action is executed then relations FLIGHT and FC will be inconsistent Although not a concurrent program, we need to ensure transaction consistency (all-or-nothing)! printf( Reservation completed ); return(0); * We make some simplifying assumptions regarding the schema and constraints 8-8

Introduction to Transactions (Εισαγωγή σε Δοσοληψίες) Things get even more complicated if we have several DBMS programs (transactions) executed concurrently. Why do we need concurrent executions? It is essential for good DBMS performance! Disk accesses are frequent, and relatively slow Overlapping I/O with CPU activity increases throughput and response time. What is the problem with concurrent transactions? Interleaving (Παρεμβάλλοντας) transactions might lead the system to an inconsist state (like previous example): Scenario: A Xact prints the monthly bank account statement for a user U (one bank transaction at-a-time).before finalizing the report another Xact withdraws $X from user U. Result: Although the report contains an updated final balance, it shows nowhere the bank transaction that caused the decrease (unrepeatable read problem, explained next) A DBMS guarantees that these problems will not arise. Users are given the impression that the transactions are executed sequentially (σειριακά), the one after the other. 8-9

Introduction to Transactions (Εισαγωγή σε Δοσοληψίες) State Diagram for Transaction Execution (Διάγραμμα Καταστάσεων για την Εκτέλεση Δοσοληψιών) Active: When Xact begins Partially Committed: When Xact ends, several recovery checks take place making sure that the DB can always recover to a consistent state Failed: If Xact aborts for any reason (rollback might be necessary to return the system to a consistent state) Committed: After partial committed checks are successful. Once committed we never return (roll-back) to a previous state 8-10

The ACID properties (Οι ιδιότητες ACID) What are the fundamental (θεμελιώδεις) properties that a DBMS must enforce so that data remains consistent (in the face of concurrent access & failures)? A DBMS needs to enforce four (4) properties: Atomicity Consistency Isolation - Durability Ατομικότητα Συνέπεια - Απομόνωση Μονιμότητα Jim Gray defined the key transaction properties of a reliable system in the late 1970. Acronym ACID was coined by Reuter and Haerder in 1983 Reuter, Andreas; Haerder, Theo "Principles of Transaction-Oriented Database Recovery". ACM Computing Surveys (ACSUR) 15 (4): pp. 287-317, 1983 8-11

The ACID properties (Οι ιδιότητες ACID) 1. Atomicity (Ατομικότητα): All or nothing! An executing transaction completes in its entirety (i.e., ALL) or it is aborted altogether (i.e., NOTHING). e.g., Transfer_Money(Amount, X, Y) means i) DEBIT(Amount, X); ii) CREDIT(Amount, Y). Either both take place or none. Reasons for Incomplete Transactions Anomaly Detection (e.g., Constraint violation) or System Crash (e.g., power) Responsibility: Recovery Manager (use log file to record all writes) 2. Consistency (Συνέπεια): Start & End Consistent! If each Transaction is consistent, and the DB starts consistent, then the Database ends up consistent. If a transaction violates the database s consistency rules, the entire transaction will be rolled back and the database will be restored to a state consistent with those rules Responsibility: User (DB only enforcing IC rules) 8-12

The ACID properties (Οι ιδιότητες ACID) 3. Isolation (Απομόνωση): See your own data only! An executing transaction cannot reveal its (incomplete) results before it commits. Consequently, the net effect is identical to executing all transactions, the one after the other in some serial order. e.g., if two transactions T1 and T2 exists, then the output is guaranteed to be either T1, T2 or T2, T1 (The DBMS cannot guarantee the order of execution, that is the user s job!) see example next page Responsibility: Lock Manager (i.e., Concurrency Control Manager) 4. Durability (Μονιμότητα): DBMS Cannot Regret! Once a transaction commits, the system must guarantee that the results of its operations will never be lost, in spite of subsequent failures. Responsibility: Recovery Manager (use log file to record all writes) 8-13

Notation for Transactions (Σημειογραφία για Δοσοληψίες) Actions executed by a transaction include reads and writes of database objects Notation R T (O): The Transaction T Reads an Object O. W T (O): The Transaction T Writes an Object O. When Transaction is clear in context we shall omit the T Although written, the data is in really pending until committed. Commit T : Complete successfully writing data to disk Abort T : Terminate and undo all carried out actions Assumptions Transaction Communication only through the DBMS Database Objects: Static Collection (i.e., tables, etc. not added/removed dynamic case more complex) 8-14

Transactions and Schedules (Δοσοληψίες και Χρονοπρόγραμμα) Schedule (Χρονοπρόγραμμα) List of actions (read, write, abort, or commit) from a set (ομάδας) of transactions (Τ1, Τ2, ) where the order of actions inside each transaction does not change. e.g., if Τ1=, then, is not the same schedule (as it is in opposite order) Schedule Τ1 Τ2 ----------------- R(C) W(C) Note that the DBMS might carry out other actions as well (e.g., evaluation arithmetic expressions). Yet these do not affect the other transactions, thus will be omitted from our presentation We shall introduce Commits/Aborts subsequently. 8-15

Transactions and Schedules (Δοσοληψίες και Χρονοπρόγραμμα) Serial Schedule (Σειριακό Χρονοπρόγραμμα) A schedule in which the different transactions are NOT interleaved (i.e., transactions are executed from start to finish one-by-one) Serial Schedule Τ1 Τ2 --------------------- Serial Schedule Τ1 Τ2 --------------------- N! Possible Serial Schedules, where N the number of Xacts 8-16

Problems due to Interleaved Xact (Προβλήματα από την Παρεμβολή Δοσοληψιών) Problems that arise when interleaving Transactions. Problem 1: Reading Uncommitted Data (WR Conflicts) Reading the value of an uncommitted object might yield an inconsistency W R Dirty Reads or Write-then-Read (WR) Conflicts. In Greek: Ασυνεπείς αναγνώσεις Problem 2: Unrepeatable Reads (RW Conflicts) Reading the same object twice might yield an inconsistency Read-then-Write (RW) Conflicts (ή Write-After-Read) In Greek: Μη-επαναλήψιμες αναγνώσεις Problem 3: Overwriting Uncommitted Data (WW Conflicts) Overwriting an uncommitted object might yield an inconsistency Lost Update or Write-After-Write (WW) Conflicts. In Greek: Απώλειες ενημερώσεων Remark: There is no notion of RR-Conflict as no object is changed R R W W W 8-17

Reading Uncommitted Data (WR Conflicts) (Ασυνεπείς αναγνώσεις) Reading the value of an uncommitted object yields an inconsistency To illustrate the WR-conflict consider the following problem: T1: Transfer $100 from Account A to Account B T2: Add the annual interest of 6% to both A and B. (Correct)Serial Schedule (Correct)Serial Schedule WR-Conflict (Wrong) Trace A=A-100 B=B+100 A=A*1.06 B=B*1.06 Τ1 Τ2 Trace A=A*1.06 B=B*1.06 A=A-100 B=B+100 Τ1 Τ2 Trace A=A-100 A=A*1.06 B=B*1.06 B=B+100 Τ1 Τ2 Dirty Read Problem caused by the WR-Conflict? Account B was credited with the interest on a smaller amount (i.e., 100$ less), thus the result is not equivalent to the serial schedule 8-18

Unrepeatable Reads (RW Conflicts) (Μη-επαναλήψιμες αναγνώσεις) Reading the same object twice yields an inconsistency To illustrate the RW-conflict consider the following problem: T1: Print Value of A T2: Decrease Global counter A by 1. WR-Conflict (Wrong) Trace A=10 A=10 A=A-1=9 A=9 Τ1 Τ2 Write-after-Read Problem caused by the RW-Conflict? Although the A counter is read twice within T1 (without any intermediate change) it has two different values (unrepeatable read)! what happens if T2 aborts? Τ1 has shown an incorrect result. Note that if I read at this point we would see 9 rather than 10 (i.e., read is unrepeatable) 8-19

Overwriting Uncommitted Data (WW Conflicts) (Μη-επαναλήψιμες αναγνώσεις) Overwriting an uncommitted object yields an inconsistency To illustrate the WW-conflict consider the following problem: Constr: Salary of employees A and B must be kept equal T1: Set Salary to 1000; T2: Set Salary equal to 2000 (Correct)Serial Schedule (Correct)Serial Schedule WW-Conflict (Wrong) Trace A=1000 B=1000 A=2000 B=2000 Τ1 Τ2 Trace A=2000 B=2000 A=1000 B=1000 Τ1 Τ2 Trace A=1000 A=2000 B=2000 B=1000 Τ1 Τ2 Lost Update Lost Update * Note: Client certainly prefers the 1 st than the 2 nd schedule (final amount is larger)! Problem caused by the WW-Conflict? Employee A gets a salary of 2000 while employee B gets a salary of 1000, thus result is not equivalent to the serial schedule! 8-20

Lecture Roadmap Transactions and Schedules 16.2) Transactions and Schedules (Χρονοπρόγραμμα) Serial Schedule (Σειριακό Χρονοπρόγραμμα) one after the other Complete Schedule (Πλήρες Χρονοπρόγραμμα) with Commit, Abort 17.1) Serializability (Σειριοποιησιμότητα) Correctness Measure of some Schedule Why is it useful? It answers the question: Will an interleaved schedule execute correctly i.e., a Serializable schedule will execute as correctly as serial schedule but in an interleaved manner! 17.1) Recoverability (Επαναφερσιμότητα) Recoverability Measure of some Schedule. Why is it useful? It answers the question: Do we need to rollback a some (or all) transactions in an interleaved schedule after some Failure (e.g., ABORT) i.e., in a Recoverable schedule no transaction needs to be rolled back (διαδικασία επιστροφής) once committed! 8-25

Transactions and Schedules (Δοσοληψίες και Χρονοπρόγραμμα) Serial Schedule (Σειριακό Χρονοπρόγραμμα) A schedule in which the different transactions are NOT interleaved (i.e., transactions are executed from start to finish one-by-one) Serial Schedule Τ1 Τ2 --------------------- Serial Schedule Τ1 Τ2 --------------------- N! Possible Serial Schedules, where N the number of Transactions 8-27

Transactions and Schedules (Δοσοληψίες και Χρονοπρόγραμμα) Complete Schedule (Πλήρες Χρονοπρόγραμμα) A schedule that contains either a commit (ολοκλήρωση δοσοληψίας) or an abort (ματαίωση δοσοληψίας) action for EACH transaction.* Complete Schedule Τ1 Τ2 --------------------- Commit Abort Complete Schedule Τ1 Τ2 --------------------- Commit Abort Complete (Serial) Schedule Τ1 Τ2 --------------------- Commit Abort * Note: consequently, a complete schedule will not contain any active transactions at the end of the schedule 8-28

Transactions and Schedules (Δοσοληψίες και Χρονοπρόγραμμα) Interleaved Schedules of transactions improve performance Throughput (ρυθμαπόδοση): More Xacts per seconds; and Response Time (χρόνος απόκρισης): A short transaction will not get stuck behind a long-running transaction Yet it might lead the DB to an inconsistent state as we have shown Serial schedule (σειριακό χρονοπρόγραμμα) is slower but guarantees consistency (correctness) We seek to identify schedules that are: As fast as interleaved schedules. As consistent as serial schedules 8-29

Transactions and Schedules (Δοσοληψίες και Χρονοπρόγραμμα) We shall now characterize different schedules based on the following two properties: A. Based on Serializability (Σειριοποιησιμότητα) We shall ignore Commits and Aborts for this section Characterize which schedules are correct when concurrent transactions are executing. Conflict Serializable Schedule (Σειριοποιησιμότητα Συγκρούσεων) View Serializable Schedule (Σειριοποιησιμότητα Όψεων) B. Based on Recoverability (Επαναφερσιμότητα) Commits and Aborts become important for this section! Characterize which schedules can be recovered and how easily. Recoverable Schedule (Επαναφέρσιμο Χρονοπρόγραμμα). Cascadeless schedule (Χρονοπρ. χωρίς διαδιδόμενη ανάκληση). 8-30 EPL646: Strict Advanced Schedules Topics in Databases (Αυστηρό - Demetris Χρονοπρόγραμμα). Zeinalipour (University of Cyprus)

Characterizing Schedules based on: Serializability Recoverability Conflicting Actions (Συγκρουόμενες Πράξεις) Conflicting Actions (Συγκρουόμενες Πράξεις) Two or more actions are said to be in conflict if: The actions belong to different transactions. At least one of the actions is a write operation. The actions access the same object (read or write). The following set of actions is conflicting: T1:R(X), T2:W(X), T3:W(X) While the following sets of actions are not: T1:R(X), T2:R(X), T3:R(X) T1:R(X), T2:W(Y), T3:R(X) // No Write on same object // No Write on same object T1 T2 T3 R(X) W(X) W(X) 8-31

Characterizing Schedules based on: Serializability Recoverability Conflict Equivalence (Ισοδυναμία Συγκρούσεων) Conflict Equivalence (Ισοδυναμία Συγκρούσεων) The schedules S1 and S2 are said to be conflict-equivalent if the following conditions are satisfied: Both schedules S1 and S2 involve the same set of transactions (including ordering of actions within each transaction). The order (διάταξη) of each pair of conflicting actions in S1 and S2 are the same. Why is the order of Conflicts important? If two conflicting operations are applied in different orders, the net effect can be different on the database or on other transactions in the schedule. See example below: Example: Τ1 Τ2 Τ1 Τ2 A=5 A=A+1=6 A=6 A=A+1=7 -------------------------- NOT Conflict Equivalent to: A=5 A=A+1=6 A=6 A=6 Order -------------------------- of conflict is different NOT Conflict Equivalent to: A=5 A=5 A=A+1=6 A=A+1=6 A=A+1=7 (Alth. Result Now Wrong EPL646: Advanced Topics still same) in Databases - Demetris Zeinalipour Result! (University of Cyprus) * Note that non-conflicting operations can arbitrary be swapped around without compromising the order. Τ1 Τ2 -------------------------- Order and conflicts are different 8-32

Characterizing Schedules based on: Serializability Recoverability Conflict Serializability (Σειριοποιησιμότητα Συγκρούσεων) Conflict Serializability (Σειριοποιήσιμο Συγκρούσεων) When the schedule is conflict-equivalent (ισοδύναμο συγκρούσεων) to some (any!) serial schedule. Serializable == Conflict Serializable (that definition is in some textbooks different) Serial Schedule Τ1 Τ2 Serializable Schedule A Τ1 Τ2 Order of conflicts same to T1; T2 Serializable Schedule B Τ1 Order of conflicts same to T2;T1 Τ2 8-33

Characterizing Schedules based on: Serializability Recoverability Conflict Serializability (Σειριοποιησιμότητα Συγκρούσεων) Why is Conflict Serializability important? We have already said that any serial schedule leaves the DB in a consistent (correct) state, but is inefficient i.e., T1; T2 is as correct as T2; T1 (although they might have a different outcome). Serializable!= Serial: NOT the same thing Being Serializable implies: A.That the schedule is a correct schedule. It will leave the database in a consistent state. The interleaving is appropriate and will result in a state as if the transactions were serially executed. B.That a schedule is a efficient (interleaved) schedule That parameter makes it better than Serial! 8-34

Characterizing Schedules based on: Serializability Recoverability Testing for Serializability (Έλεγχος Σειριοποιησιμότητας) How can we test if a schedule is Conflict Serializable? There is a simple algorithm detailed next (that is founded on a Precedence Graph) Does the DBMS utilizes this algorithm? NO We detail it only to gain a better understanding of the definitions. Why is the DBMS not using it? Serializability is hard to check at runtime Difficult to determine beforehand how the operations in a schedule will be interleaved (as it depends on the OS) In the next lecture, we will see that a DBMS utilizes a set of protocols (e.g., 2PL or other Concurrency Control techniques w/out locking) that guarantee that a schedule is always serializable. 8-35

Characterizing Schedules based on: Serializability Recoverability Precedence Graph (Γράφος Προτεραιότητας) Why is it useful? To find if a schedule is Conflict Serializable A Precedence Graph (Γράφος Προτεραιότητας) for a schedule S contains: A node for each committed transaction in S An arch from T i to T j, if an action of T i precedes (προηγείται) and conflicts (συγκρούεται) with one of T j s actions. Precedence Graph Τ1 Τ2 T3 -------------------------------------- T1 T2 Cycle exists! T3 A schedule S is conflict serializable if and only if its precedence graph is acyclic. The above schedule is not Conflict Serializable! 8-36

Characterizing Schedules based on: Serializability Recoverability Conflict Serializability Testing (Έλεγχος Σειριοποιησιμότητας Συγκρούσεων) Precedence Graph T1 T2 Write_item(z) T3 Cycles exist! Above schedule is ΝΟΤ Conflict Serializable! Although efficient (interleaved) the above will NOT produce a correct result! 8-37

Characterizing Schedules based on: Serializability Recoverability View Equivalence (Ισοδυναμία Όψεων) Let us now relax (χαλαρώσουμε) the definition of equivalence (and serializability) of schedules by introducing the notion of view equivalence serializability. In View Equivalence, respective transactions in the two schedules read and write the same data values ("view" the same data values).. While in Conflict Equivalence, respective transactions in two schedules have the same order of conflicting actions Formal definitions and examples will follow 8-38

Characterizing Schedules based on: Serializability Recoverability View Serializability (Σειριοποιησιμότητα Όψεων) View Serializable (Σειριοποιησιμότητα Όψεων): A Schedule is View Serializable if it is view equivalent to some serial schedule VENN Diagram All schedules View Serializable Conflict Serializable (Serializable) Serial Conflict serializable => View serializable, but not vice versa. Testing for View Serializability is NP-hard, meaning that finding an efficient polynomial time algorithm to this problem is highly unlikely. We will only work on small examples for which we can characterize the type of serializability by observation (so no algorithm is necessary) 8-39

Characterizing Schedules based on: Serializability Recoverability View Equivalence (Ισοδυναμία Όψεων) View Equivalence (Formal Definition) (1) Same WR order: If in S1: w j (A) r i (A); i,j are identifiers of Transactions then in S2: w j (A) r i (A) (2) First Read: If in S1: r i (A) reads initial DB value, then in S2: r i (A) also reads initial DB value (3) Last Write: If in S1: w i (A) does last write on A, then in S2: w i (A) also does last write on A The premise behind view equivalence: means, Schedule reads value produced The view : the read operations are said to see the same view in both schedules. Rule: As long as each read operation of a transaction reads the result of the same write operation in both schedules, the write operations of each transaction must produce the same results. 8-40

Characterizing Schedules based on: Serializability Recoverability View Serializability (Σειριοποιησιμότητα Όψεων) View Serializability Summary: I. Same Transaction Reads Data First. II. Same Transaction Writes Data Last. III. Same WR Order of actions. b) Conflict & View Serializable Schedule (also serial) Τ1 Τ2 T3 --------------------------------- c) View Serializable but NOT Conflict Serializable Τ1 Τ2 T3 -------------------------------------- Why is the second schedule View Serializable? In both schedules (a) and (b): First Read by T1 and Final Write performed by T3 and WR order does not change (actually we have no reads in T2 and T3) Order of conflicts not same with any serial schedule 8-41

Characterizing Schedules based on: Serializability Recoverability Introduction to Recoverability (Εισαγωγή στην Επαναφερσιμότητα) So far we have characterized schedules based on serializability (σειριοποιησιμότητα), i.e., correctness. Now it is time to characterize schedules based on recoverability (επαναφερσιμότητα) Why is this important? For some schedules it is easier to recover from transaction failures than others. In summary, a Recoverable Schedule (Επαναφέρσιμο Χρονοπρόγραμμα) is a schedule where no transaction needs to be rolled back (διαδικασία επιστροφής) once committed. Commit/Abort points now become quite important! 8-42

Characterizing Schedules based on: Serializability Recoverability Recoverable Schedule (Επαναφέρσιμο Χρονοπρόγραμμα) Recoverable Schedule (Επαναφέρσιμο Χρονοπρόγραμμα) A schedule S is recoverable if no transaction T in S commits until all transactions T, that have written an item that T reads, have committed. Rule: In other words, the parents of dirty reads need to commit before their children can commit Consider the Following schedule: Τ1 R(X) W(X) R(Y) T1 should have committed first! Abort Τ2 dirty read R(X) W(X) Commit Is this schedule recoverable? Answer: NO Why NOT recoverable? Because T2 made a dirty read and committed before T1 next slide explains why this is a problem 8-43

Characterizing Schedules based on: Serializability Recoverability Recoverable Schedule (Επαναφέρσιμο Χρονοπρόγραμμα) But why is the schedule Nonrecoverable (Μηεπαναφέρσιμο)? Because when the recovery manager rolls back (step a) T1 then A gets its initial value. But T2 has already utilized this wrong value and committed something to the DB The DB is consequently in an inconsistent state! a) Roll back Τ1 R(X) W(X) R(Y) Abort Τ2 dirty read R(X) W(X) Commit Nonrecoverable B) Now DB is inconsistent! (because X was committed based on T1 s aborted transaction) 8-44

Characterizing Schedules based on: Serializability Recoverability Recoverable Schedule (Επαναφέρσιμο Χρονοπρόγραμμα) How can we make the Schedule Recoverable? Initial Unrecoverable Schedule Recoverable Schedule A Τ1 R(X) W(X) R(Y) Abort Τ2 dirty read R(X) W(X) Commit Commit after parent of dirty read Recoverable Τ1 R(X) W(X) R(Y) Abort Τ2 dirty read R(X) W(X) Commit Nonrecoverable Recoverable Schedule B Τ1 R(X) W(X) R(Y) Abort Τ2 R(X) W(X) Commit Remove Dirty Read Recoverable Not Serializable (order of conflicting actions has changed) 8-45

Characterizing Schedules based on: Serializability Recoverability Other Schedules based on Recoverability (Άλλα χρονοπρογράμματα βάση Επαναφερσιμότητας) There are more strict types of Schedules (based on the Recoverability properties) Cascadeless schedule (Χρονοπρόγραμμα χωρίς διαδιδόμενη ανάκληση): (or Schedule that Avoids Cascading Rollbacks) Refers to cases where we have aborts. Strict Schedules (Αυστηρό Χρονοπρόγραμμα) These schedules are very simple to be recovered! Thus, the DBMS prefers this class of Schedules. All schedules Recoverable Avoid Cascading Aborts Strict Serial 8-46

Characterizing Schedules based on: Serializability Recoverability Cascadeless Schedule (Χρονοπρόγραμμα χωρίς διαδιδόμενη ανάκληση) Cascadeless schedule (Χρονοπρόγραμμα χωρίς διαδιδόμενη ανάκληση): or Schedule that Avoids Cascading Rollbacks) One where a rollback does not cascade to other Xacts Why is this necessary? Rollbacks are Costly! How can we achieve it? Every transaction reads only the items that are written by committed transactions. Τ1 R(X) W(X) Τ2 a) dirty read R(X) R(Y) W(X) b) Roll back W(Y) Abort c) (Cascade) Commit We need to Roll back T2 as well! NOT Cascadeless (but Recoverable) 8-47

Characterizing Schedules based on: Serializability Recoverability All schedules Recoverable Avoid Cascading Aborts Strict Serial Cascadeless Schedule (Χρονοπρόγραμμα χωρίς διαδιδόμενη ανάκληση) Let us turn the previous example into a Cascadeless Schedule Recall, in order to get a Cascadeless Schedule, every transaction must read only committed data Cascadeless Schedule a) Roll back Τ1 R(X) W(X) R(Y) W(Y) Abort Τ2 b) Now T2 reads the X value that existed before R(X) T1 started. W(X) Commit Another Cascadeless Schedule Τ1 R(X) W(X) R(Y) W(Y) Abort Τ2 W(X) Commit but not strict 8-48

Characterizing Schedules based on: Serializability Recoverability Strict Schedule (Αυστηρό Χρονοπρόγραμμα) Strict Schedule (Αυστηρό Χρονοπρόγραμμα): A schedule is strict if overriding of uncommitted data is not allowed. Formally, if it satisfies the following conditions: Tj reads a data item X after Ti has terminated (aborted or committed) Tj writes a data item X after Ti has terminated (aborted or committed) Why is this necessary? Eliminates Rollbacks! If a schedule is strict, a rollback can be achieved simply by resetting the Xact variables to the value before its start value, e.g., Cascadeless but NOT Strict b) Rollback X=9 now Τ1 Τ2 // X=9 W(X,5) W(X,8) a) Changing an item that Commit has not been committed EPL646: Abort Advanced Topics in Databases - Demetris Zeinalipour (University of Cyprus) yet (X=8 now) c) Why is this a problem? Because X now became again 9 rather than X=8 or X=5! T i T j 8-49

Characterizing Schedules based on: Serializability Recoverability Characterizing Schedules (Χαρακτηρίζοντας Χρονοπρογράμματα) Venn Diagram Illustrating the Different ways to characterize a Schedule based on Serializability and Recoverability 8-50