mvcc是怎么实现无锁的,网上全都是说读视图,但是就算有读视图,也要先去读取数据行的事务ID,如果这个事务ID可见,那么这个数据行可见,但是其他并发写可能会改变这个数据行啊,读操作还是可能读到一个中间结果,这怎么解决,求佬解惑
全部评论
mvcc解决的是快照读。利用多版本控制执行的。也就是说修改操作并不是直接在原来上面修改。因为要保持老版本。利用undo log日志。
1 回复 分享
发布于 2024-06-10 10:45 广东
mvcc这里指的是数据库的上层,不会像当前读那样锁住表的一行。数据库具体的底层实现跟这些关系不大,可能用的是cas也可能用的是mutex。具体实现估计要看源码。
点赞 回复 分享
发布于 2024-08-04 16:39 北京
mvcc实现读不阻塞写,写不阻塞读,写依然阻塞写,读阻塞读。
点赞 回复 分享
发布于 2024-08-03 09:56 天津
会不会我在写的时候先申请一片内存写入新数据,最后把新数据的回滚指针指向老数据
点赞 回复 分享
发布于 2024-07-30 19:18 浙江
mvcc不是无锁的,只是一种思想,读写互不阻塞,实现分mvocc,mv2pl等,想要具体了解去看论文
点赞 回复 分享
发布于 2024-07-10 20:11 北京
只要保证rollptr和tra index原子修改即可 正在修改的数据当前读是看不到的
点赞 回复 分享
发布于 2024-06-13 12:08 广东
我怎么感觉没懂通你这个描述呢
点赞 回复 分享
发布于 2024-06-10 10:51 山东
可以理解简单,一个修改操作提交会放入到链头,而且在他之前的快照读事务,读取到的链中的数据。
点赞 回复 分享
发布于 2024-06-10 10:48 广东

相关推荐

03-09 18:05
中南大学 Java
浩鲸科技Java面经1. Synchronized锁升级2. Synchronized与ReentrantLock的区别3. 线程池的工作流程4. 线程池的拒绝策略5. MySQL的ACID6. 原子性是什么、如何实现7. 乐观锁的优缺点、CAS8. MySQL的事务分级9. 可重复读解决了哪些问题————————————————————浩鲸科技2026春招启动!【公司概况】浩鲸云计算科技股份有限公司成立于2003年,是全球领先的数字化技术和服务提供商,业务覆盖全球80多个国家和地区,服务近18亿终端用户及超150家主流电信运营商,在AI大模型、数据治理、全栈云服务等领域有深入技术探索,拥有多项荣誉与资质。【工作地点】南京、广州、长沙、福州、厦门、西安【招聘岗位】核心研发类、数据算法类、综合技术类、市场营销类、职能支持类【员工福利】五险一金+商业意外险+补充医疗保险,提供年度体检、心理关怀、职场健康活动,还有弹性福利可自主升级,有节日活动、特色福利(如822浩鲸日、亲子嘉年华),即时认可机制,以及创意团建、公益竞技等活动,提供管理与专家双通道晋升。【内推链接】https://iwhalecloud1.zhiye.com/campus/jobs?shareId=9e31d031-fc41-41bc-b136-d40fe31e6779&shareSource=2&qr=1&memory=%7B%7D&silence=1【内推码】EVKCGR通过内推链接投递,自动计入内推,简历优先筛选!注意每人仅可投递2个意向志愿,投递后不可修改~
点赞 评论 收藏
分享
评论
2
18
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务