当前位置:网站首页>Yyds dry inventory MySQL RC transaction isolation level implementation
Yyds dry inventory MySQL RC transaction isolation level implementation
2022-07-01 16:58:00 【Official account javaedge】
Read Committed, During the transaction , As long as other transactions modify the data and submit , You can read the data modified by others , So there will be non repeatable 、 The problem of unreal reading .
ReadView The mechanism is based on undo log A set of view reading mechanism implemented by version chain , The transaction generates a ReadView:
- If the data is updated for the transaction itself , I can read
- Or when you generate ReadView The value modified by the previously submitted transaction , Also readable
- But if you generate ReadView when , It's already active , But if it's in your generation ReadView Then modified the data and submitted , You can't read
- Or you generate ReadView The transaction started later modifies the data , Also submitted , I can't read
So the above mechanism is ReadView How a principle of is based on ReadView Realization RC? Core design : When a transaction is set RC, Every time he makes a query , Regenerate a ReadView!
There is a row of data in the database , It's a business id=50 A business of , Inserted a long time ago , Currently active transactions :
- Business A(id=60)
- Business B(id=70)
Now business B launch update, Update this data to b, So at this time, the data trx_id Will become a business B Of id=70, At the same time, a undo log:

At this time , Business A To initiate a query operation , It will generate a ReadView

When the transaction A Initiate a query , Find the current data trx_id=70. Belong to ReadView The business of id Between ranges , It means that he generated ReadView There was this active business before , It is this transaction that modifies the value of this data , But at this point the business B It hasn't been submitted yet , therefore ReadView Of m_ids In the active transaction list , Yes [60, 70] Two id, At this point, according to ReadView Mechanism , Business A Cannot find transaction B Modified value b.
Then follow it undo log Look down the version chain , You'll find an original value , Found that the trx_id yes 50, Less than the present ReadView Inside min_trx_id, It means that he generated ReadView Before , There is a transaction that inserts this value and has already committed , So you can find the original value .
next , What if B Submit , When submitted, the transaction will be explained B Will not be active in the database . Business A Check again next time , You can read the transaction B The modified value . How on earth does that make things A Be able to read the submitted transaction B The modified value ?
Make the transaction A Next time you initiate a query , Regenerate into one ReadView, The only active transactions in the database are transactions A, therefore :
- min_trx_id yes 60
- mac_trx_id yes 71
- m_ids=60, Business B Of id=70 Will not appear in m_ids Active transaction list
At this point, the transaction A Again, based on this ReadView Go to query , You'll find this data trx_id=70, Although in ReadView Of min_trx_id and max_trx_id Between ranges , But not at this time m_ids In the list , Explain the business B When generating this ReadView Submitted before . Explain that you can find the transaction this time B The modified value , At this point, the transaction A You'll find the value B.
边栏推荐
- Jojogan practice
- 中国氮化硅陶瓷基板行业研究与投资前景报告(2022版)
- redis -- 数据类型及操作
- 美国国家安全局(NSA)“酸狐狸”漏洞攻击武器平台技术分析报告
- 今天14:00 | 港大、北航、耶鲁、清华、加大等15位ICLR一作讲者精彩继续!
- C language input / output stream and file operation
- 中国冰淇淋市场深度评估及发展趋势预测报告(2022版)
- Free lottery | explore the future series of blind box digital copyright works of "abadou" will be launched on the whole network!
- GaussDB(for MySQL) :Partial Result Cache,通过缓存中间结果对算子进行加速
- Soft test network engineer full truth simulation question (including answer and analysis)
猜你喜欢
随机推荐
智能运维实战:银行业务流程及单笔交易追踪
[Supplément linguistique c] déterminer quel jour est demain (date de demain)
中国生物降解塑料市场预测与投资战略报告(2022版)
C language input / output stream and file operation
游戏行业安全选择游戏盾,效果怎么样?
【splishsplash】关于如何在GUI和json上接收/显示用户参数、MVC模式和GenParam
Stegano in the world of attack and defense
[C language supplement] judge which day tomorrow is (tomorrow's date)
Alibaba cloud, Zhuoyi technology beach grabbing dialogue AI
How wild are hackers' ways of making money? CTF reverse entry Guide
【C语言基础】12 字符串
6月刊 | AntDB数据库参与编写《数据库发展研究报告》 亮相信创产业榜单
模板引擎Velocity 基礎
China carbon disulfide industry research and investment strategy report (2022 Edition)
Transition technology from IPv4 to IPv6
Cookies and session keeping technology
Hi Fun Summer, play SQL planner with starrocks!
英特尔开源深度学习工具库 OpenVINO,将加大与本土软硬件方合作,持续开放
Is the securities account given by the head teacher of goucai school safe? Can I open an account?
存在安全隐患 起亚召回部分K3新能源









