预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共17页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

(19)中华人民共和国国家知识产权局(12)发明专利申请(10)申请公布号CN106776775A(43)申请公布日2017.05.31(21)申请号201611040280.4(22)申请日2016.11.11(71)申请人北京奇虎科技有限公司地址100088北京市西城区新街口外大街28号D座112室(德胜园区)申请人奇智软件(北京)有限公司(72)发明人王康(74)专利代理机构北京市浩天知识产权代理事务所(普通合伙)11276代理人宋菲陈翠(51)Int.Cl.G06F17/30(2006.01)G06F9/50(2006.01)权利要求书2页说明书12页附图2页(54)发明名称并发主从同步方法及装置(57)摘要本发明公开了一种并发主从同步方法及装置。所述方法包括:接收来自主数据库的数据同步任务,数据同步任务包括可并行执行的第一操作和需串行执行的第二操作;在从数据库处于第一状态下,将数据同步任务中的第一操作分发给多个第一线程中一个第一线程执行,由第二线程执行数据同步任务中的第二操作。上述方案可以利用从数据库的多个第一线程执行数据同步任务,提高了数据同步速度,克服了从数据库单线程执行数据同步任务造成的主数据库与从数据库中数据显著不同步问题,同时保证了在日志文件按照接收数据同步任务的顺序记录数据操作。CN106776775ACN106776775A权利要求书1/2页1.一种并发主从同步方法,其包括:接收来自主数据库的数据同步任务,所述数据同步任务包括可并行执行的第一操作和需串行执行的第二操作;在从数据库处于第一状态下,将数据同步任务中的第一操作分发给多个第一线程中一个第一线程执行,由第二线程执行数据同步任务中的第二操作。2.根据权利要求1所述的并发主从同步方法,其中,所述方法还包括:在从数据库处于第二状态下,按照接收数据同步任务的顺序,为所述数据同步任务设置令牌;将设置有令牌的数据同步任务分发给多个第一线程中一个第一线程,由该第一线程执行所述数据同步任务中的第一操作和第二操作。3.根据权利要求1所述的并发主从同步方法,其中,所述将数据同步任务中的第一操作分发给多个第一线程中一个第一线程执行进一步包括:依据负载均衡策略,从多个第一线程选择一个第一线程;将所述数据同步任务中的第一操作分发给所选择的第一线程执行。4.根据权利要求2所述的并发主从同步方法,其中,所述将设置有令牌的数据同步任务分发给多个第一线程中一个第一线程进一步包括:依据负载均衡策略,从多个第一线程选择一个第一线程;将设置有令牌的数据同步任务分发给所选择的第一线程。5.根据权利要求2所述的并发主从同步方法,其中,在从数据库处于第二状态下,各个第一线程之间执行的所述第一操作为并行操作;各个第一线程之间执行的所述第二操作为串行操作。6.根据权利要求2所述的并发主从同步方法,其中,在由该第一线程执行所述数据同步任务中的第二操作之前,所述方法还包括:判断顺序排在所述令牌前一位的令牌对应的数据同步任务的第二操作是否执行完成;其中,所述令牌的排列顺序与接收数据同步任务的顺序一致;若否,则继续等待,直至顺序排在所述令牌前一位的令牌对应的数据同步任务的第二操作执行完成。7.根据权利要求2所述的并发主从同步方法,其中,所述方法进一步包括:判断所述从数据库是否为从第二状态切换为第一状态;若是,判断已设置令牌的数据同步任务是否执行完成;若已设置令牌的数据同步任务未执行完成,则在所述将数据同步任务中的第一操作分发给多个第一线程中一个第一线程执行,由第二线程执行数据同步任务中的第二操作之前,所述方法还包括:等待已设置令牌的数据同步任务执行完成。8.根据权利要求2所述的并发主从同步方法,其中,所述方法进一步包括:判断所述从数据库是否为从第一状态切换为第二状态;若是,则判断第二线程是否执行完所有第二操作;若第二线程未执行完所有第二操作,则在所述按照接收数据同步任务的顺序,为所述数据同步任务设置令牌之前,所述方法还包括:等待第二线程执行完所有第二操作。9.根据权利要求1-8中任一项所述的并发主从同步方法,其中,所述第一操作为用于将2CN106776775A权利要求书2/2页数据写入从数据库的写数据操作,所述第二操作为用于将写数据操作记录到从库日志文件中的写日志操作。10.一种并发主从同步装置,其包括:接收模块,适于接收来自主数据库的数据同步任务,所述数据同步任务包括可并行执行的第一操作和需串行执行的第二操作;分发模块,适于在从数据库处于第一状态下,将数据同步任务中的第一操作分发给多个并行处理模块中一个并行处理模块执行;串行处理模块,适于在从数据库处于第一状态下,执行数据同步任务中的第二操作;多个并行处理模块,适于在从数据库处于第一状态下,执行数据同步任务中的第一操作。3CN106776775A说明书