当前位置:网站首页>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一作讲者精彩继续!
- unity3d扩展工具栏
- [jetsonnano] [tutorial] [introductory series] [III] build tensorflow environment
- 拼接字符串,得到字典序最小的结果
- PR basic clip operation / video export operation
- 【PyG】文档总结以及项目经验(持续更新
- sql刷题1050. 合作过至少三次的演员和导演
- Chinese diosgenin market forecast and investment strategy report (2022 Edition)
- [pyg] document summary and project experience (continuously updated
- 嗨 FUN 一夏,与 StarRocks 一起玩转 SQL Planner!
猜你喜欢

免费抽奖 | 《阿巴豆》探索未来系列盲盒数字版权作品全网首发!

Leetcode 77 combination -- backtracking method

美国国家安全局(NSA)“酸狐狸”漏洞攻击武器平台技术分析报告

Alibaba cloud, Zhuoyi technology beach grabbing dialogue AI

Stegano in the world of attack and defense

独家消息:阿里云悄然推出RPA云电脑,已与多家RPA厂商开放合作

重磅披露!上百个重要信息系统被入侵,主机成为重点攻击目标

How to use etcd to realize distributed /etc directory

你还在用收费的文档管理工具?我这有更牛逼的选择!完全免费

Redis distributed lock
随机推荐
Redis Distributed Lock
Gaussdb (for MySQL):partial result cache, which accelerates the operator by caching intermediate results
智能运维实战:银行业务流程及单笔交易追踪
Chinese diosgenin market forecast and investment strategy report (2022 Edition)
Machine learning 11 clustering, outlier discrimination
Redis 分布式锁
[kotlin] Introduction to higher-order functions
换掉UUID,NanoID更快更安全!
China BMS battery management system Market Research Report (2022 Edition)
【splishsplash】关于如何在GUI和json上接收/显示用户参数、MVC模式和GenParam
美国国家安全局(NSA)“酸狐狸”漏洞攻击武器平台技术分析报告
中国冰淇淋市场深度评估及发展趋势预测报告(2022版)
重磅披露!上百个重要信息系统被入侵,主机成为重点攻击目标
ShenYu 网关开发:在本地启用运行
挖财学堂班主任给的证券账户安全吗?能开户吗?
Dataframe gets the number of words in the string
阿里云李飞飞:中国云数据库在很多主流技术创新上已经领先国外
Judge whether a binary tree is a balanced binary tree
Redis distributed lock
Jojogan practice