论坛首页 综合技术版 Database

mysql replication中耗时更新操作阻塞整个库更新的问题如何解决

浏览 2889 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
时间:2008-07-24
pi1ot 写道
ztka 写道
pi1ot 写道
luxbob 写道
并发会有问题,比如有3个update:A B C, 都是更新一个表,并且有依赖,必须按照A B C 顺序。
Slave上,A先执行,此时表被lock,B C 线程运行阻塞。
过了一会,A 执行完毕,然后B C 苏醒,此时只会有一个线程执行B 或 C ,如果C 先执行了,
结果就违反了依赖顺序。


对于同一个表,当然还是要维持一个fifo的执行队列,我所设想的方案也是这样的。
目的是避免阻塞其他的无关或者可以说是无辜的表的更新。


如果不同表依赖关系呢?


不同表的执行顺序依赖,即使在master端跑起来也是无法预料结果的,所以应该不算是replication本身的问题吧


问题就在于master端执行好的,你replication端出问题。
   
0 请登录后投票
时间:2008-07-24
ztka 写道
pi1ot 写道
ztka 写道
pi1ot 写道
luxbob 写道
并发会有问题,比如有3个update:A B C, 都是更新一个表,并且有依赖,必须按照A B C 顺序。
Slave上,A先执行,此时表被lock,B C 线程运行阻塞。
过了一会,A 执行完毕,然后B C 苏醒,此时只会有一个线程执行B 或 C ,如果C 先执行了,
结果就违反了依赖顺序。


对于同一个表,当然还是要维持一个fifo的执行队列,我所设想的方案也是这样的。
目的是避免阻塞其他的无关或者可以说是无辜的表的更新。


如果不同表依赖关系呢?


不同表的执行顺序依赖,即使在master端跑起来也是无法预料结果的,所以应该不算是replication本身的问题吧


问题就在于master端执行好的,你replication端出问题。


那只能依靠RBR复制了
   
0 请登录后投票
论坛首页 综合技术版 Database

跳转论坛:
JavaEye推荐