1 .一种基于并发扫描以及并发回放的数据事务复制的方法,其特征在于,
根据Reactor模型,拆分Main Reactor(Scanner)和Sub Reactor(Replayer)两种协程
并发模型,以及通过并发控制确保全部可回放的事务最终都被回放结束;
通过并发的Scanner实现并发对事务回放队列进行扫描,生成可以并发回放的事务,并
且通知回放协程Replayer进行并发的回放。
2 .根据权利要求1所述的方法,其特征在于,
备库的事务数据按照事务ID分段存储到备库的事务数据队列中,根据事务ID为UUID完
全无序的特性,对UUID进行事务ID分段并发扫描,将事务ID UUID分段后,交给Scanner协
程,每个Scanner负责一个UUID分区进行数个Scanner并发扫描,扫描可回放的事务。
3 .根据权利要求2所述的方法,其特征在于,
当Scanner发现可回放的事务后,会将事务ID加入txnList执行enqueu操作,加入事务
ID后,Scanner会执行notify操作,唤醒正在睡眠的Replayer进行事务回放操作。
4 .根据权利要求3所述的方法,其特征在于,
Replayer刚启动后处于睡眠状态,当有事务回放时,会被随机唤醒;被唤醒的Replayer
协程执行事务回放任务,并且清理事务的依赖关系。
5 .根据权利要求4所述的方法,其特征在于,
当发现可回放的事务时,如果发现可回放的事务数等于1,则由当前协程进行回放减少
一次CPU切换的开销;当发现大余1个可回放事务时,Replayer协程会将除去第一个的可回
放事务加入txnList唤醒其他协程进行事务回放。
6 .根据权利要求5所述的方法,其特征在于,
处理重复发现可回放事务,需要对重复发现相同的事务ID进行防御性幂等处理,因此,
需要对每个可回放事务引入txnIDSet进行幂等处理。
7 .根据权利要求6所述的方法,其特征在于,
在全部可回放事务全部回放结束后,结束回放的流程,在此给出回放结束的定义;当可
回放事务全部回放结束后,认为回放结束。
8.根据权利要求7所述的方法,其特征在于,
可回放事务分为3类,过去发现的可回放事务/现在发现的可回放事务/将来发现的可
回放事务,过去发现的可回放事务都会被加入到txnList中,现在发现的可回放事务正在由
replayer进行回放,将来发现的可回放事务是由Scanner扫描UUID进行发现的。
9 .根据权利要求1所述的方法,其特征在于,
可根据CPU的数量,调整Scanner以及Replayer的回放协程的数量,合理设置两组协程
的负载。
权 利 要 求 书
1/1 页
2
评论