Reading:  

Introduction to database management systems


Concurrency Control and Deadlock

Concurrency control is a database management systems (DBMS) concept that is used to address conflicts with simultaneous accessing or altering of data that can occur with a multi-user system.

 

Pessimistic concurrency control

A system of locks prevents users from modifying data in a way that affects other users. After a user performs an action that causes a lock to be applied, other users cannot perform actions that would conflict with the lock until the owner releases it. This is called pessimistic control because it is mainly used in environments where there is high contention for data, where the cost of protecting data with locks is less than the cost of rolling back transactions if concurrency conflicts occur.

 

Optimistic concurrency control

In optimistic concurrency control, users do not lock data when they read it. When a user updates data, the system checks to see if another user changed the data after it was read. If another user updated the data, an error is raised. Typically, the user receiving the error rolls back the transaction and starts over. This is called optimistic because it is mainly used in environments where there is low contention for data, and where the cost of occasionally rolling back a transaction is lower than the cost of locking data when read. 

 

Dead Lock 

A deadlock is a condition in which two or more transactions in a set are waiting simultaneously for locks held by some other transaction in the set. Nether transaction can continue because each transaction in the set is on a waiting queue, waiting for one of other transaction in the set to release lock on an item. Thus, a deadlock is an impasse that may result when two or more transactions are each waiting for locks to be released that are held by the other. A deadlock is also called a circular waiting condition where two transactions are waiting directly or in-directly for each other

 

 

 

 

Description

This free tutorial covers the basics of database management system to help you with your understanding on the topic, Please note that this tutorial assumes that either you are a beginner or just want to brush up your understanding on DBMS

Tutorial covers the topics below

  • What is DBMS?
  • Architecture
  • Data Models
  • Data Schemas
  • Data Independence
  • Entity-Relation Model Basic Concept
  • Entity-Relation Diagram Representation
  • Generalization, Aggregation
  • Codd's 12 Rules
  • Relational Data Model
  • Relational Algebra
  • Structured Query Language
  • Normalization
  • Database Joins
  • Storage System
  • Indexing
  • Hashing
  • Transaction
  • Concurrency Control and Deadlock
  • Data Backup and Recovery

 



Audience

Absolute beginners or students who wish to brush up their understanding on DBMSes

Author: Subject Coach
Added on: 16th Sep 2015

You must be logged in as Student to ask a Question.

None just yet!