当前位置:网站首页>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 )
边栏推荐
- QML reported an error expected token ";", expected a qualified name ID
- 【愚公系列】2022年7月 Go教学课程 004-Go代码注释
- Li Kou ----- the maximum profit of operating Ferris wheel
- NET中小型企业项目开发框架系列(一个)
- MMAP学习
- DBeaver同时执行多条insert into报错处理
- Exercise 1 simple training of R language drawing
- Official clarification statement of Jihu company
- Oracle HugePages没有被使用导致服务器很卡的解决方法
- 2.2 basic grammar of R language
猜你喜欢
ICMP introduction
Kingbasees v8r3 cluster maintenance case -- online addition of standby database management node
How can Huawei online match improve the success rate of player matching
总结出现2xx、3xx、4xx、5xx状态码的原因
Matlab | app designer · I used Matlab to make a real-time editor of latex formula
An exception occurred in Huawei game multimedia calling the room switching method internal system error Reason:90000017
Daily question brushing record (XIV)
Advantages and disadvantages of the "Chris Richardson microservice series" microservice architecture
The real situation of programmers
Sorting out the problems encountered in MySQL built by pycharm connecting virtual machines
随机推荐
Codeforces 12D Ball 树形阵列模拟3排序元素
How to organize an actual attack and defense drill
Regular expressions and re Libraries
Defect detection - Halcon surface scratch detection
About the writing method of SQL field "this includes" and "included in" strings
使用Aspect制作全局异常处理类
Codeforces 12D ball tree array simulation 3 sorting elements
MATLAB | App Designer·我用MATLAB制作了一款LATEX公式实时编辑器
Oracle checkpoint queue - Analysis of the principle of instance crash recovery
Robot framework setting variables
装饰器学习01
华为联机对战如何提升玩家匹配成功几率
kingbaseES V8R3数据安全案例之---审计记录清除案例
NET中小型企业项目开发框架系列(一个)
matlab绘制hsv色轮图
Implementation technology of recovery
Chap2 steps into the palace of R language
AD637使用笔记
KingbaseES V8R3集群维护案例之---在线添加备库管理节点
Cross end solutions to improve development efficiency