当前位置:网站首页>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.
边栏推荐
- 今天14:00 | 港大、北航、耶鲁、清华、加大等15位ICLR一作讲者精彩继续!
- 【C语言基础】12 字符串
- Building blocks for domestic databases, stonedb integrated real-time HTAP database is officially open source!
- SQL question brushing 584 Looking for user references
- [flask introduction series] cookies and session
- libcurl下载文件的代码示例
- Soft test software designer full truth simulation question (including answer analysis)
- 巴比特 | 元宇宙每日必读:奈雪币、元宇宙乐园、虚拟股票游戏...奈雪的茶这波“操作拉满”的营销活动你看懂了吗?...
- C語言輸入/輸出流和文件操作
- 单例模式的懒汉模式跟恶汉模式的区别
猜你喜欢
Leetcode 77 combination -- backtracking method
sql刷题627. 变更性别
【C补充】【字符串】按日期排序显示一个月的日程
Germany if was crowned with many awards. How strong is this pair of headphones? In depth evaluation of yinpo GTW 270 hybrid
【PyG】文档总结以及项目经验(持续更新
Rhcsa Road
C語言輸入/輸出流和文件操作
Installation and use of sqoop
【Try to Hack】vulnhub DC4
Today, at 14:00, 15 ICLR speakers from Hong Kong University, Beihang, Yale, Tsinghua University, Canada, etc. continue!
随机推荐
中国锦纶长丝缝纫线发展预测与投资方向研究报告(2022版)
How to cancel automatic search and install device drivers for laptops
Jojogan practice
PR basic clip operation / video export operation
挖财学堂班主任给的证券账户安全吗?能开户吗?
SystemVerilog-结构体(二)
Ring iron pronunciation, dynamic and noiseless, strong and brilliant, magic wave hifiair Bluetooth headset evaluation
China sorbitol Market Forecast and investment strategy report (2022 Edition)
China nylon 11 industry research and future forecast report (2022 Edition)
美国国家安全局(NSA)“酸狐狸”漏洞攻击武器平台技术分析报告
P2893 [USACO08FEB] Making the Grade G(dp&优先队列)
AI高考志愿填报:大厂神仙打架,考生付费围观
SQL question brushing 584 Looking for user references
The difference between the lazy mode of singleton mode and the evil mode
Is the securities account given by the head teacher of goucai school safe? Can I open an account?
sql刷题586. 订单最多的客户
Basic use of MySQL
博睿数据一体化智能可观测平台入选中国信通院2022年“云原生产品名录”
How to use etcd to realize distributed /etc directory
模板引擎Velocity 基礎