当前位置:网站首页>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]所创,转载请带上原文链接,感谢
边栏推荐
- How does filecoin's economic model and future value support the price of fil currency breaking through thousands
- Why is the LS command stuck when there are too many files?
- Using an example to understand the underlying processing mechanism of JS function
- Introduction to the development of small game cloud
- Hdu3974 assign the task segment tree DFS order
- The isolation level of transaction and its problems
- Small program introduction to proficient (2): understand the four important files of small program development
- C calls SendMessage to refresh the taskbar icon (the icon does not disappear at the end of forcing)
- 2020-08-30:裸写算法:二叉树两个节点的最近公共祖先。
- How much disk space does a new empty file take?
猜你喜欢
From overseas to China, rancher wants to do research on container cloud market
Python basic variable type -- list analysis
GitHub: the foundation of the front end
C calls SendMessage to refresh the taskbar icon (the icon does not disappear at the end of forcing)
PHP application docking justswap special development kit【 JustSwap.PHP ]
mongo 用户权限 登录指令
面试官: ShardingSphere 学一下吧
意外的元素..所需元素..
How much disk space does a file of 1 byte actually occupy
Bitcoin once exceeded 14000 US dollars and is about to face the test of the US election
随机推荐
Summary of common SQL statements
ES6 learning notes (5): easy to understand ES6's built-in extension objects
An article taught you to download cool dog music using Python web crawler
行为型模式之备忘录模式
Contract trading system development | construction of smart contract trading platform
Call analysis of start method in JNI thread and callback analysis of run method
Stickinengine architecture 11 message queue
打工人好物——磨炼钢铁意志就要这样高效的电脑
Understanding formatting principles
The legality of IPFs / filecoin: protecting personal privacy from disclosure
Filecoin has completed a major upgrade and achieved four major project progress!
The isolation level of transaction and its problems
ES6 learning notes (3): teach you to use js object-oriented thinking to realize the function of adding, deleting, modifying and checking tab column
Tron smart wallet PHP development kit [zero TRX collection]
An article will take you to understand SVG gradient knowledge
Stickinengine architecture 12 communication protocol
Summary of front-end interview questions (C, s, s) that front-end engineers need to understand (2)
Flink's datasource Trilogy: direct API
ES中删除索引的mapping字段时应该考虑的点
What is alicloud's experience of sweeping goods for 100 yuan?