Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit cc71f28

Browse files
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)

‎presentations/7_mutexes/Mutexes.key‎

1.63 MB
Binary file not shown.

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /