fbpx
Wikipedia

Two-phase locking

In databases and transaction processing, two-phase locking (2PL) is a pessimistic concurrency control method that guarantees conflict-serializability.[1][2] It is also the name of the resulting set of database transaction schedules (histories). The protocol uses locks, applied by a transaction to data, which may block (interpreted as signals to stop) other transactions from accessing the same data during the transaction's life.

By the 2PL protocol, locks are applied and removed in two phases:

  1. Expanding phase: locks are acquired and no locks are released.
  2. Shrinking phase: locks are released and no locks are acquired.

Two types of locks are used by the basic protocol: Shared and Exclusive locks. Refinements of the basic protocol may use more lock types. Using locks that block processes, 2PL, S2PL, and SS2PL may be subject to deadlocks that result from the mutual blocking of two or more transactions.

Read and write locks edit

Locks are used to guarantee serializability. A transaction is holding a lock on an object if that transaction has acquired a lock on that object which has not yet been released.

For 2PL, the only used data-access locks are read-locks (shared locks) and write-locks (exclusive locks). Below are the rules for read-locks and write-locks:

  • A transaction is allowed to read an object if and only if it is holding a read-lock or write-lock on that object.
  • A transaction is allowed to write an object if and only if it is holding a write-lock on that object.
  • A schedule (i.e., a set of transactions) is allowed to hold multiple locks on the same object simultaneously if and only if none of those locks are write-locks. If a disallowed lock attempts on being held simultaneously, it will be blocked.
Lock compatibility table
Lock type read-lock write-lock
read-lock X
write-lock X X

Variants edit

guarantees conflict-serializability guarantees view-serializability eliminates deadlocks guarantees recoverability guarantees strictness prevents phantom reads prevents dirty reads
2PL Yes No No No No No No
C2PL Yes Yes[citation needed] Yes yes?[citation needed] yes?[citation needed] No[citation needed] Yes[citation needed]
S2PL Yes No No Yes Yes Yes Yes
SS2PL Yes No No Yes Yes Yes Yes

Two-phase locking edit

According to the two-phase locking protocol, each transaction handles its locks in two distinct, consecutive phases during the transaction's execution:

  1. Expanding phase (aka Growing phase): locks are acquired and no locks are released (the number of locks can only increase).
  2. Shrinking phase (aka Contracting phase): locks are released and no locks are acquired.

The two phase locking rules can be summarized as: each transaction must never acquire a lock after it has released a lock. The serializability property is guaranteed for a schedule with transactions that obey this rule.

Typically, without explicit knowledge in a transaction on end of phase 1, the rule is safely determined only when a transaction has completed processing and requested commit. In this case, all the locks can be released at once (phase 2).

Conservative two-phase locking edit

The difference between 2PL and C2PL is that C2PL's transactions obtain all the locks they need before the transactions begin. This is to ensure that a transaction that already holds some locks will not block waiting for other locks. Conservative 2PL prevents deadlocks.

Strict two-phase locking edit

To comply with the strict two-phase locking (S2PL) protocol, a transaction needs to comply with 2PL, and release its write (exclusive) locks only after the transaction has ended (i.e., either committed or aborted). On the other hand, read (shared) locks are released regularly during the shrinking phase.

Unlike 2PL, S2PL provides strictness (a special case of cascade-less recoverability). This protocol is not appropriate in B-trees because it causes Bottleneck (while B-trees always starts searching from the parent root). [citation needed]

Strong strict two-phase locking edit

or Rigorousness, or Rigorous scheduling, or Rigorous two-phase locking

To comply with strong strict two-phase locking (SS2PL), a transaction's read and write locks are released only after that transaction has ended (i.e., either committed or aborted). A transaction obeying SS2PL has only a phase 1 and lacks a phase 2 until the transaction has completed. Every SS2PL schedule is also an S2PL schedule, but not vice versa.

See also edit

References edit

  1. ^ Philip A. Bernstein, Vassos Hadzilacos, Nathan Goodman (1987): Concurrency Control and Recovery in Database Systems, Addison Wesley Publishing Company, ISBN 0-201-10715-5
  2. ^ Gerhard Weikum, Gottfried Vossen (2001): Transactional Information Systems, Elsevier, ISBN 1-55860-508-8

phase, locking, this, article, about, concurrency, control, commit, consensus, within, distributed, transaction, phase, commit, protocol, databases, transaction, processing, phase, locking, pessimistic, concurrency, control, method, that, guarantees, conflict,. This article is about concurrency control For commit consensus within a distributed transaction see Two phase commit protocol In databases and transaction processing two phase locking 2PL is a pessimistic concurrency control method that guarantees conflict serializability 1 2 It is also the name of the resulting set of database transaction schedules histories The protocol uses locks applied by a transaction to data which may block interpreted as signals to stop other transactions from accessing the same data during the transaction s life By the 2PL protocol locks are applied and removed in two phases Expanding phase locks are acquired and no locks are released Shrinking phase locks are released and no locks are acquired Two types of locks are used by the basic protocol Shared and Exclusive locks Refinements of the basic protocol may use more lock types Using locks that block processes 2PL S2PL and SS2PL may be subject to deadlocks that result from the mutual blocking of two or more transactions Contents 1 Read and write locks 2 Variants 2 1 Two phase locking 2 2 Conservative two phase locking 2 3 Strict two phase locking 2 4 Strong strict two phase locking 3 See also 4 ReferencesRead and write locks editLocks are used to guarantee serializability A transaction is holding a lock on an object if that transaction has acquired a lock on that object which has not yet been released For 2PL the only used data access locks are read locks shared locks and write locks exclusive locks Below are the rules for read locks and write locks A transaction is allowed to read an object if and only if it is holding a read lock or write lock on that object A transaction is allowed to write an object if and only if it is holding a write lock on that object A schedule i e a set of transactions is allowed to hold multiple locks on the same object simultaneously if and only if none of those locks are write locks If a disallowed lock attempts on being held simultaneously it will be blocked Lock compatibility table Lock type read lock write lockread lock Xwrite lock X XVariants editguarantees conflict serializability guarantees view serializability eliminates deadlocks guarantees recoverability guarantees strictness prevents phantom reads prevents dirty reads2PL Yes No No No No No NoC2PL Yes Yes citation needed Yes yes citation needed yes citation needed No citation needed Yes citation needed S2PL Yes No No Yes Yes Yes YesSS2PL Yes No No Yes Yes Yes YesTwo phase locking edit According to the two phase locking protocol each transaction handles its locks in two distinct consecutive phases during the transaction s execution Expanding phase aka Growing phase locks are acquired and no locks are released the number of locks can only increase Shrinking phase aka Contracting phase locks are released and no locks are acquired The two phase locking rules can be summarized as each transaction must never acquire a lock after it has released a lock The serializability property is guaranteed for a schedule with transactions that obey this rule Typically without explicit knowledge in a transaction on end of phase 1 the rule is safely determined only when a transaction has completed processing and requested commit In this case all the locks can be released at once phase 2 Conservative two phase locking edit The difference between 2PL and C2PL is that C2PL s transactions obtain all the locks they need before the transactions begin This is to ensure that a transaction that already holds some locks will not block waiting for other locks Conservative 2PL prevents deadlocks Strict two phase locking edit To comply with the strict two phase locking S2PL protocol a transaction needs to comply with 2PL and release its write exclusive locks only after the transaction has ended i e either committed or aborted On the other hand read shared locks are released regularly during the shrinking phase Unlike 2PL S2PL provides strictness a special case of cascade less recoverability This protocol is not appropriate in B trees because it causes Bottleneck while B trees always starts searching from the parent root citation needed Strong strict two phase locking edit or Rigorousness or Rigorous scheduling or Rigorous two phase lockingTo comply with strong strict two phase locking SS2PL a transaction s read and write locks are released only after that transaction has ended i e either committed or aborted A transaction obeying SS2PL has only a phase 1 and lacks a phase 2 until the transaction has completed Every SS2PL schedule is also an S2PL schedule but not vice versa See also editSerializability Lock computer science DeadlockReferences edit Philip A Bernstein Vassos Hadzilacos Nathan Goodman 1987 Concurrency Control and Recovery in Database Systems Addison Wesley Publishing Company ISBN 0 201 10715 5 Gerhard Weikum Gottfried Vossen 2001 Transactional Information Systems Elsevier ISBN 1 55860 508 8 Retrieved from https en wikipedia org w index php title Two phase locking amp oldid 1217136980, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.