CN104699541A - 同步数据的方法、装置、数据传输组件及系统 - Google Patents
同步数据的方法、装置、数据传输组件及系统 Download PDFInfo
- Publication number
- CN104699541A CN104699541A CN201510146300.5A CN201510146300A CN104699541A CN 104699541 A CN104699541 A CN 104699541A CN 201510146300 A CN201510146300 A CN 201510146300A CN 104699541 A CN104699541 A CN 104699541A
- Authority
- CN
- China
- Prior art keywords
- data
- database
- synchronous task
- multiple synchronous
- synchronized
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种同步数据的方法、装置、数据传输组件及系统,该同步数据的方法,应用于具有主从结构的数据库,包括:从主数据库获取待同步数据,并根据所述待同步数据生成多个同步任务;调用至少两个并发的线程,根据预设规则分配所述多个同步任务至所述至少两个并发的线程中;以及利用所述至少两个并发的线程,发送所述多个同步任务至所述从数据库,以供所述从数据库根据所述多个同步任务实现与所述主数据库间的数据同步。本发明实施例提供的技术方案解决了主从数据库单线程同步延时的问题,能够实现实时同步,进而满足后续提供数据服务的需求。
Description
技术领域
本发明涉及计算机技术领域,特别是一种同步数据的方法、装置、数据传输组件及系统。
背景技术
MySQL是一种关系型数据库管理系统,其主从架构是目前使用最多的数据库架构之一,尤其是对于负载量比较大的网站。MySQL在主从架构中,主数据库进行写入、更新、删除等操作,并通过预定的同步策略将这些操作在从数据库也执行一遍,从而达到主从数据库中数据的一致性。
相关技术中,MySQL主从数据库同步的过程为:MySQL主数据库上有写入、更新、删除等操作后,其自身会将这些操作记录到binary log(二进制日志)里,如图1A所示,为了保证同步数据的准确性,从数据库上只有一个同步线程顺序并实时地读取主数据库的binary log,并根据binary log的记录顺序在从数据库上回放执行,从而使从数据库和主数据库中的数据保持一致。
然而,当主数据库的写入、更新、删除等操作较多时,尤其是主数据库在大量业务的触发下,对从数据库同步时会产生大量写入需求,但是从数据库同步的时候却只有一个线程在按照binary log的记录顺序在回放并进行写入操作,单线程对数据的处理速度有限,超过其处理速度的数据需进行排队等待,若在存在数据排队的过程仍有大量数据写入,则会进一步增加排队时长。因此,在主数据库写入量很大的时候会因单线程处理速度的限制导致从数据库同步延时,而且因数据量的增加可能会延时越来越大,进而导致无法满足后续提供数据服务的需求。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的同步数据的方法、装置、数据传输组件及系统。
依据本发明的一个方面,提供了一种同步数据的方法,应用于具有主从结构的数据库,包括:从主数据库获取待同步数据,并根据所述待同步数据生成多个同步任务;调用至少两个并发的线程,根据预设规则分配所述多个同步任务至所述至少两个并发的线程中;以及利用所述至少两个并发的线程,发送所述多个同步任务至从数据库,以供所述从数据库根据所述多个同步任务实现与所述主数据库间的数据同步。
可选地,所述同步数据的方法由所述主数据库与所述待同步的从数据库间设置的数据传输组件执行。
可选地,所述根据预设规则分配所述多个同步任务至所述至少两个并发的线程中的步骤进一步包括:根据所述多个同步任务中的对象标识分配所述多个同步任务,将具备相同对象标识的同步任务分配至同一个线程中;或者根据所述多个同步任务中的数据表标识分配所述多个同步任务,将具备相同数据表标识的同步任务分配至同一个线程中。
可选地,所述将具备相同对象标识的同步任务分配至同一个线程中的步骤进一步包括:将具备相同对象标识的同步任务按照时序或排序顺序分配至同一个线程中。
可选地,所述将具备相同数据表标识的同步任务分配至同一个线程中的步骤进一步包括:将具备相同数据表标识的同步任务按照时序或排序顺序分配至同一个线程中。
可选地,所述调用至少两个并发的线程,根据预设规则分配所述多个同步任务至所述至少两个并发的线程中的步骤进一步包括:根据所述多个同步任务的数量,调用相应数量的并发的线程;以及将所述多个同步任务一对一的分配至所述相应数量的并发的线程中。
可选地,若在利用所述至少两个并发的线程,发送所述多个同步任务至所述从数据库的过程中,从所述主数据库获取到新的待同步数据,则根据所述新的待同步数据生成新的多个同步任务。
可选地,所述根据所述新的待同步数据生成新的多个同步任务之后,还包括:根据所述预设规则分配所述新的多个同步任务至所述至少两个并发的线程中;或者调用新的线程,并根据所述预设规则分配所述新的多个同步任务至所述新的线程中,以利用所述新的线程发送所述新的多个同步任务至所述从数据库。
可选地,在所述从数据库根据所述多个同步任务实现与所述主数据库间的数据同步的过程中,所述从数据库记录自身同步的执行位置信息,以得到同步日志。
可选地,在所述从数据库根据所述多个同步任务实现与所述主数据库间的数据同步的过程中,还包括:监控所述从数据库的数据同步的状态;若监控到所述从数据库的数据同步发生中断,则获取所述从数据库的同步日志,并读取所述从数据库的同步日志中所述从数据库同步的执行位置信息;以及根据所述从数据库同步的执行位置信息恢复数据同步。
可选地,所述获取所述从数据库的同步日志的步骤进一步包括:从所述从数据库获取所述从数据库的同步日志。
可选地,所述从数据库的同步日志被上传至云服务器,以及获取所述从数据库的同步日志的步骤进一步包括:从所述云服务器获取所述从数据库的同步日志。
可选地,所述从主数据库获取待同步数据的步骤进一步包括:以指定的时间周期获取所述主数据库的日志文件;以及解析所述主数据库的日志文件,得到所述待同步数据。
可选地,所述解析所述主数据库的日志文件,得到所述待同步数据的步骤进一步包括:若初次解析所述主数据库的日志文件,则从所述主数据库的日志文件的初始位置开始解析,得到所述待同步数据;若非初次解析所述主数据库的日志文件,则获取上一次解析所述主数据库的日志文件的解析位置,并从所述解析位置开始解析,得到所述待同步数据。
可选地,所述待同步数据的格式为JSON格式。
可选地,所述主数据库的数量为至少一个。
可选地,所述主数据库或所述从数据库为MySQL数据库。
依据本发明的另一个方面,提供了一种同步数据的装置,应用于具有主从结构的数据库,包括:
获取器,适于从主数据库获取待同步数据;
生成器,适于根据所述待同步数据生成多个同步任务;
分配器,适于调用至少两个并发的线程,根据预设规则分配所述多个同步任务至所述至少两个并发的线程中;以及
发送器,适于利用所述至少两个并发的线程,发送所述多个同步任务至从数据库,以供所述从数据库根据所述多个同步任务实现与所述主数据库间的数据同步。
可选地,所述同步数据的装置配置于所述主数据库与所述待同步的从数据库之间。
可选地,所述分配器还适于:根据所述多个同步任务中的对象标识分配所述多个同步任务,将具备相同对象标识的同步任务分配至同一个线程中;或者根据所述多个同步任务中的数据表标识分配所述多个同步任务,将具备相同数据表标识的同步任务分配至同一个线程中。
可选地,所述分配器还适于:将具备相同对象标识的同步任务按照时序或排序顺序分配至同一个线程中。
可选地,所述分配器还适于:将具备相同数据表标识的同步任务按照时序或排序顺序分配至同一个线程中。
可选地,所述分配器还适于:根据所述多个同步任务的数量,调用相应数量的并发的线程;以及将所述多个同步任务一对一的分配至所述相应数量的并发的线程中。
可选地,若所述发送器在利用所述至少两个并发的线程,发送所述多个同步任务至所述从数据库的过程中,所述获取器从所述主数据库获取到新的待同步数据,则所述生成器还适于:根据所述新的待同步数据生成新的多个同步任务。
可选地,所述生成器根据所述新的待同步数据生成新的多个同步任务之后,所述分配器还适于:根据所述预设规则分配所述新的多个同步任务至所述至少两个并发的线程中;或者调用新的线程,并根据所述预设规则分配所述新的多个同步任务至所述新的线程中,以利用所述新的线程发送所述新的多个同步任务至所述从数据库。
可选地,在所述从数据库根据所述多个同步任务实现与所述主数据库间的数据同步的过程中,所述从数据库记录自身同步的执行位置信息,以得到同步日志。
可选地,所述装置还包括监控器以及执行器,其中在所述从数据库根据所述多个同步任务实现与所述主数据库间的数据同步的过程中:
所述监控器,适于监控所述从数据库的数据同步的状态;
所述执行器,适于若所述监控器监控到所述从数据库的数据同步发生中断,则获取所述从数据库的同步日志,并读取所述从数据库的同步日志中所述从数据库同步的执行位置信息;以及根据所述从数据库同步的执行位置信息恢复数据同步。
可选地,所述执行器还适于:从所述从数据库获取所述从数据库的同步日志。
可选地,所述从数据库的同步日志被上传至云服务器,所述执行器还适于:从所述云服务器获取所述从数据库的同步日志。
可选地,所述获取器还适于:以指定的时间周期获取所述主数据库的日志文件;以及解析所述主数据库的日志文件,得到所述待同步数据。
可选地,所述获取器还适于:若初次解析所述主数据库的日志文件,则从所述主数据库的日志文件的初始位置开始解析,得到所述待同步数据;若非初次解析所述主数据库的日志文件,则获取上一次解析所述主数据库的日志文件的解析位置,并从所述解析位置开始解析,得到所述待同步数据。
依据本发明的又一个方面,提供了一种同步数据的数据传输组件,包括上述任一项所述的同步数据的装置。
依据本发明的再一个方面,提供了一种同步数据的系统,包括主数据库、从数据库以及上述的同步数据的数据传输组件。
在本发明实施例中,利用设置的数据传输组件来实现主数据库与待同步的从数据库间的数据同步,即数据传输组件从主数据库获取待同步数据,并根据待同步数据生成多个同步任务,之后调用至少两个并发的线程,根据预设规则分配多个同步任务至所述的至少两个并发的线程中。随后利用至少两个并发的线程,发送多个同步任务至从数据库,以供从数据库根据多个同步任务实现与主数据库间的数据同步。由此可知,数据传输组件可以调用至少两个并发的线程,利用至少两个并发的线程,能够同时对数据进行处理,即可以由至少两个并发的线程同步发送多个同步任务至从数据库,与相关技术中的单线程同步相比较,在单位时间内能够发送数倍于单线程的同步任务,从而提高了同步数据的效率,缩短同步所需时长,解决相关技术中主从数据库单线程同步延时的问题,能够实现实时同步,进而满足后续提供数据服务的需求。并且,多线程的处理方式能够大大缩短了数据排队时长,缓解缓存部件的压力,尽快释放出资源空间,提高系统资源的利用率。另外,数据传输组件可以根据实际情况设置预设规则,实现动态分配多个同步任务至所述的至少两个并发的线程中,进一步提高同步数据的效率。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1A示出了现有技术中主从数据库间同步数据的结构示意图;
图1B示出了根据本发明一个实施例的同步数据的方法的流程示意图;
图2示出了根据本发明一个实施例的同步数据的装置的结构示意图;
图3示出了根据本发明另一个实施例的同步数据的装置的结构示意图;
图4示出了根据本发明一个实施例的同步数据的系统的结构示意图;以及
图5示出了根据本发明另一个实施例的同步数据的系统的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
为解决上述技术问题,本发明实施例提供了一种同步数据的方法,应用于具有主从结构的数据库,该同步数据的方法可以由主数据库与待同步的从数据库间设置的数据传输组件执行。图1B示出了根据本发明一个实施例的同步数据的方法的流程示意图。如图1B所示,该方法至少包括以下步骤S102、步骤S104以及步骤S106。
步骤S102、从主数据库获取待同步数据,并根据待同步数据生成多个同步任务。
步骤S104、调用至少两个并发的线程,根据预设规则分配多个同步任务至所述的至少两个并发的线程中。
步骤S106、利用至少两个并发的线程,发送多个同步任务至从数据库,以供从数据库根据多个同步任务实现与主数据库间的数据同步。
在本发明实施例中,可以利用设置的数据传输组件来实现主数据库与待同步的从数据库间的数据同步,即数据传输组件从主数据库获取待同步数据,并根据待同步数据生成多个同步任务,之后调用至少两个并发的线程,根据预设规则分配多个同步任务至所述的至少两个并发的线程中。随后利用至少两个并发的线程,发送多个同步任务至从数据库,以供从数据库根据多个同步任务实现与主数据库间的数据同步。由此可知,数据传输组件可以调用至少两个并发的线程,利用至少两个并发的线程,能够同时对数据进行处理,即可以由至少两个并发的线程同步发送多个同步任务至从数据库,与相关技术中的单线程同步相比较,在单位时间内能够发送数倍于单线程的同步任务,从而提高了同步数据的效率,缩短同步所需时长,解决相关技术中主从数据库单线程同步延时的问题,能够实现实时同步,进而满足后续提供数据服务的需求。并且,多线程的处理方式能够大大缩短了数据排队时长,缓解缓存部件的压力,尽快释放出资源空间,提高系统资源的利用率。另外,数据传输组件可以根据实际情况设置预设规则,实现动态分配多个同步任务至所述的至少两个并发的线程中,进一步提高同步数据的效率。
上文步骤S102中从主数据库获取待同步数据,本发明实施例提供了一种优选的方案,在该方案中,可以以指定的时间周期(如实时、1秒或2秒等)获取主数据库的日志文件,进而解析主数据库的日志文件,得到待同步数据。这里,主数据库的日志文件中记录数据的写入、更新、删除等操作,如MySQL主数据库的binary log中记录数据的写入、更新、删除等操作。进一步地,若初次解析主数据库的日志文件,则从主数据库的日志文件的初始位置开始解析,得到待同步数据。若非初次解析主数据库的日志文件,则获取上一次解析主数据库的日志文件的解析位置,并从解析位置开始解析,得到待同步数据。例如,可以由主数据库或数据传输组件记录每次解析主数据库的日志文件的解析位置,当非初次解析数据库的日志文件时,可以从上一次记录的解析位置开始解析,得到待同步数据,从而可以减少解析数据库的日志文件的时间,有利于主从数据库间的快速同步。这里,可以阻塞式解析数据库的日志文件,进一步确保主从数据库能够同步成功。
在本发明实施例的另一种优选方案中,数据传输组件可以分别获取主数据库的日志文件和从数据库的同步日志,随后比较主数据库的日志文件与从数据库的同步日志,得到待同步数据。这里,待同步数据的格式可以为多种格式,如JSON格式,它是一种轻量级的数据交换语言,易于人们阅读和编写,同时也易于机器解析和生成,且网络传输速度快。
在步骤S102根据待同步数据生成多个同步任务之后,步骤S104中调用至少两个并发的线程,根据预设规则分配多个同步任务至所述的至少两个并发的线程中,可以通过多种方式来实现,如利用对象标识或数据表标识等进行分配,下面分别进行详细介绍。
方式一、利用对象标识进行分配。
在方式一中,根据多个同步任务中的对象标识分配多个同步任务,将具备相同对象标识的同步任务分配至同一个线程中。这样,具备相同对象标识的同步任务可以分配至同一个线程中依序(如时序或排序顺序)下达至从数据库,由从数据库依序执行同步操作,从而保证了数据同步的准确性。例如,5个同步任务分别是对象A的写入操作、对象B的写入操作、对象B的更新操作、对象B的删除操作以及对象C的删除操作,此时,可以调用三个线程,分别是线程1、2和3,可以将对象A的写入操作分配至线程1中,将对象B的写入操作、对象B的更新操作以及对象B的删除操作分配至线程2中,将对象C的删除操作分配至线程3中。当然,此处同步任务的个数以及线程的个数仅是示意性的,在实际应用中,同步任务可能是上千个、上万个甚至百万个,可以根据同步任务的个数合理调用线程,并根据对象标识进行分配。
方式二、利用数据表标识进行分配。
在方式二中,根据多个同步任务中的数据表标识分配多个同步任务,将具备相同数据表标识的同步任务分配至同一个线程中。这样,具备相同数据表标识的同步任务可以分配至同一个线程中依序(如时序或排序顺序)下达至从数据库,由从数据库依序执行同步操作,从而保证了数据同步的准确性以及提高了数据同步的效率。例如,4个同步任务分别是数据表1中对象A的写入操作、数据表1中的对象B的写入操作、数据表1中的对象B的更新操作以及数据表2中的对象C的删除操作。此时,可以调用两个线程,分别是线程1和2,可以将数据表1中对象A的写入操作、数据表1中的对象B的写入操作、数据表1中的对象B的更新操作分配至线程1中,将数据表2中的对象C的删除操作分配至线程2中。需要说明的是,此处同步任务的个数以及线程的个数仅是示意性的,在实际应用中,同步任务可能是上千个、上万个甚至百万个,可以根据同步任务的个数合理调用线程,并根据数据表标识进行分配。
方式三、调用相应数量的并发的线程进行分配。
在方式三中,根据多个同步任务的数量,调用相应数量的并发的线程,随后将多个同步任务一对一的分配至相应数量的并发的线程中。
进一步地,在步骤S106利用至少两个并发的线程,发送多个同步任务至从数据库的过程中,若从该主数据库获取到新的待同步数据,并根据新的待同步数据生成新的多个同步任务时,本发明实施例还可以及时、有效地处理新的多个同步任务,以实现将新的多个同步任务及时下发至从数据库。例如,根据上述的预设规则分配新的多个同步任务至所述的至少两个并发的线程中,即可以采用前文介绍的方式一或方式二进行合理分配。又如,调用新的线程,并根据上述的预设规则分配新的多个同步任务至新的线程中,以利用新的线程发送新的多个同步任务至从数据库,这样新的多个同步任务无需等待,可以提高数据同步的效率。
此外,本发明实施例还提供了监控数据同步的方案,可以实现断点续传和故障恢复等功能。即在从数据库根据多个同步任务实现与主数据库间的数据同步的过程中,从数据库记录自身同步的执行位置信息,得到同步日志。此时,数据传输组件监控从数据库的数据同步的状态,若监控到从数据库的数据同步发生中断,则获取从数据库的同步日志,并读取从数据库的同步日志中从数据库同步的执行位置信息,从而根据从数据库同步的执行位置信息恢复数据同步。这里,从数据库的数据同步发生中断可能有多种因素,如硬盘出现故障、操作系统崩溃、从服务器断电等等。进一步地,从数据库的同步日志被上传至云服务器,此时可以从该从数据库或云服务器获取从数据库的同步日志,这样可以预防从服务器挂机或从数据库的数据丢失等故障。
相关技术中,主从数据库之间进行同步数据遵循一主多从的架构,采用本发明提供的数据传输组件,可以实现多主多从的架构,可以节省硬件资源。另外,本发明实施例中主数据库或从数据库可以为MySQL数据库。如前所述,当主数据库的写入、更新、删除等操作较多时,尤其是主数据库在大量业务的触发下,对从数据库同步时会产生大量写入需求,但是MySQL从数据库同步的时候却只有一个线程在按照binary log的记录顺序在回放并进行写入操作,单线程对数据的处理速度有限,超过其处理速度的数据需进行排队等待,若在存在数据排队的过程仍有大量数据写入,则会进一步增加排队时长。此外,MySQL5.6及以上的版本支持多线程复制,这种技术的原理是基于database(数据库),为每一个database启动一个同步的线程,然后进行多线程的数据同步。然而,基于database的方案,只有在整个服务有多个database的时候才有效,当单个database的时候不能解决问题,而多个database在业务逻辑上将对数据库的使用带来很大的制约。如果已经存在的服务只有单个database,那么在拆分成多个database时需要很大的成本,不仅给数据库维护人员带来额外的工作,而且对于数据库的使用人员也需要修改相应的业务逻辑。本发明提供的技术方案能够解决MySQL各主流版本单线程同步造成同步延时的问题,支持主流的MySQL版本,支持单个或多个database的数据同步。本发明可以根据实际情况调用自定义个数的线程来做主从数据库的同步,不受自身版本和database个数的限制。
需要说明的是,实际应用中,上述所有可选实施方式可以采用结合的方式任意组合,形成本发明的可选实施例,在此不再一一赘述。
对应上述实施例中的同步数据的方法,本发明实施例还提供了一种同步数据的装置,应用于具有主从结构的数据库,图2示出了根据本发明一个实施例的同步数据的装置的结构示意图。参见图2,该装置至少包括:获取器210、生成器220、分配器230以及发送器240。
现介绍本发明实施例的同步数据的装置的各组成或器件的功能以及各部分间的连接关系:
获取器210,适于从主数据库获取待同步数据;
生成器220,与获取器210相耦合,适于根据获取的待同步数据生成多个同步任务;
分配器230,与生成器220相耦合,适于调用至少两个并发的线程,根据预设规则分配多个同步任务至所述的至少两个并发的线程中;
发送器240,与分配器230相耦合,适于利用至少两个并发的线程,发送多个同步任务至从数据库,以供从数据库根据多个同步任务实现与主数据库间的数据同步。
在本发明的一个实施例中,上述图2展示的同步数据的装置可以配置于主数据库与待同步的从数据库之间。
在本发明的一个实施例中,上述分配器230还适于:根据多个同步任务中的对象标识分配多个同步任务,将具备相同对象标识的同步任务分配至同一个线程中;或者根据多个同步任务中的数据表标识分配多个同步任务,将具备相同数据表标识的同步任务分配至同一个线程中。
在本发明的一个实施例中,上述分配器230还适于:将具备相同对象标识的同步任务按照时序或排序顺序分配至同一个线程中。
在本发明的另一个实施例中,上述分配器230还适于:将具备相同数据表标识的同步任务按照时序或排序顺序分配至同一个线程中。
在本发明的一个实施例中,上述分配器230还适于:根据多个同步任务的数量,调用相应数量的并发的线程;将多个同步任务一对一的分配至相应数量的并发的线程中。
在本发明的一个实施例中,在发送器240利用至少两个并发的线程,发送多个同步任务至从数据库的过程中,若从主数据库获取到新的待同步数据,则生成器220根据新的待同步数据生成新的多个同步任务。
在本发明的一个实施例中,生成器220根据新的待同步数据生成新的多个同步任务之后,上述分配器230还适于:根据预设规则分配新的多个同步任务至所述的至少两个并发的线程中;或者调用新的线程,并根据预设规则分配新的多个同步任务至新的线程中,以利用新的线程发送新的多个同步任务至从数据库。
在本发明的一个实施例中,在从数据库根据多个同步任务实现与主数据库间的数据同步的过程中,从数据库记录自身同步的执行位置信息,以得到同步日志。
在本发明的一个实施例中,图3示出了根据本发明另一个实施例的同步数据的装置的结构示意图。参见图3,该装置还可以包括:
监控器310,与发送器240相耦合,适于监控从数据库的数据同步的状态;
执行器320,与监控器310相耦合,适于若监控到从数据库的数据同步发生中断,则获取从数据库的同步日志,并读取从数据库的同步日志中从数据库同步的执行位置信息;根据从数据库同步的执行位置信息恢复数据同步。
在本发明的一个实施例中,上述执行器320还适于:从所述从数据库获取从数据库的同步日志。
在本发明的一个实施例中,从数据库的同步日志被上传至云服务器,上述执行器320还适于:从所述从数据库或云服务器获取从数据库的同步日志。
在本发明的一个实施例中,上述获取器210还适于:以指定的时间周期获取主数据库的日志文件;解析主数据库的日志文件,得到待同步数据。
在本发明的一个实施例中,上述获取器210还适于:若初次解析主数据库的日志文件,则从主数据库的日志文件的初始位置开始解析,得到待同步数据;若非初次解析主数据库的日志文件,则获取上一次解析主数据库的日志文件的解析位置,并从解析位置开始解析,得到待同步数据。
在本发明的一个实施例中,待同步数据的格式为JSON格式。
在本发明的一个实施例中,主数据库的数量为至少一个。
在本发明的一个实施例中,主数据库或从数据库为MySQL数据库。
相应的,本发明还提供一种同步数据的数据传输组件,其包括上述实施例中所述的任一同步数据的装置。
基于上文各实施例提供的同步数据的方法、装置和数据传输组件,基于同一发明构思,本发明实施例还提供了一种同步数据的系统,参见图4所示,该系统至少可以包括:上文介绍的主数据库410、数据传输组件420以及从数据库430。
下面通过具体实施例详细介绍本发明利用数据传输组件实现同步数据的方案,在本实施例中,数据传输组件从主数据库获取待同步数据,并根据待同步数据生成多个同步任务。图5示出了根据本发明另一个实施例的同步数据的系统的结构示意图。如图5所示,在实施本发明提供的技术方案时,可以关闭现有的主数据库410和从数据库430单线程同步的接口,由数据传输组件420从主数据库410获取待同步数据,并根据待同步数据生成多个同步任务(如10个同步任务,其详细信息如下表1所示)。
表1
同步任务 | 数据表标识 | 对象标识 | 数据操作 |
1 | D1 | 对象A | 写入 |
2 | D1 | 对象A | 更新 |
3 | D1 | 对象B | 写入 |
4 | D1 | 对象A | 删除 |
5 | D2 | 对象C | 写入 |
6 | D2 | 对象C | 删除 |
7 | D1 | 对象B | 更新 |
8 | D3 | 对象D | 写入 |
9 | D3 | 对象D | 更新 |
10 | D3 | 对象D | 删除 |
此时,可以根据前文所述的方式一、方式二或方式三调用至少两个并发的线程,并分配同步任务至所述的至少两个并发的线程中。例如,根据表1所示,可以调用三个线程,分别为线程1、2和3,将同步任务1、2、3、4以及7按照时序或排序顺序分配至线程1中,将同步任务5和6按照时序或排序顺序分配至线程2中,以及将同步任务8、9和10按照时序或排序顺序分配至线程3中,从而利用线程1、2和3同步发送10个同步任务至从数据库430,以供从数据库430根据10个同步任务实现与主数据库410间的数据同步。又如,根据对象标识进行分配,可以调用四个线程,分别为线程1、2、3和4,将同步任务1、2及4按照时序或排序顺序分配至线程1中,将同步任务3和7按照时序或排序顺序分配至线程2中,将同步任务5和6按照时序或排序顺序分配至线程3中,以及将同步任务8、9和10按照时序或排序顺序分配至线程4中,从而利用线程1、2、3和4同步发送10个同步任务至从数据库430,以供从数据库430根据10个同步任务实现与主数据库410间的数据同步。需要说明的是,此处同步任务的个数、线程的个数以及数据操作类型仅是示意性的,在实际应用中,同步任务可能是上千个、上万个甚至百万个,可以根据同步任务的个数合理调用线程进行分配。
进一步地,若数据传输组件420从该主数据库410获取到新的待同步数据,并根据新的待同步数据生成新的多个同步任务时,本发明实施例还可以及时、有效地处理新的多个同步任务,以实现将新的多个同步任务及时下发至从数据库430。例如,根据上述的预设规则分配新的多个同步任务至所述的至少两个并发的线程中。又如,调用新的线程,并根据上述的预设规则分配新的多个同步任务至新的线程中,以利用新的线程发送新的多个同步任务至从数据库430,这样新的多个同步任务无需等待,可以提高数据同步的效率。
此外,本发明实施例还提供了监控数据同步的方案,可以实现断点续传和故障恢复等功能,可参照前文所述,此处不再赘述。
根据上述任意一个优选实施例或多个优选实施例的组合,本发明实施例能够达到如下有益效果:
在本发明实施例中,利用设置的数据传输组件来实现主数据库与待同步的从数据库间的数据同步,即数据传输组件从主数据库获取待同步数据,并根据待同步数据生成多个同步任务,之后调用至少两个并发的线程,根据预设规则分配多个同步任务至所述的至少两个并发的线程中。随后利用至少两个并发的线程,发送多个同步任务至从数据库,以供从数据库根据多个同步任务实现与主数据库间的数据同步。由此可知,数据传输组件可以调用至少两个并发的线程,利用至少两个并发的线程,能够同时对数据进行处理,即可以由至少两个并发的线程同步发送多个同步任务至从数据库,与相关技术中的单线程同步相比较,在单位时间内能够发送数倍于单线程的同步任务,从而提高了同步数据的效率,缩短同步所需时长,解决相关技术中主从数据库单线程同步延时的问题,能够实现实时同步,进而满足后续提供数据服务的需求。并且,多线程的处理方式能够大大缩短了数据排队时长,缓解缓存部件的压力,尽快释放出资源空间,提高系统资源的利用率。另外,数据传输组件可以根据实际情况设置预设规则,实现动态分配多个同步任务至所述的至少两个并发的线程中,进一步提高同步数据的效率。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的同步数据的设备及系统中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包括”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
至此,本领域技术人员应认识到,虽然本文已详尽示出和描述了本发明的多个示例性实施例,但是,在不脱离本发明精神和范围的情况下,仍可根据本发明公开的内容直接确定或推导出符合本发明原理的许多其他变型或修改。因此,本发明的范围应被理解和认定为覆盖了所有这些其他变型或修改。
本发明还公开了:A1、一种同步数据的方法,应用于具有主从结构的数据库,包括:
从主数据库获取待同步数据,并根据所述待同步数据生成多个同步任务;
调用至少两个并发的线程,根据预设规则分配所述多个同步任务至所述至少两个并发的线程中;以及
利用所述至少两个并发的线程,发送所述多个同步任务至从数据库,以供所述从数据库根据所述多个同步任务实现与所述主数据库间的数据同步。
A2、根据A1所述的方法,其中,所述同步数据的方法由所述主数据库与所述待同步的从数据库间设置的数据传输组件执行。
A3、根据A1或A2所述的方法,其中,所述根据预设规则分配所述多个同步任务至所述至少两个并发的线程中的步骤进一步包括:
根据所述多个同步任务中的对象标识分配所述多个同步任务,将具备相同对象标识的同步任务分配至同一个线程中;或者
根据所述多个同步任务中的数据表标识分配所述多个同步任务,将具备相同数据表标识的同步任务分配至同一个线程中。
A4、根据A3所述的方法,其中,所述将具备相同对象标识的同步任务分配至同一个线程中的步骤进一步包括:
将具备相同对象标识的同步任务按照时序或排序顺序分配至同一个线程中。
A5、根据A3所述的方法,其中,所述将具备相同数据表标识的同步任务分配至同一个线程中的步骤进一步包括:
将具备相同数据表标识的同步任务按照时序或排序顺序分配至同一个线程中。
A6、根据A1或A2所述的方法,其中,所述调用至少两个并发的线程,根据预设规则分配所述多个同步任务至所述至少两个并发的线程中的步骤进一步包括:
根据所述多个同步任务的数量,调用相应数量的并发的线程;以及
将所述多个同步任务一对一的分配至所述相应数量的并发的线程中。
A7、根据A1-A6任一项所述的方法,其中,若在利用所述至少两个并发的线程,发送所述多个同步任务至所述从数据库的过程中,从所述主数据库获取到新的待同步数据,则根据所述新的待同步数据生成新的多个同步任务。
A8、根据A7所述的方法,其中,所述根据所述新的待同步数据生成新的多个同步任务之后,还包括:
根据所述预设规则分配所述新的多个同步任务至所述至少两个并发的线程中;或者
调用新的线程,并根据所述预设规则分配所述新的多个同步任务至所述新的线程中,以利用所述新的线程发送所述新的多个同步任务至所述从数据库。
A9、根据A1-A8任一项所述的方法,其中,在所述从数据库根据所述多个同步任务实现与所述主数据库间的数据同步的过程中,所述从数据库记录自身同步的执行位置信息,以得到同步日志。
A10、根据A1-A9任一项所述的方法,其中,在所述从数据库根据所述多个同步任务实现与所述主数据库间的数据同步的过程中,还包括:
监控所述从数据库的数据同步的状态;
若监控到所述从数据库的数据同步发生中断,则获取所述从数据库的同步日志,并读取所述从数据库的同步日志中所述从数据库同步的执行位置信息;以及
根据所述从数据库同步的执行位置信息恢复数据同步。
A11、根据A10所述的方法,其中,所述获取所述从数据库的同步日志的步骤进一步包括:
从所述从数据库获取所述从数据库的同步日志。
A12、根据A10所述的方法,其中,所述从数据库的同步日志被上传至云服务器,以及获取所述从数据库的同步日志的步骤进一步包括:
从所述云服务器获取所述从数据库的同步日志。
A13、根据A1-A12任一项所述的方法,其中,所述从主数据库获取待同步数据的步骤进一步包括:
以指定的时间周期获取所述主数据库的日志文件;以及
解析所述主数据库的日志文件,得到所述待同步数据。
A14、根据A13所述的方法,其中,所述解析所述主数据库的日志文件,得到所述待同步数据的步骤进一步包括:
若初次解析所述主数据库的日志文件,则从所述主数据库的日志文件的初始位置开始解析,得到所述待同步数据;
若非初次解析所述主数据库的日志文件,则获取上一次解析所述主数据库的日志文件的解析位置,并从所述解析位置开始解析,得到所述待同步数据。
A15、根据A1-A14任一项所述的方法,其中,所述待同步数据的格式为JSON格式。
A16、根据A1-A15任一项所述的方法,其中,所述主数据库的数量为至少一个。
A17、根据A1-A16任一项所述的方法,其中,所述主数据库或所述从数据库为MySQL数据库。
B18、一种同步数据的装置,应用于具有主从结构的数据库,包括:
获取器,适于从主数据库获取待同步数据;
生成器,适于根据所述待同步数据生成多个同步任务;
分配器,适于调用至少两个并发的线程,根据预设规则分配所述多个同步任务至所述至少两个并发的线程中;以及
发送器,适于利用所述至少两个并发的线程,发送所述多个同步任务至从数据库,以供所述从数据库根据所述多个同步任务实现与所述主数据库间的数据同步。
B19、根据B18所述的装置,其中,所述同步数据的装置配置于所述主数据库与所述待同步的从数据库之间。
B20、根据B18或B19所述的装置,其中,所述分配器还适于:
根据所述多个同步任务中的对象标识分配所述多个同步任务,将具备相同对象标识的同步任务分配至同一个线程中;或者
根据所述多个同步任务中的数据表标识分配所述多个同步任务,将具备相同数据表标识的同步任务分配至同一个线程中。
B21、根据B20所述的装置,其中,所述分配器还适于:
将具备相同对象标识的同步任务按照时序或排序顺序分配至同一个线程中。
B22、根据B20所述的装置,其中,所述分配器还适于:
将具备相同数据表标识的同步任务按照时序或排序顺序分配至同一个线程中。
B23、根据B18所述的装置,其中,所述分配器还适于:
根据所述多个同步任务的数量,调用相应数量的并发的线程;以及
将所述多个同步任务一对一的分配至所述相应数量的并发的线程中。
B24、根据B18-B23任一项所述的装置,其中,若所述发送器在利用所述至少两个并发的线程,发送所述多个同步任务至所述从数据库的过程中,所述获取器从所述主数据库获取到新的待同步数据,则所述生成器还适于:
根据所述新的待同步数据生成新的多个同步任务。
B25、根据B24所述的装置,其中,所述生成器根据所述新的待同步数据生成新的多个同步任务之后,所述分配器还适于:
根据所述预设规则分配所述新的多个同步任务至所述至少两个并发的线程中;或者
调用新的线程,并根据所述预设规则分配所述新的多个同步任务至所述新的线程中,以利用所述新的线程发送所述新的多个同步任务至所述从数据库。
B26、根据B18-B25任一项所述的装置,其中,在所述从数据库根据所述多个同步任务实现与所述主数据库间的数据同步的过程中,所述从数据库记录自身同步的执行位置信息,以得到同步日志。
B27、根据B18-B26任一项所述的装置,还包括监控器以及执行器,其中,在所述从数据库根据所述多个同步任务实现与所述主数据库间的数据同步的过程中:
所述监控器,适于监控所述从数据库的数据同步的状态;
所述执行器,适于若所述监控器监控到所述从数据库的数据同步发生中断,则获取所述从数据库的同步日志,并读取所述从数据库的同步日志中所述从数据库同步的执行位置信息;以及根据所述从数据库同步的执行位置信息恢复数据同步。
B28、根据B27所述的装置,其中,所述执行器还适于:
从所述从数据库获取所述从数据库的同步日志。
B29、根据B27所述的装置,其中,所述从数据库的同步日志被上传至云服务器,所述执行器还适于:
从所述云服务器获取所述从数据库的同步日志。
B30、根据B18-B29任一项所述的装置,其中,所述获取器还适于:
以指定的时间周期获取所述主数据库的日志文件;以及
解析所述主数据库的日志文件,得到所述待同步数据。
B31、根据B30所述的装置,其中,所述获取器还适于:
若初次解析所述主数据库的日志文件,则从所述主数据库的日志文件的初始位置开始解析,得到所述待同步数据;
若非初次解析所述主数据库的日志文件,则获取上一次解析所述主数据库的日志文件的解析位置,并从所述解析位置开始解析,得到所述待同步数据。
C32、一种同步数据的数据传输组件,包括:B18-B31任一项所述的同步数据的装置。
D33、一种同步数据的系统,包括主数据库、从数据库以及C32所述的同步数据的数据传输组件。
Claims (10)
1.一种同步数据的方法,应用于具有主从结构的数据库,包括:
从主数据库获取待同步数据,并根据所述待同步数据生成多个同步任务;
调用至少两个并发的线程,根据预设规则分配所述多个同步任务至所述至少两个并发的线程中;以及
利用所述至少两个并发的线程,发送所述多个同步任务至从数据库,以供所述从数据库根据所述多个同步任务实现与所述主数据库间的数据同步。
2.根据权利要求1所述的方法,其中,所述同步数据的方法由所述主数据库与所述待同步的从数据库间设置的数据传输组件执行。
3.根据权利要求1或2所述的方法,其中,所述根据预设规则分配所述多个同步任务至所述至少两个并发的线程中的步骤进一步包括:
根据所述多个同步任务中的对象标识分配所述多个同步任务,将具备相同对象标识的同步任务分配至同一个线程中;或者
根据所述多个同步任务中的数据表标识分配所述多个同步任务,将具备相同数据表标识的同步任务分配至同一个线程中。
4.根据权利要求3所述的方法,其中,所述将具备相同对象标识的同步任务分配至同一个线程中的步骤进一步包括:
将具备相同对象标识的同步任务按照时序或排序顺序分配至同一个线程中。
5.根据权利要求3所述的方法,其中,所述将具备相同数据表标识的同步任务分配至同一个线程中的步骤进一步包括:
将具备相同数据表标识的同步任务按照时序或排序顺序分配至同一个线程中。
6.根据权利要求1或2所述的方法,其中,所述调用至少两个并发的线程,根据预设规则分配所述多个同步任务至所述至少两个并发的线程中的步骤进一步包括:
根据所述多个同步任务的数量,调用相应数量的并发的线程;以及
将所述多个同步任务一对一的分配至所述相应数量的并发的线程中。
7.根据权利要求1-6任一项所述的方法,其中,若在利用所述至少两个并发的线程,发送所述多个同步任务至所述从数据库的过程中,从所述主数据库获取到新的待同步数据,则根据所述新的待同步数据生成新的多个同步任务。
8.一种同步数据的装置,应用于具有主从结构的数据库,包括:
获取器,适于从主数据库获取待同步数据;
生成器,适于根据所述待同步数据生成多个同步任务;
分配器,适于调用至少两个并发的线程,根据预设规则分配所述多个同步任务至所述至少两个并发的线程中;以及
发送器,适于利用所述至少两个并发的线程,发送所述多个同步任务至从数据库,以供所述从数据库根据所述多个同步任务实现与所述主数据库间的数据同步。
9.一种同步数据的数据传输组件,包括:权利要求8所述的同步数据的装置。
10.一种同步数据的系统,包括主数据库、从数据库以及权利要求9所述的同步数据的数据传输组件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510146300.5A CN104699541B (zh) | 2015-03-30 | 2015-03-30 | 同步数据的方法、装置、数据传输组件及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510146300.5A CN104699541B (zh) | 2015-03-30 | 2015-03-30 | 同步数据的方法、装置、数据传输组件及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104699541A true CN104699541A (zh) | 2015-06-10 |
CN104699541B CN104699541B (zh) | 2018-07-10 |
Family
ID=53346703
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510146300.5A Active CN104699541B (zh) | 2015-03-30 | 2015-03-30 | 同步数据的方法、装置、数据传输组件及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104699541B (zh) |
Cited By (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105227683A (zh) * | 2015-11-11 | 2016-01-06 | 中国建设银行股份有限公司 | 一种ldap集群数据同步方法及系统 |
CN105701190A (zh) * | 2016-01-07 | 2016-06-22 | 深圳市金证科技股份有限公司 | 一种数据同步的方法和装置 |
CN106412088A (zh) * | 2016-10-25 | 2017-02-15 | 深圳市万普拉斯科技有限公司 | 一种数据同步方法及终端 |
CN106452864A (zh) * | 2016-09-30 | 2017-02-22 | 北京悦畅科技有限公司 | 一种停车场故障保护方法、装置和系统 |
CN106453297A (zh) * | 2016-09-30 | 2017-02-22 | 努比亚技术有限公司 | 检测主从延时方法、装置和系统 |
CN106776775A (zh) * | 2016-11-11 | 2017-05-31 | 北京奇虎科技有限公司 | 并发主从同步方法及装置 |
CN106790359A (zh) * | 2016-11-18 | 2017-05-31 | 杭州萨宝科技有限公司 | 一种分布式多端数据传输同步系统及其方法 |
CN107193539A (zh) * | 2016-03-14 | 2017-09-22 | 北京京东尚科信息技术有限公司 | 多线程并发处理方法和多线程并发处理系统 |
CN109002286A (zh) * | 2018-06-29 | 2018-12-14 | 上海哔哩哔哩科技有限公司 | 基于同步编程的数据异步处理方法及装置 |
CN109145060A (zh) * | 2018-07-20 | 2019-01-04 | 腾讯科技(深圳)有限公司 | 数据处理方法及装置 |
CN109150596A (zh) * | 2018-08-08 | 2019-01-04 | 新智能源系统控制有限责任公司 | 一种scada系统实时数据转储方法和装置 |
CN109299116A (zh) * | 2018-12-05 | 2019-02-01 | 浪潮电子信息产业股份有限公司 | 一种数据同步方法、装置、设备及可读存储介质 |
CN109446268A (zh) * | 2018-10-09 | 2019-03-08 | 联动优势科技有限公司 | 一种数据同步方法及装置 |
CN109871388A (zh) * | 2019-02-19 | 2019-06-11 | 北京字节跳动网络技术有限公司 | 数据缓存方法、装置、终电子设备及存储介质 |
CN110019445A (zh) * | 2017-09-08 | 2019-07-16 | 北京京东尚科信息技术有限公司 | 数据同步方法和装置、计算设备和存储介质 |
CN110147411A (zh) * | 2019-05-20 | 2019-08-20 | 平安科技(深圳)有限公司 | 数据同步方法、装置、计算机设备及存储介质 |
CN110321387A (zh) * | 2019-07-10 | 2019-10-11 | 中国联合网络通信集团有限公司 | 数据同步方法、设备及终端设备 |
CN110381030A (zh) * | 2019-06-20 | 2019-10-25 | 视联动力信息技术股份有限公司 | 一种同步请求的处理方法及装置 |
CN110413419A (zh) * | 2018-04-28 | 2019-11-05 | 北京京东尚科信息技术有限公司 | 一种规则执行的方法和装置 |
CN110688430A (zh) * | 2019-08-22 | 2020-01-14 | 阿里巴巴集团控股有限公司 | 一种获得数据旁路的方法、装置及电子设备 |
CN110704458A (zh) * | 2019-08-15 | 2020-01-17 | 平安科技(深圳)有限公司 | 数据同步方法、装置、计算机设备及存储介质 |
WO2020168878A1 (zh) * | 2019-02-19 | 2020-08-27 | 北京字节跳动网络技术有限公司 | 数据缓存方法、装置、终端及存储介质 |
CN112256409A (zh) * | 2020-09-15 | 2021-01-22 | 中科驭数(北京)科技有限公司 | 基于多个数据库加速器的任务执行方法及装置 |
CN113901141A (zh) * | 2021-10-11 | 2022-01-07 | 京信数据科技有限公司 | 一种分布式数据同步方法及系统 |
CN114594907A (zh) * | 2022-02-24 | 2022-06-07 | 百果园技术(新加坡)有限公司 | 一种数据读写处理方法、装置、设备及存储介质 |
CN115801809A (zh) * | 2022-11-03 | 2023-03-14 | 广州辰创科技发展有限公司 | 跨网数据同步控制系统、方法及介质 |
CN116633951A (zh) * | 2023-07-19 | 2023-08-22 | 中国电子科技集团公司第十五研究所 | 一种跨网数据同步方法和装置 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090319486A1 (en) * | 2008-06-23 | 2009-12-24 | Kickfire, Inc. | Methods and systems for real-time continuous updates |
CN102110121A (zh) * | 2009-12-24 | 2011-06-29 | 阿里巴巴集团控股有限公司 | 一种数据处理方法及其系统 |
CN102542007A (zh) * | 2011-12-13 | 2012-07-04 | 中国电子科技集团公司第十五研究所 | 关系型数据库之间的同步方法及系统 |
CN103500229A (zh) * | 2013-10-24 | 2014-01-08 | 北京奇虎科技有限公司 | 一种数据库同步方法和数据库系统 |
CN103744906A (zh) * | 2013-12-26 | 2014-04-23 | 乐视网信息技术(北京)股份有限公司 | 一种数据同步系统、方法及装置 |
CN103778136A (zh) * | 2012-10-19 | 2014-05-07 | 阿里巴巴集团控股有限公司 | 一种跨机房数据库同步方法及系统 |
CN103885986A (zh) * | 2012-12-21 | 2014-06-25 | 阿里巴巴集团控股有限公司 | 主备数据库同步的方法和装置 |
CN104219288A (zh) * | 2014-08-14 | 2014-12-17 | 中国南方电网有限责任公司超高压输电公司 | 基于多线程的分布式数据同步方法及其系统 |
CN104346479A (zh) * | 2014-11-26 | 2015-02-11 | 北京奇虎科技有限公司 | 一种数据库同步方法及装置 |
-
2015
- 2015-03-30 CN CN201510146300.5A patent/CN104699541B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090319486A1 (en) * | 2008-06-23 | 2009-12-24 | Kickfire, Inc. | Methods and systems for real-time continuous updates |
CN102110121A (zh) * | 2009-12-24 | 2011-06-29 | 阿里巴巴集团控股有限公司 | 一种数据处理方法及其系统 |
CN102542007A (zh) * | 2011-12-13 | 2012-07-04 | 中国电子科技集团公司第十五研究所 | 关系型数据库之间的同步方法及系统 |
CN103778136A (zh) * | 2012-10-19 | 2014-05-07 | 阿里巴巴集团控股有限公司 | 一种跨机房数据库同步方法及系统 |
CN103885986A (zh) * | 2012-12-21 | 2014-06-25 | 阿里巴巴集团控股有限公司 | 主备数据库同步的方法和装置 |
CN103500229A (zh) * | 2013-10-24 | 2014-01-08 | 北京奇虎科技有限公司 | 一种数据库同步方法和数据库系统 |
CN103744906A (zh) * | 2013-12-26 | 2014-04-23 | 乐视网信息技术(北京)股份有限公司 | 一种数据同步系统、方法及装置 |
CN104219288A (zh) * | 2014-08-14 | 2014-12-17 | 中国南方电网有限责任公司超高压输电公司 | 基于多线程的分布式数据同步方法及其系统 |
CN104346479A (zh) * | 2014-11-26 | 2015-02-11 | 北京奇虎科技有限公司 | 一种数据库同步方法及装置 |
Cited By (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105227683A (zh) * | 2015-11-11 | 2016-01-06 | 中国建设银行股份有限公司 | 一种ldap集群数据同步方法及系统 |
CN105701190A (zh) * | 2016-01-07 | 2016-06-22 | 深圳市金证科技股份有限公司 | 一种数据同步的方法和装置 |
CN107193539A (zh) * | 2016-03-14 | 2017-09-22 | 北京京东尚科信息技术有限公司 | 多线程并发处理方法和多线程并发处理系统 |
CN106453297B (zh) * | 2016-09-30 | 2020-10-23 | 重庆伏特猫科技有限公司 | 检测主从延时方法、装置和系统 |
CN106452864A (zh) * | 2016-09-30 | 2017-02-22 | 北京悦畅科技有限公司 | 一种停车场故障保护方法、装置和系统 |
CN106453297A (zh) * | 2016-09-30 | 2017-02-22 | 努比亚技术有限公司 | 检测主从延时方法、装置和系统 |
CN106412088A (zh) * | 2016-10-25 | 2017-02-15 | 深圳市万普拉斯科技有限公司 | 一种数据同步方法及终端 |
CN106412088B (zh) * | 2016-10-25 | 2019-10-18 | 深圳市万普拉斯科技有限公司 | 一种数据同步方法及终端 |
CN106776775B (zh) * | 2016-11-11 | 2021-05-07 | 北京奇虎科技有限公司 | 并发主从同步方法及装置 |
CN106776775A (zh) * | 2016-11-11 | 2017-05-31 | 北京奇虎科技有限公司 | 并发主从同步方法及装置 |
CN106790359A (zh) * | 2016-11-18 | 2017-05-31 | 杭州萨宝科技有限公司 | 一种分布式多端数据传输同步系统及其方法 |
CN110019445A (zh) * | 2017-09-08 | 2019-07-16 | 北京京东尚科信息技术有限公司 | 数据同步方法和装置、计算设备和存储介质 |
CN110019445B (zh) * | 2017-09-08 | 2021-07-06 | 北京京东尚科信息技术有限公司 | 数据同步方法和装置、计算设备和存储介质 |
CN110413419A (zh) * | 2018-04-28 | 2019-11-05 | 北京京东尚科信息技术有限公司 | 一种规则执行的方法和装置 |
CN109002286A (zh) * | 2018-06-29 | 2018-12-14 | 上海哔哩哔哩科技有限公司 | 基于同步编程的数据异步处理方法及装置 |
CN109145060A (zh) * | 2018-07-20 | 2019-01-04 | 腾讯科技(深圳)有限公司 | 数据处理方法及装置 |
CN109145060B (zh) * | 2018-07-20 | 2020-09-04 | 腾讯科技(深圳)有限公司 | 数据处理方法及装置 |
CN109150596B (zh) * | 2018-08-08 | 2021-08-03 | 新智能源系统控制有限责任公司 | 一种scada系统实时数据转储方法和装置 |
CN109150596A (zh) * | 2018-08-08 | 2019-01-04 | 新智能源系统控制有限责任公司 | 一种scada系统实时数据转储方法和装置 |
CN109446268A (zh) * | 2018-10-09 | 2019-03-08 | 联动优势科技有限公司 | 一种数据同步方法及装置 |
CN109299116A (zh) * | 2018-12-05 | 2019-02-01 | 浪潮电子信息产业股份有限公司 | 一种数据同步方法、装置、设备及可读存储介质 |
CN109871388A (zh) * | 2019-02-19 | 2019-06-11 | 北京字节跳动网络技术有限公司 | 数据缓存方法、装置、终电子设备及存储介质 |
WO2020168878A1 (zh) * | 2019-02-19 | 2020-08-27 | 北京字节跳动网络技术有限公司 | 数据缓存方法、装置、终端及存储介质 |
CN110147411B (zh) * | 2019-05-20 | 2024-05-28 | 平安科技(深圳)有限公司 | 数据同步方法、装置、计算机设备及存储介质 |
CN110147411A (zh) * | 2019-05-20 | 2019-08-20 | 平安科技(深圳)有限公司 | 数据同步方法、装置、计算机设备及存储介质 |
CN110381030B (zh) * | 2019-06-20 | 2022-03-11 | 视联动力信息技术股份有限公司 | 一种同步请求的处理方法及装置 |
CN110381030A (zh) * | 2019-06-20 | 2019-10-25 | 视联动力信息技术股份有限公司 | 一种同步请求的处理方法及装置 |
CN110321387A (zh) * | 2019-07-10 | 2019-10-11 | 中国联合网络通信集团有限公司 | 数据同步方法、设备及终端设备 |
CN110321387B (zh) * | 2019-07-10 | 2022-02-01 | 中国联合网络通信集团有限公司 | 数据同步方法、设备及终端设备 |
CN110704458A (zh) * | 2019-08-15 | 2020-01-17 | 平安科技(深圳)有限公司 | 数据同步方法、装置、计算机设备及存储介质 |
WO2021027363A1 (zh) * | 2019-08-15 | 2021-02-18 | 平安科技(深圳)有限公司 | 数据同步方法、装置、计算机设备及存储介质 |
CN110704458B (zh) * | 2019-08-15 | 2023-04-18 | 平安科技(深圳)有限公司 | 数据同步方法、装置、计算机设备及存储介质 |
CN110688430A (zh) * | 2019-08-22 | 2020-01-14 | 阿里巴巴集团控股有限公司 | 一种获得数据旁路的方法、装置及电子设备 |
CN110688430B (zh) * | 2019-08-22 | 2023-01-10 | 创新先进技术有限公司 | 一种获得数据旁路的方法、装置及电子设备 |
CN112256409B (zh) * | 2020-09-15 | 2022-03-04 | 中科驭数(北京)科技有限公司 | 基于多个数据库加速器的任务执行方法及装置 |
CN112256409A (zh) * | 2020-09-15 | 2021-01-22 | 中科驭数(北京)科技有限公司 | 基于多个数据库加速器的任务执行方法及装置 |
CN113901141A (zh) * | 2021-10-11 | 2022-01-07 | 京信数据科技有限公司 | 一种分布式数据同步方法及系统 |
CN114594907A (zh) * | 2022-02-24 | 2022-06-07 | 百果园技术(新加坡)有限公司 | 一种数据读写处理方法、装置、设备及存储介质 |
CN115801809A (zh) * | 2022-11-03 | 2023-03-14 | 广州辰创科技发展有限公司 | 跨网数据同步控制系统、方法及介质 |
CN115801809B (zh) * | 2022-11-03 | 2023-11-03 | 广州辰创科技发展有限公司 | 跨网数据同步控制系统、方法及介质 |
CN116633951A (zh) * | 2023-07-19 | 2023-08-22 | 中国电子科技集团公司第十五研究所 | 一种跨网数据同步方法和装置 |
CN116633951B (zh) * | 2023-07-19 | 2023-09-29 | 中国电子科技集团公司第十五研究所 | 一种跨网数据同步方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104699541B (zh) | 2018-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104699541A (zh) | 同步数据的方法、装置、数据传输组件及系统 | |
CN104731956A (zh) | 同步数据的方法、系统及相关数据库 | |
CN110209726B (zh) | 分布式数据库集群系统、数据同步方法及存储介质 | |
US10761829B2 (en) | Rolling version update deployment utilizing dynamic node allocation | |
US10585691B2 (en) | Distribution system, computer, and arrangement method for virtual machine | |
CN109643310B (zh) | 用于数据库中数据重分布的系统和方法 | |
CN111324610A (zh) | 一种数据同步的方法及装置 | |
US10095699B2 (en) | Computer-readable recording medium, execution control method, and information processing apparatus | |
CN103064742A (zh) | 一种hadoop集群的自动部署系统及方法 | |
CN105205154B (zh) | 数据迁移方法以及装置 | |
CN109032796B (zh) | 一种数据处理方法和装置 | |
CN105468720A (zh) | 集成分布式数据处理系统的方法、相应系统及其数据处理方法 | |
CN104699723A (zh) | 数据交换适配器、异构系统之间数据同步系统和方法 | |
US9785515B2 (en) | Directed backup for massively parallel processing databases | |
CN104794155B (zh) | 数据加载的方法、装置及系统 | |
CN105721582A (zh) | 多节点文件备份系统 | |
CN102946410A (zh) | 网络同步方法和装置 | |
CN102946411A (zh) | 网络同步系统 | |
CN111324667A (zh) | 一种数据同步方法、装置、电子设备及存储介质 | |
US20160352813A1 (en) | Cloud computing infrastructure | |
CN111435329A (zh) | 一种自动化测试方法和装置 | |
CN111767126A (zh) | 分布式批量处理的系统和方法 | |
CN108984105B (zh) | 对网络存储设备中的复制任务进行分配的方法和设备 | |
CN111400097A (zh) | 数据的备份方法、装置、系统和计算机可读存储介质 | |
CN110807058B (zh) | 一种导出数据的方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220728 Address after: Room 801, 8th floor, No. 104, floors 1-19, building 2, yard 6, Jiuxianqiao Road, Chaoyang District, Beijing 100015 Patentee after: BEIJING QIHOO TECHNOLOGY Co.,Ltd. Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park) Patentee before: BEIJING QIHOO TECHNOLOGY Co.,Ltd. Patentee before: Qizhi software (Beijing) Co.,Ltd. |
|
TR01 | Transfer of patent right |