当前位置:网站首页>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 )
边栏推荐
- Getting started with microservices (resttemplate, Eureka, Nacos, feign, gateway)
- EBS Oracle 11g 克隆步骤(单节点)
- MMAP学习
- Summary of El and JSTL precautions
- 每日刷题记录 (十四)
- 1.2 download and installation of the help software rstudio
- [Yugong series] go teaching course in July 2022 004 go code Notes
- Regular expressions and re Libraries
- "Chris Richardson microservices series" uses API gateway to build microservices
- C language knowledge points link
猜你喜欢

AD637使用筆記

MySQL disconnection reports an error MySQL ldb_ exceptions. OperationalError 4031, The client was disconnected by the server

Huawei cloud modelarts text classification - takeout comments

装饰器学习01

Huawei fast game failed to call the login interface, and returned error code -1

Ethereum ETH的奖励机制

How to use tensorflow2 for cat and dog classification and recognition

Oracle checkpoint queue - Analysis of the principle of instance crash recovery

Interprocess communication in the "Chris Richardson microservice series" microservice architecture

1.2 download and installation of the help software rstudio
随机推荐
Shell script, awk uses if, for process control
oracle 控制文件的多路复用
Implementing Lmax disruptor queue from scratch (IV) principle analysis of multithreaded producer multiproducersequencer
"Chris Richardson microservices series" uses API gateway to build microservices
How can Huawei online match improve the success rate of player matching
MMAP
A long's perception
matlab绘制hsv色轮图
2.2.3 output of documents
sql常用语法记录
Official clarification statement of Jihu company
Evolution of large website architecture and knowledge system
每日刷题记录 (十四)
Sentinel production environment practice (I)
阿龙的感悟
HDU 4391 paint the wall segment tree (water
MATLAB | App Designer·我用MATLAB制作了一款LATEX公式实时编辑器
SecureCRT使用提示
Image editor for their AutoLayout environment
Advantages and disadvantages of the "Chris Richardson microservice series" microservice architecture