|
精华帖 (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端出问题。 |
|
| 返回顶楼 | |
|
时间: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复制了 |
|
| 返回顶楼 | |





