Skip to content

Commit cc71f28

Browse files
committed
more updates on the mutexes presentation
1 parent a4e1417 commit cc71f28

File tree

2 files changed

+30
-1
lines changed

2 files changed

+30
-1
lines changed

mutexes/README.md

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,28 @@ The **Lock** can only be **acquired** by **only 1 go routine** at a time, thus m
3636
space** in the **context** of an operation is considered to be **Atomic**, resulting in **deterministic** and **correct** results when
3737
**multiple concurrent operations** are involved in the game.
3838

39+
#### Benefits of Serializability
40+
41+
Let’s first understand the difference between a serial and non-serial schedule for a better understanding of the benefits
42+
that serializability provides. In the case of a serial schedule, the multiple transactions involved are executed one
43+
after the other sequentially with no overlap. This helps maintain the consistency in the database but limits the scope
44+
of concurrency and often a smaller transaction might end up waiting for a long time due to an execution of a previous
45+
longer transaction. Serial schedule also consumes a lot of CPU resources which gets wasted due to the serial execution.
46+
47+
In the case with a non-serial schedule, the multiple transactions executed are interleaved leading to inconsistency in
48+
the database but at the same time helps overcome the disadvantages of a serial schedule such as concurrent execution
49+
and wastage of CPU resources.
50+
51+
It’s established that the execution of multiple transactions in a non-serial schedule takes place concurrently.
52+
And because of the multiple combinations involved, the output obtained may be incorrect at times which cannot be afforded.
53+
This is where serializability comes into the picture and help us determine if the output obtained from a parallelly
54+
executed schedule is correct or not.
55+
56+
In other words, Serializability serves as a measure of correctness for the transactions executed concurrently.
57+
It serves a major role in concurrency control that is crucial for the database and is considered to provide
58+
maximum isolation between the multiple transactions involved. The process of Serializability can also help in achieving
59+
the database consistency which otherwise is not possible for a non-serial schedule.
60+
3961
### Presentations
4062

4163
- [Concurrency in Go #6 - Mutexes](https://github.com/golang-basics/concurrency/raw/master/presentations/6_mutexes)
@@ -90,10 +112,17 @@ space** in the **context** of an operation is considered to be **Atomic**, resul
90112
- [Mutual Exclusion - Wiki](https://en.wikipedia.org/wiki/Mutual_exclusion)
91113
- [Dining Philosophers Problem - Wiki](https://en.wikipedia.org/wiki/Dining_philosophers_problem)
92114
- [Test and Set - Wiki](https://en.wikipedia.org/wiki/Test-and-set)
93-
- [Concurrency Control - Wiki](https://en.wikipedia.org/wiki/Concurrency_control)
94115
- [Tuple Space - Wiki](https://en.wikipedia.org/wiki/Tuple_space)
95116
- [Message Passing - Wiki](https://en.wikipedia.org/wiki/Message_passing)
96117
- [Semaphore - Wiki](https://en.wikipedia.org/wiki/Semaphore_(programming))
118+
- [Concurrency Control - Wiki](https://en.wikipedia.org/wiki/Concurrency_control)
119+
- [Serializability - Wiki](https://en.wikipedia.org/wiki/Serializability)
120+
- [Serializability in DBMS - Educba](https://www.educba.com/serializability-in-dbms/)
121+
- [Result Serializability - Geeks for Geeks](https://www.geeksforgeeks.org/result-serializability-in-dbms/)
122+
- [Schedule - Wiki](https://en.wikipedia.org/wiki/Schedule_(computer_science))
123+
- [Recoverability - Wiki](https://en.wikipedia.org/wiki/Schedule_(computer_science)#Recoverable)
124+
- [2PL - Wiki](https://en.wikipedia.org/wiki/Two-phase_locking)
125+
- [Transaction Processing - Wiki](https://en.wikipedia.org/wiki/Transaction_processing)
97126
- [Pessimistic vs Optimistic Locking - StackOverflow](https://stackoverflow.com/questions/129329/optimistic-vs-pessimistic-locking)
98127
- [Pessimistic vs Optimistic Locking - StackOverflow Explanation](https://stackoverflow.com/a/58952004)
99128
- [Check Deadlock - Go Source Code](https://github.com/golang/go/blob/35ea62468bf7e3a79011c3ad713e847daa9a45a2/src/runtime/proc.go#L4159-L4233)
1.63 MB
Binary file not shown.

0 commit comments

Comments
 (0)