采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师,遇到了一个脏读问题。其中数据库事务隔离级别是read committed。@transaction注解里面有三步操作:1,对A表进行插入;2,对B表进行插入;3,推送消息给队列。队列消息出来后,走rpc请求进行A表和B表进行查询。结果A表数据查到了,而B表数据没查到。请问老师,这种情况下,会是数据库bug么?
同学好,我觉得这个应该跟业务代码处理相关,跟数据库无关,数据库运行这么久了,类似的需求很多,不可能出现这样的bug,如果不放心可以看数据库源码,可我感觉需要先从消息队列这块定位,多打些日志,看看期间发生了什么。
老师,当时rpc在一秒内发起了三次请求。前两次都发生了a表数据读取成功,b表数据读取失败。第三次是a表数据读取成功,b表数据读取成功,正确返回。判断a表数据读取成功是因为a表查询有数据非空检验。判断b表读取失败,是因为日志打出了报错位置的行数,空指针了。
然后就是这种情况很少见,目前就发生一次。所以才会怀疑是数据库bug,或者其他莫名其妙的工具bug
具体还是需要多打日志定位呢,我这不了解同学的实际情况,只能给出这样的建议,应该不是数据库的bug
登录后可查看更多问答,登录/注册
招聘季即将到来,让百度资深面试官来为你的高薪Offer保驾护航
1.7k 27
2.7k 22
1.2k 15
1.4k 14
1.3k 14