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

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

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

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

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

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

(19)中华人民共和国国家知识产权局(12)发明专利申请(10)申请公布号CN106776790A(43)申请公布日2017.05.31(21)申请号201611046602.6(22)申请日2016.11.11(71)申请人北京奇虎科技有限公司地址100088北京市西城区新街口外大街28号D座112室(德胜园区)申请人奇智软件(北京)有限公司(72)发明人王康(74)专利代理机构北京市浩天知识产权代理事务所(普通合伙)11276代理人宋菲陈翠(51)Int.Cl.G06F17/30(2006.01)G06F9/50(2006.01)权利要求书1页说明书8页附图3页(54)发明名称基于令牌的并发主从同步方法及装置(57)摘要本发明公开了一种基于令牌的并发主从同步方法及装置。所述方法包括:接收来自主数据库的数据同步任务;按照接收数据同步任务的顺序,为数据同步任务设置令牌;将设置有令牌的数据同步任务分发给多个线程中一个线程,由该线程根据令牌执行数据同步任务。利用本发明上述方案,从数据库有多个线程可以用于并行执行部分数据同步任务,提高了数据同步速度,克服了从数据库单线程执行数据同步任务造成的主数据库与从数据库中数据显著不同步问题,通过设置令牌来限定数据同步任务的执行顺序,并依据令牌串行执行数据同步任务,保证与主数据库的数据一致。CN106776790ACN106776790A权利要求书1/1页1.一种基于令牌的并发主从同步方法,其包括:接收来自主数据库的数据同步任务;按照接收数据同步任务的顺序,为所述数据同步任务设置令牌;将设置有令牌的数据同步任务分发给多个线程中一个线程,由该线程根据令牌执行所述数据同步任务。2.根据权利要求1所述的基于令牌的并发主从同步方法,其中,所述将设置有令牌的数据同步任务分发给多个线程中一个线程进一步包括:依据负载均衡策略,从多个线程选择一个线程;将设置有令牌的数据同步任务分发给所选择的线程。3.根据权利要求1所述的基于令牌的并发主从同步方法,其中,所述数据同步任务包括:将数据写入从数据库的写数据操作,以及将所述写数据操作记录到日志文件中的写日志操作。4.根据权利要求3所述的基于令牌的并发主从同步方法,其中,各个线程之间执行的所述写数据操作为并行操作;各个线程之间执行的所述写日志操作为串行操作。5.根据权利要求1所述的基于令牌的并发主从同步方法,其中,所述由该线程根据令牌执行所述数据同步任务进一步包括:判断顺序排在所述令牌前一位的令牌对应的数据同步任务的写日志操作是否执行完成;其中,所述令牌的排列顺序与接收数据同步任务的顺序一致;若是,则执行用于将所述写数据操作记录到日志文件中的写日志操作;若否,则继续等待。6.根据权利要求1所述的基于令牌的并发主从同步方法,其中,针对同一数据的数据同步任务分发给同一线程。7.一种基于令牌的并发主从同步装置,其包括:接收模块,适于接收来自主数据库的数据同步任务;设置模块,适于按照接收数据同步任务的顺序,为所述数据同步任务设置令牌;分发模块,适于将设置有令牌的数据同步任务分发给多个并行处理模块中一个并行处理模块;多个并行处理模块,适于根据令牌执行所述数据同步任务。8.根据权利要求7所述的基于令牌的并发主从同步装置,其中,所述分发模块进一步适于:依据负载均衡策略,从多个并行处理模块选择一个并行处理模块;将设置有令牌的数据同步任务分发给所选择的并行处理模块。9.根据权利要求7所述的基于令牌的并发主从同步装置,其中,所述数据同步任务包括:将数据写入从数据库的写数据操作,以及将所述写数据操作记录到日志文件中的写日志操作。10.根据权利要求9所述的基于令牌的并发主从同步装置,其中,各个并行处理模块之间执行的所述写数据操作为并行操作;各个并行处理模块之间执行的所述写日志操作为串行操作。2CN106776790A说明书1/8页基于令牌的并发主从同步方法及装置技术领域[0001]本发明涉及互联网技术领域,具体涉及一种基于令牌的并发主从同步方法及装置。背景技术[0002]分布式数据存储系统就是将数据分散存储在多台独立的设备上,也就是说,针对一份数据,存储至N个数据库上,一般是存储至一个主数据库和多个从数据库,其中,从数据库中的数据是与主数据库进行同步获得的。[0003]现有技术中主数据库和从数据库之间的数据同步过程具体为,主数据库接收到客户端写数据的请求后,将数据写入主数据库中,并将写数据操作记录到主数据库的日志文件中。随后,主数据库向从数据库发送数据同步任务,从数据库根据数据同步任务执行将数据写入从数据库的写数据操作,以及将写数据操作记录到从数据库的日志文件中。在该数据同步过程中,从数据库只有一个线程用于处理主数据库发送的数据同步任务。该线程接收来自主数据库的数据同步任务,需要串行执行数据同