当前位置:网站首页>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]所创,转载请带上原文链接,感谢
边栏推荐
- 检测证书过期脚本
- An article taught you to use HTML5 SVG tags
- Axios learning notes (2): easy to understand the use of XHR and how to package simple Axios
- Kubernetes and OAM to build a unified, standardized application management platform knowledge! (Internet disk link attached)
- 大数据处理黑科技:揭秘PB级数仓GaussDB(DWS) 并行计算技术
- What grammar is it? ]
- 2020-09-03:裸写算法:回形矩阵遍历。
- Zhou Jie: database system of East China Normal University
- What kind of music do you need to make for a complete game?
- Application insights application insights use application maps to build request link views
猜你喜欢
NAND FLASH的接口控制设计
STM32F030K6T6兼容替换灵动MM32F031K6T6
Bitcoin once exceeded 14000 US dollars and is about to face the test of the US election
Countdown | 2020 PostgreSQL Asia Conference - agenda arrangement of Chinese sub Forum
CloudQuery V1.2.0 版本发布
打工人好物——磨炼钢铁意志就要这样高效的电脑
Small program introduction to proficient (2): understand the four important files of small program development
Swagger 3.0 brushes the screen every day. Does it really smell good?
What is the meaning of sector sealing of filecoin mining machine since the main network of filecoin was put online
小熊派开发板实践:智慧路灯沙箱实验之真实设备接入
随机推荐
2020-08-14:数据任务的执行引擎用的哪些?
The native API of the future trend of the front end: web components
The isolation level of transaction and its problems
list转换map(根据key来拆分list,相同key的value为一个list)
NAND FLASH的接口控制设计
Novice guidance and event management system in game development
Stickinengine architecture 11 message queue
Application insights application insights use application maps to build request link views
An article will introduce you to HTML tables and their main attributes
Git rebase is in trouble. What to do? Waiting line
Kubernetes and OAM to build a unified, standardized application management platform knowledge! (Internet disk link attached)
Why is the LS command stuck when there are too many files?
意外的元素..所需元素..
How to prepare for the system design interview
Some operations kept in mind by the front end foundation GitHub warehouse management
谷歌浏览器实现视频播放加速功能
Will blockchain be the antidote to the global epidemic accelerating the transformation of Internet enterprises?
2020-08-18:介绍下MR过程?
What is the purchasing supplier system? Solution of purchasing supplier management platform
迅为-iMX6ULL开发板上配置AP热点