transaction indra budi [email protected]. fakultas ilmu komputer ui 2 exercise a series of actions...

33
Transaction Indra Budi [email protected]

Upload: alma-capel

Post on 01-Apr-2015

221 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Transaction Indra Budi indra@cs.ui.ac.id. Fakultas Ilmu Komputer UI 2 Exercise A series of actions to be taken on the database such that either all actions

Transaction

Indra [email protected]

Page 2: Transaction Indra Budi indra@cs.ui.ac.id. Fakultas Ilmu Komputer UI 2 Exercise A series of actions to be taken on the database such that either all actions

2 Fakultas Ilmu Komputer UI

ExerciseExercise

A series of actions to be taken on the database such that either all actions are completed successfully, or none of them can be completed, is known as a(n):a.) checkpoint.b.) log.c.) lock.d.) transaction.e.) concurrent.

Page 3: Transaction Indra Budi indra@cs.ui.ac.id. Fakultas Ilmu Komputer UI 2 Exercise A series of actions to be taken on the database such that either all actions

3 Fakultas Ilmu Komputer UI

ExerciseExercise

When two transactions are being processed against the database at the same time,a.) they are called concurrent transactions.b.) they are usually interleaved.c.) they always result in a lost update problem.d.) one must be rolled back.e.) both a and b

Page 4: Transaction Indra Budi indra@cs.ui.ac.id. Fakultas Ilmu Komputer UI 2 Exercise A series of actions to be taken on the database such that either all actions

4 Fakultas Ilmu Komputer UI

ExerciseExercise

1. …. means a transaction executes when all actions of the transaction are completed fully, or none are. This means there are no partial transactions (such as when half the actions complete and the other half do not).

2. …. involves beginning a transaction with a ’consistent’ database, and finishing with a ’consistent’ database. For example, in a bank database, money should never be ”created” or ”deleted” without an appropriate deposit or withdrawal. Every transaction should see a consistent database.

3. ….ensures that a transaction can run independently, without considering any side effects that other concurrently running transactions might have.

4. ….define the persistence of committed data: once a transaction commits, the data should persist in the database even if the system crashes before the data is written to non-volatile storage.

5. A …. is a series of (possibly overlapping) transactions.6. A …..occurs when a transaction reads a database object that has been

modified by another not-yet-committed transaction.7. A ….over a set S of transactions is a schedule whose effect on any

consistent database instance is identical to that of some complete serial schedule over the set of committed transactions in S.

8. A …..is one in which a transaction can commit only after all other transactions whose changes it has read have committed.

Page 5: Transaction Indra Budi indra@cs.ui.ac.id. Fakultas Ilmu Komputer UI 2 Exercise A series of actions to be taken on the database such that either all actions

5 Fakultas Ilmu Komputer UI

a. Recoverable scheduleb. Serializable schedulec. Scheduled. Atomicitye. Durabilityf. Isolationg. Dirty Readh. Unrepeatable problemi. Consistencyj. Cascading rollback

Page 6: Transaction Indra Budi indra@cs.ui.ac.id. Fakultas Ilmu Komputer UI 2 Exercise A series of actions to be taken on the database such that either all actions

6 Fakultas Ilmu Komputer UI

ExerciseExercise

Do exercise 17.23 Elmasri pages 581

Page 7: Transaction Indra Budi indra@cs.ui.ac.id. Fakultas Ilmu Komputer UI 2 Exercise A series of actions to be taken on the database such that either all actions

7 Fakultas Ilmu Komputer UI

Schedule C is Serializable ?Schedule C is Serializable ?

T1 T2Read(A); A A+100Write(A);

Read(A);A A2;

Write(A);Read(B); B B+100;Write(B);

Read(B);B B2;

Write(B);

A B25 25

125

250

125

250250 250

Page 8: Transaction Indra Budi indra@cs.ui.ac.id. Fakultas Ilmu Komputer UI 2 Exercise A series of actions to be taken on the database such that either all actions

8 Fakultas Ilmu Komputer UI

Is Schedule D serializable ?Is Schedule D serializable ?

T1 T2Read(A); A A+100Write(A);

Read(A);A A2;Write(A);

Read(B);B B2;Write(B);

Read(B); B B+100;Write(B);

A B25 25

125

250

50

150250 150

Page 9: Transaction Indra Budi indra@cs.ui.ac.id. Fakultas Ilmu Komputer UI 2 Exercise A series of actions to be taken on the database such that either all actions

9 Fakultas Ilmu Komputer UI

Database AdministrationDatabase Administration

All large and small databases need database administrationData administration refers to a function concerning all of an organization’s data assetsDatabase administration (DBA) refers to a person or office specific to a single database and its applications

Page 10: Transaction Indra Budi indra@cs.ui.ac.id. Fakultas Ilmu Komputer UI 2 Exercise A series of actions to be taken on the database such that either all actions

10 Fakultas Ilmu Komputer UI

DBA TasksDBA Tasks

Managing database structureControlling concurrent processingManaging processing rights and responsibilitiesDeveloping database securityProviding for database recoveryManaging the DBMSMaintaining the data repository

Page 11: Transaction Indra Budi indra@cs.ui.ac.id. Fakultas Ilmu Komputer UI 2 Exercise A series of actions to be taken on the database such that either all actions

11 Fakultas Ilmu Komputer UI

Managing Database StructureManaging Database Structure

DBA’s tasks:Participate in database and application development

• Assist in requirements stage and data model creation• Play an active role in database design and creation

Facilitate changes to database structure• Seek community-wide solutions• Assess impact on all users• Provide configuration control forum• Be prepared for problems after changes are made• Maintain documentation

Page 12: Transaction Indra Budi indra@cs.ui.ac.id. Fakultas Ilmu Komputer UI 2 Exercise A series of actions to be taken on the database such that either all actions

12 Fakultas Ilmu Komputer UI

Concurrency ControlConcurrency Control

Concurrency control ensures that one user’s work does not inappropriately influence another user’s work

No single concurrency control technique is ideal for all circumstancesTrade-offs need to be made between level of protection and throughput

Page 13: Transaction Indra Budi indra@cs.ui.ac.id. Fakultas Ilmu Komputer UI 2 Exercise A series of actions to be taken on the database such that either all actions

13 Fakultas Ilmu Komputer UI

Atomic TransactionsAtomic Transactions

A transaction, or logical unit of work (LUW), is a series of actions taken against the database that occurs as an atomic unit

Either all actions in a transaction occur or none of them do

Page 14: Transaction Indra Budi indra@cs.ui.ac.id. Fakultas Ilmu Komputer UI 2 Exercise A series of actions to be taken on the database such that either all actions

14 Fakultas Ilmu Komputer UI

Example: Atomic TransactionExample: Atomic Transaction

Page 15: Transaction Indra Budi indra@cs.ui.ac.id. Fakultas Ilmu Komputer UI 2 Exercise A series of actions to be taken on the database such that either all actions

15 Fakultas Ilmu Komputer UI

Example: Atomic TransactionExample: Atomic Transaction

Page 16: Transaction Indra Budi indra@cs.ui.ac.id. Fakultas Ilmu Komputer UI 2 Exercise A series of actions to be taken on the database such that either all actions

16 Fakultas Ilmu Komputer UI

Concurrent TransactionConcurrent Transaction

Concurrent transactions refer to two or more transactions that appear to users as they are being processed against a database at the same timeIn reality, CPU can execute only one instruction at a time

Transactions are interleaved meaning that the operating system quickly switches CPU services among tasks so that some portion of each of them is carried out in a given interval

Concurrency problems: lost update and inconsistent reads

Page 17: Transaction Indra Budi indra@cs.ui.ac.id. Fakultas Ilmu Komputer UI 2 Exercise A series of actions to be taken on the database such that either all actions

17 Fakultas Ilmu Komputer UI

Example: Concurrent TransactionsExample: Concurrent Transactions

Page 18: Transaction Indra Budi indra@cs.ui.ac.id. Fakultas Ilmu Komputer UI 2 Exercise A series of actions to be taken on the database such that either all actions

18 Fakultas Ilmu Komputer UI

Example: Lost Update ProblemExample: Lost Update Problem

Page 19: Transaction Indra Budi indra@cs.ui.ac.id. Fakultas Ilmu Komputer UI 2 Exercise A series of actions to be taken on the database such that either all actions

19 Fakultas Ilmu Komputer UI

Concurrency Control and LockingConcurrency Control and Locking

We need a way to guarantee that our concurrent transactions can be serialized. Locking is one such means. Locking is done to data items in order to reserve them for future operations. A lock is a logical flag set by a transaction to alert other transactions the data item is in use.

Page 20: Transaction Indra Budi indra@cs.ui.ac.id. Fakultas Ilmu Komputer UI 2 Exercise A series of actions to be taken on the database such that either all actions

20 Fakultas Ilmu Komputer UI

Resource LockingResource Locking

Resource locking prevents multiple applications from obtaining copies of the same record when the record is about to be changed

Page 21: Transaction Indra Budi indra@cs.ui.ac.id. Fakultas Ilmu Komputer UI 2 Exercise A series of actions to be taken on the database such that either all actions

21 Fakultas Ilmu Komputer UI

Characteristics of LockCharacteristics of Lock

Locks may be applied to data items in two ways:Implicit Locks are applied by the DBMSExplicit Locks are applied by application programs. Locks may be applied to:

1. a single data item (value) 2. an entire row of a table 3. a page (memory segment) (many rows worth) 4. an entire table 5. an entire database

This is referred to as the Lock granularity

Locks may be of type types depending on the requirements of the transaction:

1. An Exclusive Lock prevents any other transaction from reading or modifying the locked item.

2. A Shared Lock allows another transaction to read an item but prevents another transaction from writing the item.

Page 22: Transaction Indra Budi indra@cs.ui.ac.id. Fakultas Ilmu Komputer UI 2 Exercise A series of actions to be taken on the database such that either all actions

22 Fakultas Ilmu Komputer UI

Example: Explicit LocksExample: Explicit Locks

Page 23: Transaction Indra Budi indra@cs.ui.ac.id. Fakultas Ilmu Komputer UI 2 Exercise A series of actions to be taken on the database such that either all actions

23 Fakultas Ilmu Komputer UI

The Two-Phase Locking ProtocolThe Two-Phase Locking Protocol

This is a protocol which ensures conflict-serializable schedules.Phase 1: Growing Phase

transaction may obtain locks transaction may not release locks

Phase 2: Shrinking Phasetransaction may release lockstransaction may not obtain locks

The protocol assures serializability. It can be proved that the transactions can be serialized in the order of their lock points (i.e. the point where a transaction acquired its final lock).

Page 24: Transaction Indra Budi indra@cs.ui.ac.id. Fakultas Ilmu Komputer UI 2 Exercise A series of actions to be taken on the database such that either all actions

24 Fakultas Ilmu Komputer UI

2PL Examples2PL Examples

User A places an exclusive lock on the balance User A reads the balance User A deducts $100 from the balance User B attempts to place a lock on the balance but fails because A already has an exclusive lock User B is placed into a wait state User A writes the new balance of $100 User A releases the exclusive lock on the balance User B places an exclusive lock on the balance User B reads the balance User B deducts $100 from the balance User B writes the new balance of $100

Page 25: Transaction Indra Budi indra@cs.ui.ac.id. Fakultas Ilmu Komputer UI 2 Exercise A series of actions to be taken on the database such that either all actions

25 Fakultas Ilmu Komputer UI

2PL Example2PL Example

User A places a shared lock on item raise_rate User A reads raise_rate User A places an exclusive lock on item Amy_salary User A reads Amy_salary User B places a shared lock on item raise_rate User B reads raise_rate User A calculates a new salary as Amy_salary * (1+raise_rate)User B places an exclusive lock on item Bill_salary User B reads Bill_salary User B calculates a new salary as Bill_salary * (1+raise_rate)User B writes Bill_salary User A writes Amy_salary User A releases exclusive lock on Amy_salary User B releases exclusive lock on Bill_Salary User B releases shared lock on raise_rate User A releases shared lock on raise_rate

Page 26: Transaction Indra Budi indra@cs.ui.ac.id. Fakultas Ilmu Komputer UI 2 Exercise A series of actions to be taken on the database such that either all actions

26 Fakultas Ilmu Komputer UI

DeadlockDeadlock

User A places an exclusive lock on item 1001 User B places an exclusive lock on item 2002 User A attempts to place an exclusive lock on item 2002 User A placed into a wait state User B attempts to place an exclusive lock on item 1001 User B placed into a wait state

This is called a deadlock. One transaction has locked some of the resources and is waiting for locks so it can complete. A second transaction has locked those needed items but is awaiting the release of locks the first transaction is holding so it can continue.

Page 27: Transaction Indra Budi indra@cs.ui.ac.id. Fakultas Ilmu Komputer UI 2 Exercise A series of actions to be taken on the database such that either all actions

27 Fakultas Ilmu Komputer UI

Deadlock Deadlock

Deadlock, or the deadly embrace, occurs when two transactions are each waiting on a resource that the other transaction holdsPreventing deadlock

Allow users to issue all lock requests at one timeRequire all application programs to lock resources in the same order

Breaking deadlockAlmost every DBMS has algorithms for detecting deadlockWhen deadlock occurs, DBMS aborts one of the transactions and rollbacks partially completed work

Page 28: Transaction Indra Budi indra@cs.ui.ac.id. Fakultas Ilmu Komputer UI 2 Exercise A series of actions to be taken on the database such that either all actions

28 Fakultas Ilmu Komputer UI

Another Deadlock ExampleAnother Deadlock Example

Page 29: Transaction Indra Budi indra@cs.ui.ac.id. Fakultas Ilmu Komputer UI 2 Exercise A series of actions to be taken on the database such that either all actions

29 Fakultas Ilmu Komputer UI

Optimistic/Pessimistic LockingOptimistic/Pessimistic Locking

Optimistic locking assumes that no transaction conflict will occur

DBMS processes a transaction; checks whether conflict occurred• If not, the transaction is finished• If so, the transaction is repeated until there is no conflict

Pessimistic locking assumes that conflict will occur

Locks are issued before transaction is processed, and then the locks are released

Optimistic locking is preferred for the Internet and for many intranet applications

Page 30: Transaction Indra Budi indra@cs.ui.ac.id. Fakultas Ilmu Komputer UI 2 Exercise A series of actions to be taken on the database such that either all actions

30 Fakultas Ilmu Komputer UI

Example: Optimistic LockingExample: Optimistic Locking

Page 31: Transaction Indra Budi indra@cs.ui.ac.id. Fakultas Ilmu Komputer UI 2 Exercise A series of actions to be taken on the database such that either all actions

31 Fakultas Ilmu Komputer UI

Example: Pessimistic LockingExample: Pessimistic Locking

Page 32: Transaction Indra Budi indra@cs.ui.ac.id. Fakultas Ilmu Komputer UI 2 Exercise A series of actions to be taken on the database such that either all actions

32 Fakultas Ilmu Komputer UI

Final TestFinal Test

Scheduled on Dec, 29th 2004, 09.00 – 11.00 WIBMay open all notes written by hand, no copies, no print-out, close textbookMaterial from “Introduction to DB” to Concurrency Control

Page 33: Transaction Indra Budi indra@cs.ui.ac.id. Fakultas Ilmu Komputer UI 2 Exercise A series of actions to be taken on the database such that either all actions

33 Fakultas Ilmu Komputer UI

Next Wednesday (Dec 15th)Next Wednesday (Dec 15th)

QuizClose Books & Close NotesMaterial

SQL (Join, Aggregation, Grouping, Having, View)Transactions Processing & Concurrency Control