当前位置:网站首页>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]所创,转载请带上原文链接,感谢
边栏推荐
- Junit测试出现 empty test suite
- 嘉宾专访|2020 PostgreSQL亚洲大会阿里云数据库专场:曾文旌
- An article taught you to download cool dog music using Python web crawler
- Stickinengine architecture 12 communication protocol
- The isolation level of transaction and its problems
- 迅为-iMX6ULL开发板上配置AP热点
- How to make characters move
- Zhou Jie: database system of East China Normal University
- Take you to learn the new methods in Es5
- How about small and medium-sized enterprises choose shared office?
猜你喜欢

Zhou Jie: database system of East China Normal University

Countdown | 2020 PostgreSQL Asia Conference - agenda arrangement of Chinese sub Forum

EOS founder BM: what's the difference between UE, UBI and URI?

An article will introduce you to CSS3 background knowledge

非易失性MRAM存储器应用于各级高速缓存

Markdown tricks

Exclusive interview of guests at | 2020 PostgreSQL Asia Conference: Wang Tao

事务的本质和死锁的原理

【涂鸦物联网足迹】涂鸦云平台全景介绍

谷歌浏览器实现视频播放加速功能
随机推荐
Using an example to understand the underlying processing mechanism of JS function
Summary of front-end interview questions (C, s, s) that front-end engineers need to understand (2)
The native API of the future trend of the front end: web components
递归、回溯算法常用数学基础公式
Will blockchain be the antidote to the global epidemic accelerating the transformation of Internet enterprises?
【学习】接口测试用例编写和测试关注点
2020 database technology conference helps technology upgrade
es创建新的索引库并拷贝旧的索引库 实践亲测有效!
How to play sortable JS vuedraggable to realize nested drag function of forms
Elasticsearch database | elasticsearch-7.5.0 application construction
html+ vue.js Implementing paging compatible IE
Share with Lianyun: is IPFs / filecoin worth investing in?
事务的本质和死锁的原理
Exclusive interview of guests at | 2020 PostgreSQL Asia Conference: Wang Tao
磁存储芯片STT-MRAM的特点
jenkins安装部署过程简记
STM32F030C6T6兼容替换MM32SPIN05PF
An article will take you to understand SVG gradient knowledge
What are the highlights of Huawei mate 40 series with HMS?
Metersphere developer's Manual