当前位置:网站首页>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 )
边栏推荐
- Deeply convinced plan X - network protocol basic DNS
- Summarize the reasons for 2XX, 3xx, 4xx, 5xx status codes
- ICMP introduction
- Interprocess communication in the "Chris Richardson microservice series" microservice architecture
- poj 3237 Tree(树链拆分)
- Incentive mechanism of Ethereum eth
- AD637 usage notes
- Emotional analysis of wechat chat records on Valentine's day based on Text Mining
- Yolov5 training custom data set (pycharm ultra detailed version)
- Ethereum ETH的奖励机制
猜你喜欢

Making global exception handling classes with aspect

PIP install beatifulsoup4 installation failed

MMAP

How can Huawei online match improve the success rate of player matching

Matlab | app designer · I used Matlab to make a real-time editor of latex formula

Implementing Lmax disruptor queue from scratch (IV) principle analysis of multithreaded producer multiproducersequencer

MMAP

Lightweight dynamic monitorable thread pool based on configuration center - dynamictp

Advantages and disadvantages of the "Chris Richardson microservice series" microservice architecture

总结出现2xx、3xx、4xx、5xx状态码的原因
随机推荐
极狐公司官方澄清声明
Code bug correction, char is converted to int high-order symbol extension, resulting in changes in positivity and negativity and values. Int num = (int) (unsigned int) a, which will occur in older com
854. String BFS with similarity K
poj 3237 Tree(樹鏈拆分)
Scenario interview: ten questions and ten answers about distributed locks
EL与JSTL注意事项汇总
SQL knowledge leak detection
AD637使用笔记
The real situation of programmers
MATLAB | App Designer·我用MATLAB制作了一款LATEX公式实时编辑器
MMAP
Xlrd common operations
K210 learning notes (IV) k210 runs multiple models at the same time
datagrid直接编辑保存“设计缺陷”
Implementing Lmax disruptor queue from scratch (IV) principle analysis of multithreaded producer multiproducersequencer
Yolov5 training custom data set (pycharm ultra detailed version)
Robot operation mechanism
Bitbucket installation configuration
微服务链路风险分析
PIP install beatifulsoup4 installation failed