我在 B 站看到一个微博架构师发的一些视频.觉得他讲的东西很实战,加了他的群,而且是哈尔滨的,我本人是佳木斯的所以对他非常有好感
今天上午群里在讨论事务隔离级别的问题.
本身就这一个技术问题大家有着不同的理解很正常,无论说的是对是错我觉得都没啥问题.
主要是针对 MySQL 的 RR 隔离级别下的幻读问题
这时候他表示没有锁就是幻读,还表示 Java 的锁就没学明白,我表达快照读就算不加锁同样没有幻读问题,除非你在事务里面修改了其他事务新增的数据,那就没办法了
然后就开始攻击我了,说官方文档写的清楚.
然后我去 MySQL 官方看,同时自己做了验证,我的理解是普通 Select 无论加不加锁,无论怎么查询都不会有幻读问题,如果 for update 或者 delete update 这种操作就会用临建锁或者间隙锁来保证一致.
所以他的结论"不加锁都是幻读" 就是不对的
还上升到 java 的锁,CopyOnWirteArrayList 不就是快照实现吗? 一个快照迭代器创建之后就是不会被其他线程影响啊,难道迭代器不加锁要被 add 影响吗? 无锁保证数据一致的方法多了,JcTool 里面好多队列都是
当我想把官方这个截图贴到群里的时候,我就已经被踢了. 我巨无语,一个资深技术专家可以这么讨论问题的.
然后我去 B 站质问他,果不其然 B 站也把我拉黑了
这就是架构师的格局吗 开了眼了
我觉得无论我说的是不是对的,技术问题起码应该就事论事,直接开始人身攻击,属实牛
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://www.v2ex.com/t/1039525
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.