在一个群里被恶心坏了

223 天前
 gongxuanzhang
我在 B 站看到一个微博架构师发的一些视频.觉得他讲的东西很实战,加了他的群,而且是哈尔滨的,我本人是佳木斯的所以对他非常有好感
今天上午群里在讨论事务隔离级别的问题.
本身就这一个技术问题大家有着不同的理解很正常,无论说的是对是错我觉得都没啥问题.
主要是针对 MySQL 的 RR 隔离级别下的幻读问题






这时候他表示没有锁就是幻读,还表示 Java 的锁就没学明白,我表达快照读就算不加锁同样没有幻读问题,除非你在事务里面修改了其他事务新增的数据,那就没办法了





然后就开始攻击我了,说官方文档写的清楚.

然后我去 MySQL 官方看,同时自己做了验证,我的理解是普通 Select 无论加不加锁,无论怎么查询都不会有幻读问题,如果 for update 或者 delete update 这种操作就会用临建锁或者间隙锁来保证一致.
所以他的结论"不加锁都是幻读" 就是不对的

还上升到 java 的锁,CopyOnWirteArrayList 不就是快照实现吗? 一个快照迭代器创建之后就是不会被其他线程影响啊,难道迭代器不加锁要被 add 影响吗? 无锁保证数据一致的方法多了,JcTool 里面好多队列都是



当我想把官方这个截图贴到群里的时候,我就已经被踢了. 我巨无语,一个资深技术专家可以这么讨论问题的.

然后我去 B 站质问他,果不其然 B 站也把我拉黑了



这就是架构师的格局吗 开了眼了


我觉得无论我说的是不是对的,技术问题起码应该就事论事,直接开始人身攻击,属实牛
24233 次点击
所在节点    程序员
161 条回复
linxb
223 天前
其实这个可以看林晓斌的《 mysql 实战 45 讲》,关于幻读的讲解,说的非常仔细了
zhuisui
223 天前
我通篇看下来,包括技术和交流方式两条线,尝试分析一下
1. 先说交流方式
- 架构师嘛,我猜估计资历和年龄都不小,有点脾气也能说得过去吧。上来先是教训小朋友的口气,然后是有点不太耐心仔细的回答,最后一竿子打死看起来不怎么靠谱的新人。我想说是没那么好,但是也没那么差。这个世界就是这么浮躁。
- 题主嘛,开口就是“你说得不对”(技术的东西我一会儿说),直接莽撞,然后回答也没那么严谨仔细(第二句“但是...”,下面说),也是充满了年轻人(我猜的)的脾气,也没做到处事严谨仔细。

在我看来半斤八两。
2. 再说技术
我很久没看 MySQL 了,临时搜索了解的脏读、不可重复读、幻读三个问题,以及快照读、当前读俩读取手段,还有可重复读和串行读四种隔离级别,也看到一些文章提到可重复读对于当前读手段,会有产生幻读问题的情况。当然我也没有验证,不过人家声称是验证了的,所以我觉得这是可信的。这里又牵扯到 MySQL 版本的问题。
我想说,这个特定场景在特定时空下肯定是存在的,而且这和题主的声称(但是...)的场景也相左。(不知道题主说的修改、冲突具体指啥,也不是专有名词概念,也不一定是指“可重复读对于当前读产生幻读问题”)
可以认为题主自己的技术也不严谨,一开始声称是 MySQL 实现上用 innodb 彻底解决了幻读问题,说对方是只知道规范。但是实际上是反过来的,对方才是很了解实现的人(毕竟都在美团了应该也见过不少特殊场景了),而题主自己主要是在看文档(虽然自己做了测试,但没提到上述场景)。

所以技术我站对方。

但是再看一下这个帖子的标题吧,我觉得题主过分了。
我自己吧,不觉得架构师就应该有好人品好涵养什么的,这是一个技术称谓,又不是“大师”“方丈”😃。
over
vczyh
223 天前
这种群根本不是讨论技术的
gongxuanzhang
223 天前
@zhuisui 首先我确实没表达清楚,是我的问题,这个冲突比较模糊,我想表达的是在正常查询的时候没有幻读,但是如果在你的事务过程中,你去修改了其他事务提交过的数据,或者是你自己新增,造成了主键冲突. 就会有问题, 这个是不是幻读的概念我也不知道,总之是有问题.

他表达的观点是: 不上锁都是幻读,很显然是错的. 官方文档的快照读就是无锁.
再次我并不觉得我不了解实现,相反我自己为了学习 innodb 自己写了一个项目用 kotlin 实现 innodb,还没写完.但是基本架构和功能都完成了,从经验上我确实远不如他,这也是我关注他的原因.

最后,你可以教育我,可以教训我,但是教育方式是什么? 别 BB 了 然后踢了.
还是拿出我的逻辑问题死死打我
dolorain
223 天前
B 站发个视频揭露他吧。
FireKey
223 天前
看语气明显群里被捧臭脚习惯了,碰到你这种较真的拉不下脸
xguanren
223 天前
正常 这也是现在为什么拒绝大龄程序员.因为不得不承认 随着时间的推离.某些人会故步自封.拒绝外部新的资讯.远不如年轻程序员接受新鲜技术.新鲜事物的接受能力高.或者某个地方你稍微反对他.他就会恼羞成怒.其实映射到家庭.有点像家庭当中.孩子本身刚开始就懵懂.其中父亲的话.会有非常多的这种固有认知.从而影响.
z1829909
223 天前
这种人数很多的技术群, 发展的最终形态就是总有几个 2b 天天不上班似的一直说些有的没的, 没事和你杠几句, 正经讨论技术的会被他们恶心走, 最后成养蛊了.
想要技术群保持健康, 要么是小圈子认识的人, 要么天天有人发涩图新闻.
billzhuang
223 天前
支持你干他,我给你投币
shapper
223 天前
本来人家建群就是想建立权威带领群友收割韭菜的,你这进去讲道理,扰乱发财,不 K 你才怪
laikick
223 天前
别加任何和技术有关的群. 多看代码. 多参加开源项目最实际
TomDu
223 天前
看完感觉.. 就是这些知识自己平时都记不住,需要用的时候才会临时去 Google

唉,勇哥牛逼。
crab
223 天前
技术专家技术专家.jpg
qieqie
223 天前
几周前我还在 B 站上刷到这个人锐评 TiDB ,看了 5 分钟就发现是个外行胡说八道,在评论区喷了他他都不敢回我。
qlee1122
223 天前
微博的不都在微博玩吗,像泰迪老师这些这些 https://weibo.com/u/1809500942
oneisall8955
223 天前
B 站视频在哪,参观下
miyuki
223 天前
这就又要搬出 @clowwindy 的经典结论:编程圈子都会变成“小白”围着“大大”转,“小白”捧“大大”臭脚,“大大”获得夸奖而自我满足
aragakiyuii
223 天前
DefoliationM
222 天前
在微信上这种所谓技术群里讨论,不如把 GitHub 的 issue 当论坛看,感觉这个更有意思。
Hisoka
222 天前
在他的地盘上,他的权威一旦被成功挑战他就完了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1039525

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX