The First Part of Concurrency Control Summary

Concurrency Control is the management of concurrently executing transactions. A transaction is a sequence of a write and a read on the database. Hence, the database only sees the read and write operations. The goal of concurrency control is to deal with interleaving transactions.

Let me show you in the figure below what is transaction. Transaction to transfer $100 from account R to account S. However, the transaction manager did not see some of transactions 3 and 6.

To solve the above issue in the transaction, we need every transaction to maintain the following properties called ACID.

  1. Atomicity: all actions in the transaction happen or do not happen

4. Durability: After a transaction successfully completes, changes to data persist and are not undone, even in the event of a system failure. For example, in an application that transfers funds from one account to another, the durability property ensures that the changes made to each account will not be reversed.

A transaction isolation level is defined by the following:

  1. Dirty Read: A Dirty read is a situation when a transaction reads data that has not yet been committed.

The different States of a Transaction:

Now, let me introduce what is the schedule. A schedule is a sequence of transactions. A serial schedule is one where transactions are executed sequentially. The keyword here is serial order. We need multiple transactions running concurrently and we need them to be serializable as they are running on a single machine. Below are serialized transactions. Below are equivalent.

See the figure below for all types of scheduling. A serializable execution is guaranteed to be serializable. Serializable execution is defined to be an execution of operations in which concurrently executing transactions appear to be serially executing.

The transactions are executed in a non-serial manner, keeping the end result correct and the same as the serial schedule. A serializable schedule helps in improving both resource utilization and CPU throughput. These are of two types:

Conflict Serializable: A schedule is called conflict serializable if it can be transformed into a serial schedule by swapping non-conflicting operations. Two operations are said to be conflicting if all conditions satisfy:

  1. They belong to different transactions.

View Serializable: A Schedule is called view serializable if it is view equal to a serial schedule (no overlapping transactions). A conflict schedule is a view serializable but if the serializability contains blind writes, then the view serializable does not conflict-serializable.

When operations of a transaction are interleaved with operations of other transactions of a schedule, the schedule is called a Concurrent schedule. So how can we combine the advantages of both serializability and concurrency?

Schedules and concurrency control mechanisms help. Schedules arrange each step of the transaction in a serial pattern so the transaction can go to completion without the worry of interference from other transactions. Concurrency control mechanisms manage the flow of transactions and improve the efficiency of the system.

There are two categories of concurrency control: pessimistic and optimistic. Pessimistic concurrency control assumes that there is a high likelihood that two or more transactions will try to access the same resources. A transaction will lock access to the resources it needs to keep others from modifying them. Optimistic concurrency control assumes that it is not likely that multiple transactions will access the same resource. Optimistic techniques will not lock access to resources. Instead, they will check for conflicts at commit time. If it turns out that multiple transactions did indeed access resources concurrently, one or more of them will have to abort.

Please read the second part of the concurrency control summary.



I am interested in Distributed Systems!

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store