当前位置:网站首页>The essence of transaction and the principle of deadlock
The essence of transaction and the principle of deadlock
2020-11-06 21:35:00 【Irving the procedural ape】
Only with MySQL and spring For example ,, This article does not introduce the concepts of transactions and locks .
This paper uses pseudo code to represent method code , Only express the meaning of the method and transaction annotation
〇、 The shape of the transaction
In my heart , Business has always been like this
x Axis is a locked resource ,y The axis is the time consumed ,
The transaction box moves down over time ,
When touching x Lock the shaft , Skip over x When the axis is unlocked
The picture above is about the method a The transaction shape of , I named it 【 Transaction box 】, I'm sorry I don't know how to do motion maps , In this paper, we express the best by moving graph .
@Transactional
function a(){
Yes A Table modification , It took five seconds
}
One 、 A lot of business
When a method calls multiple child methods annotated by a transaction, the situation is
The picture above is about the method abc Invocation time ,a Method 、b Method 、c The transaction shape of the method function abc(){
this.a(){}
this.c(){}
}
@Transactional
function a(){
Yes A Table modification , It took five seconds
}
@Transactional
function b(){
Yes B Table modification , It took five seconds
}
@Transactional
function c(){
Yes C Table modification , It took five seconds
}
among abc When the method starts to execute , Execute to a Method , lock a surface , When a Method end b At the beginning of the method ,a Table unlocking ,b Table locking , When b Method end c At the beginning of the method ,b Table unlocking c Table locking .
It is equivalent to that the three transaction blocks in the figure below are united and locked together , Total operation time 15 second
If concurrent requests are made twice abc Method, the transaction box is shown in the figure below
among a The watch will be asked first 1 lock 5 Seconds later to unlock , Be asked again 2 lock 5 second ,
among b The watch will also be requested first 1 lock 5 Seconds later to unlock , Be asked again 2 lock 5 second ,
among c The watch will also be requested first 1 lock 5 Seconds later to unlock , Be asked again 2 lock 5 second ,
The request 1 In the unlock table a And then it locked the watch b Five seconds , At the same time a Be asked again 2 lock 5 second
By analogy , request 2 All asking for 1 After unlocking the corresponding table , Lock the table ,
So the total running time 20 second
Two 、 Large transactions @Transactional
function abc(){
this.a(){}
this.b(){}
this.c(){}
}
funct.........
版权声明
本文为[Irving the procedural ape]所创,转载请带上原文链接,感谢
边栏推荐
- mongo 用户权限 登录指令
- Understanding formatting principles
- Metersphere developer's Manual
- Exclusive interview of guests at | 2020 PostgreSQL Asia Conference: Wang Tao
- Application insights application insights use application maps to build request link views
- How to make characters move
- 迅为iMX6开发板-设备树内核-menuconfig的使用
- What are the highlights of Huawei mate 40 series with HMS?
- image operating system windows cannot be used on this platform
- Will blockchain be the antidote to the global epidemic accelerating the transformation of Internet enterprises?
猜你喜欢
Metersphere developer's Manual
Why is the LS command stuck when there are too many files?
Multi robot market share solution
GitHub: the foundation of the front end
意外的元素..所需元素..
Novice guidance and event management system in game development
Summary of front-end interview questions (C, s, s) that front-end engineers need to understand (2)
2020-08-15:什么情况下数据任务需要优化?
window系统 本机查找端口号占用方法
A small goal in 2019 to become a blog expert of CSDN
随机推荐
An article taught you to download cool dog music using Python web crawler
[byte jumps, autumn recruitment Posts open] ohayoo! Don't leave after school, I want to ask you to play games!!!
面试官: ShardingSphere 学一下吧
ES6 learning notes (4): easy to understand the new grammar of ES6
Markdown tricks
迅为-iMX6ULL开发板上配置AP热点
2020-08-19:TCP是通过什么机制保障可靠性的?
Share with Lianyun: is IPFs / filecoin worth investing in?
小熊派开发板实践:智慧路灯沙箱实验之真实设备接入
Using iceberg on kubernetes to create a new generation of cloud original data Lake
意外的元素..所需元素..
事务的本质和死锁的原理
ES6 learning notes (2): teach you to play with class inheritance and class objects
(2) ASP.NET Core3.1 Ocelot routing
Python basic variable type -- list analysis
list转换map(根据key来拆分list,相同key的value为一个list)
What are the highlights of Huawei mate 40 series with HMS?
Top 5 Chinese cloud manufacturers in 2018: Alibaba cloud, Tencent cloud, AWS, telecom, Unicom
Can you do it with only six characters?
All the way, I was forced to talk about C code debugging skills and remote debugging