当前位置:网站首页>Blocking protocol for concurrency control
Blocking protocol for concurrency control
2022-07-05 21:59:00 【Short section senior】
What is a blockade agreement
Using X Lock and S When locking data objects , Some rules need to be agreed , These rules are blocking agreements (Locking Protocol).
When to apply for X Lock or S lock
Holding time
When to release
There are different rules for the way of blockade , There are different kinds of blockade agreements , They provide a certain guarantee for the correct scheduling of concurrent operations to varying degrees .
Three level blockade agreement
1. First level blockade protocol
2. Secondary blockade protocol
3. Three level blockade agreement
First level blockade protocol
First level blockade protocol
Business T Modifying data R It must be added before X lock , Not released until the end of the transaction .
Normal end (COMMIT)
Abnormal end (ROLLBACK)
The first level blocking protocol can prevent the loss of modification , And make sure that things T It's recoverable .
In the first level blockade agreement , If you just read the data and don't modify it , It doesn't need to be locked , So it's not guaranteed to be repeatable or unreadable “ dirty ” data .
Use blocking mechanism to solve the problem of lost modification

No changes lost
Business T1 reading A Make changes to A Add X lock
When T2 Ask again for A Add X Lock rejected
T2 Can only wait for T1 Release A Get the right after locking on A Of X lock
At this time T2 Read about A It's already T1 Updated value 15
T2 Click here to the new A Value is calculated , And the result value A=14 Write back to disk . Avoid losing T1 Update .
Secondary blockade protocol
Secondary blockade protocol
First level blocking protocol plus transactions T Reading data R It must be added before S lock , After reading, you can release S lock .
The secondary blocking protocol can prevent loss, modification and reading “ dirty ” data .
In the secondary blockade agreement , Because the data can be released after reading S lock , So it's not guaranteed to be repeatable .
Use the blocking mechanism to solve the read problem “ dirty ” Data problems

Do not read “ dirty ” data
Business T1 In the face of C Before making changes , First pair C Add X lock , Modify its value and write it back to disk
T2 Request in C add S lock , because T1 Already in C Added X lock ,T2 Can only wait for
T1 Be revoked for some reason ,C Restore to original value 100
T1 Release C Upper X After locking T2 get C Upper S lock , read C=100. Avoided T2 read “ dirty ” data
Three level blockade agreement
Three level blockade agreement
First level blocking protocol plus transactions T Reading data R It must be added before S lock , Not released until the end of the transaction .
The three-level blocking protocol can prevent loss and modification 、 Read dirty data and non repeatable data .
Use blocking mechanism to solve the problem of non repeatable reading

Repeatable
Business T1 reading A,B Before , First pair A,B Add S lock
Other affairs can only be right again A,B Add S lock , Instead of X lock , That is, other transactions can only read A,B, It can't be modified
When T2 To modify B And the application is right B Of X When the lock is rejected, you can only wait T1 Release B The lock on the
T1 Read again for checking A,B, Now read B Is still 100, The sum result is still 150, Can be read repeatedly
T1 Release at the end A,B Upper S lock .T2 To get the right B Of X lock
Summary of blockade agreement
The main differences between three-level agreements
What operations need to be blocked and when to release the lock ( That is, lock holding time )
Different blocking protocols make transactions reach different consistency levels
The higher the level of blockade agreement , The more consistent 
Welcome to join me for wechat exchange and discussion ( Please note csdn Add )
边栏推荐
- C language knowledge points link
- 大约SQL现场“这包括”与“包括在”字符串的写法
- 使用Aspect制作全局异常处理类
- "Chris Richardson microservices series" uses API gateway to build microservices
- 多家呼吸机巨头产品近期被一级召回 呼吸机市场仍在增量竞争
- Summary of El and JSTL precautions
- 如何向mongoDB中添加新的字段附代码(全)
- HYSBZ 2243 染色 (树链拆分)
- Cross end solutions to improve development efficiency
- MATLAB | App Designer·我用MATLAB制作了一款LATEX公式实时编辑器
猜你喜欢

Database recovery strategy

Lightweight dynamic monitorable thread pool based on configuration center - dynamictp

MMAP learning

MMAP

An exception occurred in Huawei game multimedia calling the room switching method internal system error Reason:90000017

华为快游戏调用登录接口失败,返回错误码 -1

Oracle检查点队列–实例崩溃恢复原理剖析

Li Kou ----- the maximum profit of operating Ferris wheel
![[Yugong series] go teaching course 003-ide installation and basic use in July 2022](/img/9d/7d01bc1daa61f6545f619b6746f8bb.png)
[Yugong series] go teaching course 003-ide installation and basic use in July 2022

Bitbucket installation configuration
随机推荐
Environment configuration problem record
Evolution of large website architecture and knowledge system
Oracle HugePages没有被使用导致服务器很卡的解决方法
Defect detection - Halcon surface scratch detection
Getting started with microservices (resttemplate, Eureka, Nacos, feign, gateway)
EBS Oracle 11g cloning steps (single node)
one hundred and twenty-three thousand four hundred and fifty-six
Emotional analysis of wechat chat records on Valentine's day based on Text Mining
Poj 3237 Tree (Tree Chain Split)
Efficiency difference between row first and column first traversal of mat data types in opencv
AD637使用筆記
Exercise 1 simple training of R language drawing
ESP32
R language learning notes
MMAP
Matlab | app designer · I used Matlab to make a real-time editor of latex formula
Countdown to 92 days, the strategy for the provincial preparation of the Blue Bridge Cup is coming~
An exception occurred in Huawei game multimedia calling the room switching method internal system error Reason:90000017
Summarize the reasons for 2XX, 3xx, 4xx, 5xx status codes
1.2 download and installation of the help software rstudio