CN112800026A - 一种数据转移节点、方法、系统及计算机可读存储介质 - Google Patents
一种数据转移节点、方法、系统及计算机可读存储介质 Download PDFInfo
- Publication number
- CN112800026A CN112800026A CN202110062466.4A CN202110062466A CN112800026A CN 112800026 A CN112800026 A CN 112800026A CN 202110062466 A CN202110062466 A CN 202110062466A CN 112800026 A CN112800026 A CN 112800026A
- Authority
- CN
- China
- Prior art keywords
- data
- sql statement
- queue
- statement group
- scheduler
- 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
- 238000012546 transfer Methods 0.000 title claims abstract description 78
- 238000000034 method Methods 0.000 title claims abstract description 74
- 230000002159 abnormal effect Effects 0.000 claims description 16
- 230000015556 catabolic process Effects 0.000 claims description 13
- 238000006731 degradation reaction Methods 0.000 claims description 13
- 230000000593 degrading effect Effects 0.000 claims description 9
- 238000013507 mapping Methods 0.000 claims description 6
- 238000000926 separation method Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 14
- 230000008901 benefit Effects 0.000 description 7
- 238000004590 computer program Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 230000005012 migration Effects 0.000 description 2
- 238000013508 migration Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/214—Database migration support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种数据转移节点、方法、系统、装置及计算机可读存储介质,该节点包括:数据读取调度器,用于从源数据库读取待转移数据并放入内存内置队列中;队列调度器,用于从所述内存内置队列中获取所述待转移数据并写入所述目标数据库;所述内存内置队列,包括读取队列和读取缓冲队列,所述读取队列用于从所述数据读取调度器接收所述待转移数据,所述读取缓冲队列用于向所述队列调度器提供所述待转移数据;其中,每当所述读取队列已被写满且所述读取缓冲队列处于清空状态时,将当前的读取队列切换为读取缓冲队列,并将当前的读取缓冲队列切换为读取队列。利用上述数据转移节点,能够实现“读写分离”,保证数据转移的高效性、规避读瓶颈的问题。
Description
技术领域
本发明属于数据转移领域,具体涉及一种数据转移节点、方法、系统及计算机可读存储介质。
背景技术
本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
数据转移在分布式系统中有强大的需求,尤其是传统关系型数据库转移到分布式文件系统(HDFS)中的场景更是错综复杂。然而在数据转移过程,常存在源端与目的端的读写性能不对等,进而导致目的端由于写入压力过大引发系统雪崩效应或源端读取速度慢而无法高效进行数据转移的问题。目前业界中的数据转移工具以logstash最为常用,然而logstash存在占用内存和CPU较高,且消息容易丢失等问题,并且也无法平衡数据源端与目的端的读写性能问题。
发明内容
针对上述现有技术中存在的问题,提出了一种通用且高效的数据转移节点、方法、系统及计算机可读存储介质,利用这种节点、方法、系统及计算机可读存储介质,能够解决上述问题。
本发明提供了以下方案。
第一方面,提供一种数据转移装置,包括:数据读取调度器,用于从源数据库读取待转移数据并放入内存内置队列中;队列调度器,用于从内存内置队列中获取待转移数据并写入目标数据库;内存内置队列,包括读取队列和读取缓冲队列,读取队列用于从数据读取调度器接收待转移数据,读取缓冲队列用于向队列调度器提供待转移数据;其中,每当所述读取队列已被写满且所述读取缓冲队列处于清空状态时,将当前的读取队列切换为读取缓冲队列,并将当前的读取缓冲队列切换为读取队列。
在一实施方式中,装置还用于:获取预先配置的SQL语句组,SQL语句组包括至少一个SQL语句以及配置信息;数据读取调度器根据SQL语句组创建读取线程以执行SQL语句组,其中每个SQL语句组对应于一个读取线程;队列调度器根据SQL语句组创建写入线程以执行SQL语句组;其中,配置信息至少包括目的数据库地址和源数据库地址。
在一实施方式中,装置还包括:磁盘队列,用于存储数据读取调度器同步写入的待转移数据;降级调度器,用于每当满足预设异常条件时对SQL语句组进行降级;其中,当SQL语句组降级时,数据读取调度器和队列调度器通过磁盘队列执行SQL语句组。
在一实施方式中,数据读取调度器还具体用于:判断SQL语句组是否已经降级;若SQL语句组未降级,则从源数据库读取待转移数据并写入读取队列中,其中,当读取队列已被写满且读取缓冲队列并非为清空状态时,通知降级调度器对SQL语句组进行降级,并记录已转移数据的数据偏移量;若SQL语句组已经降级,则从源数据库读取待转移数据并放入磁盘队列中。
在一实施方式中,队列调度器还具体用于:判断SQL语句组是否已经降级;若SQL语句组未降级,则从读取缓冲队列获取待转移数据并写入目标数据库;若SQL语句组已降级,则根据记录的已转移数据的数据偏移量从磁盘队列中获取待转移数据并写入目标数据库。
在一实施方式中,预设异常条件包括以下中的任意一种或多种:网络超时、目的数据库/源数据库不稳定、数据读取调度器的数据读取速度高于队列调度器的数据写入速度。
在一实施方式中,装置还用于:若数据读取调度器在向读取队列写入数据时发生异常,则清空目标数据库中的已转移数据,并重新执行SQL语句组。
在一实施方式中,SQL语句组的配置信息包括执行节点信息和执行状态信息,节点还用于:遍历多个SQL语句组,根据当前遍历的SQL语句组的配置信息判断是否已经被其他节点抢占;若执行节点信息指示SQL语句组已经被其他节点抢占,则进一步遍历下一个SQL语句组;若执行节点信息指示SQL语句组未被其他节点抢占,则抢占SQL语句组并更新执行节点信息和执行状态信息。
在一实施方式中,SQL语句组的配置信息包括重试次数信息,用于指示SQL语句组的执行异常次数,节点还用于:获取SQL语句组之后,根据重试次数信息判断SQL语句组的执行异常次数是否达到上限,若达到上限,则暂停执行SQL语句组。
在一实施方式中,队列调度器具体用于:根据SQL语句组判断是否已经为目标数据库开启写入线程;若没有开启映射到目标数据库的写入线程,则从线程池中开启写入线程以执行SQL语句组,同时存储目标数据库与写入线程的映射关系;若已经开启映射到目标数据库的写入线程,则采用已有的写入线程执行SQL语句组。
第二方面,提供一种数据转移方法,包括:利用数据读取调度器从源数据库读取待转移数据并放入内存内置队列中;利用队列调度器从内存内置队列中获取待转移数据并写入目标数据库;其中,内存内置队列包括读取队列和读取缓冲队列,读取队列用于从数据读取调度器接收待转移数据,读取缓冲队列用于向队列调度器提供待转移数据;以及,每当所述读取队列已被写满且所述读取缓冲队列处于清空状态时,将当前的读取队列切换为读取缓冲队列,并将当前的读取缓冲队列切换为读取队列。
在一实施方式中,方法还用于:获取预先配置的SQL语句组,SQL语句组包括至少一个SQL语句以及配置信息;利用数据读取调度器根据SQL语句组创建读取线程以执行SQL语句组,其中每个SQL语句组对应于一个读取线程;队列调度器根据SQL语句组创建写入线程以执行SQL语句组;其中,配置信息至少包括目的数据库地址和源数据库地址。
在一实施方式中,方法还包括:利用磁盘队列存储数据读取调度器同步写入的待转移数据;以及,每当满足预设异常条件时,利用降级调度器对SQL语句组进行降级;其中,当SQL语句组降级时,数据读取调度器和队列调度器通过磁盘队列执行SQL语句组。
在一实施方式中,方法还包括:利用数据读取调度器具体执行:判断SQL语句组是否已经降级;若SQL语句组未降级,则从源数据库读取待转移数据并写入读取队列中,其中,当读取队列已被写满且读取缓冲队列并非为清空状态时,通知降级调度器对SQL语句组进行降级,并记录已转移数据的数据偏移量;若SQL语句组已经降级,则从源数据库读取待转移数据并放入磁盘队列中。
在一实施方式中,利用队列调度器具体执行:判断SQL语句组是否已经降级;若SQL语句组未降级,则从读取缓冲队列获取待转移数据并写入目标数据库;若SQL语句组已降级,则根据记录的已转移数据的数据偏移量从磁盘队列中获取待转移数据并写入目标数据库。
在一实施方式中,预设异常条件包括以下中的任意一种或多种:网络超时、目的数据库/源数据库不稳定、数据读取调度器的数据读取速度高于队列调度器的数据写入速度。
在一实施方式中,方法还包括:若数据读取调度器在向读取队列写入数据时发生异常,则清空目标数据库中的已转移数据,并重新执行SQL语句组。
在一实施方式中,SQL语句组的配置信息包括执行方法信息和执行状态信息,方法还包括:遍历多个SQL语句组,根据当前遍历的SQL语句组的配置信息判断是否已经被其他节点抢占;若执行方法信息指示SQL语句组已经被其他节点抢占,则进一步遍历下一个SQL语句组;若执行方法信息指示SQL语句组未被其他节点抢占,则抢占SQL语句组并更新执行方法信息和执行状态信息。
在一实施方式中,SQL语句组的配置信息包括重试次数信息,用于指示SQL语句组的执行异常次数,方法还包括:获取SQL语句组之后,根据重试次数信息判断SQL语句组的执行异常次数是否达到上限,若达到上限,则暂停执行SQL语句组。
在一实施方式中,方法还包括:利用队列调度器具体执行:根据SQL语句组判断是否已经为目标数据库开启写入线程;若没有开启映射到目标数据库的写入线程,则从线程池中开启写入线程以执行SQL语句组,同时存储目标数据库与写入线程的映射关系;若已经开启映射到目标数据库的写入线程,则采用已有的写入线程执行SQL语句组。
第三方面,提供一种数据转移系统,包括:至少一个源数据库、至少一个目标数据库以及至少一个如第一方面的数据转移节点。
第四方面,提供一种数据转移装置,包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行:如权利要求第二方面的方法。
第五方面,提供一种计算机可读存储介质,计算机可读存储介质存储有程序,当程序被多核处理器执行时,使得多核处理器执行如权利要求第二方面的方法。
本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:本实施例中,建立数据读取调度器、队列转移调度器、动态切换的读取队列和读取缓冲队列的“双队列”模型,有效规避从源数据库读取数据速度比向目标数据库的写入数据速度慢的问题,实现“读写分离”,保证数据转移的高效性、规避读瓶颈的问题。
应当理解,上述说明仅是本发明技术方案的概述,以便能够更清楚地了解本发明的技术手段,从而可依照说明书的内容予以实施。为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举例说明本发明的具体实施方式。
附图说明
通过阅读下文的示例性实施例的详细描述,本领域普通技术人员将明白本文所述的优点和益处以及其他优点和益处。附图仅用于示出示例性实施例的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的标号表示相同的部件。在附图中:
图1为根据本发明一实施例的数据转移系统的示意图;
图2为根据本发明一实施例的数据转移节点的结构示意图;
图3为根据本发明又一实施例的数据转移节点的结构示意图;
图4为根据本发明一实施例的数据转移装置的结构示意图。
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
在本申请实施例的描述中,应理解,诸如“包括”或“具有”等术语旨在指示本说明书中所公开的特征、数字、步骤、行为、部件、部分或其组合的存在,并且不旨在排除一个或多个其他特征、数字、步骤、行为、部件、部分或其组合存在的可能性。
除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”等的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
本申请中的所有代码都是示例性的,本领域技术人员根据所使用的编程语言,具体的需求和个人习惯等因素会在不脱离本申请的思想的条件下想到各种变型。
为清楚阐述本申请实施例,首先将介绍一些后续实施例中可能会出现的概念。
图1示出了根据本申请一实施方式的数据转移系统,如图1所示,数据转移系统包括:至少一个源数据库,比如可以是关系型数据库;至少一个目标数据库,比如可以是HDFS集群,以及用于将数据从源数据库转移到目标数据库的多个分布式的数据转移节点。
图2和图3示出了根据本申请一实施例的数据转移节点,如图2和图3所示,数据转移节点可以包括:
数据读取调度器,其用于从源数据库读取待转移数据并放入内存内置队列中;
队列调度器,用于从内存内置队列中获取待转移数据并写入目标数据库;
内存内置队列,包括第一队列和第二队列,分别可以作为读取队列和读取缓冲队列,其中读取队列具体用于从数据读取调度器接收待转移数据,读取缓冲队列具体用于向队列调度器提供待转移数据。
其中,每当读取队列已被写满且所述读取缓冲队列处于清空状态时,将当前的读取队列切换为读取缓冲队列,并将当前的读取缓冲队列切换为读取队列。例如,如图2所示,可以先将第一队列作为读取队列,将第二队列作为读取缓冲队列,此时数据读取调度器只往读取队列(第一队列)写数据,读取缓冲队列(第二队列)由队列转移调度器用于转移数据,当转移完成之后,队列转移调度器负责清空读取缓冲队列(第二队列)的数据。当读取队列已被数据读取调度器写满,且读取缓冲队列中存储的待转移数据已被读取缓冲调度器转移完成并清空,可以将第一队列切换为读取缓冲队列,同时将第二队列切换为读取队列,如图3所示,此时数据读取调度器只往清空后的读取队列(第二队列)写数据,读取缓冲队列(第一队列)由队列转移调度器用于转移数据。数据读取调度器和队列转移调度器可以实现无缝切换,从而规避数据读取速度比数据写入速度慢的问题,实现“读写分离”,保证数据转移的高效性、规避读瓶颈的问题。
另外还需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
在一些实施方式中,参考图2,装置还用于:获取预先配置的SQL语句组,SQL语句组包括至少一个SQL语句以及配置信息;其中,配置信息至少包括目的数据库地址和源数据库地址。其中,数据读取调度器根据SQL语句组创建读取线程以执行SQL语句组,其中每个SQL语句组对应于一个读取线程;队列调度器根据SQL语句组创建写入线程以执行SQL语句组,其中每个目标数据库对应于一个写入线程。
可以理解,用户为转移数据会预先将读取数据的SQL语句配置好,设定S为用户配置的读取SQL语句总数量。在这S个SQL语句中,考虑到为每个sql语句分配一个读取线程进行读取会极大浪费线程资源,且线程来回切换引起效率低下,因此用户可以为这些sql语句进行分组,将一些执行较快的sql语句分为同一个组中。
例如,可以由用户预先定义两个SQL语句组,第一个SQL语句组包含2两条SQL语句:SQL1:select*from A where column1=’xx’;SQL2:select*from B where column2=’xx’;第二个SQL语句组包含1条SQL语句:SQL3:select*from C where column3=’xx’。进一步可以将所有的SQL语句组和对应的配置信息存入到数据表中,当数据转移节点启动后,开始从公共数据表中获取SQL语句组。参考图2,当节点1的数据读取调取器抢占该第一个SQL语句组之后,可以创建读取线程1以执行SQL1和SQL2组成的SQL语句组。
SQL语句组的配置信息可以包括:执行节点信息(executeHost)、执行状态信息(status)、重试次数信息(retryCount)、目的数据库地址(destinationHost)、源数据库地址(sourceHost)、备份批次号(batNo)。其中,执行节点信息可表示真正执行读取SQL语句组的数据转移节点、执行状态信息可以用于表示数据转移的状态,0表示未转移,1表示转移中,2表示转移成功,3表示转移失败。重试次数信息可以用于表示转移失败后重新执行SQL语句组的次数,可以理解,转移过程难免遇到网络延时、内存或者磁盘不足的情况,为了减少人工干预的情况,如果重试次数信息未达到指定上限值,转移节点可以自动重新执行该SQL语句组进行转移。备份批次号表示SQL语句组所在的批次号,数据转移中一个批次号可能包含多个SQL语句组,一个SQL语句组只能属于一个批次号。
在一些实施方法中,参考图2,节点还可以包括:磁盘队列,用于存储数据读取调度器同步写入的待转移数据;降级调度器,用于每当满足预设异常条件时对SQL语句组进行降级;其中,当SQL语句组降级时,数据读取调度器和队列调度器通过磁盘队列执行SQL语句组。
可以理解,由于数据转移过程中可能出现网络超时,目的数据库或源数据库系统不稳定、读取速度高于写入速度等异常情况。为了保证数据的一致性,数据读取调度器除了每次需要往第一队列或第二队列中写入数据外,还要同步往磁盘队列中写入相同的数据,磁盘队列存储在磁盘上,可以记录了整个转移过程中的数据。当出现异常情况时,比如当系统出现宕机、异常、服务降级时,降级调度器会通知数据读取调度器中对应的读取线程不再写入第一队列或第二队列中,而是直接将数据写入到磁盘队列中,同时降级调度器会通知队列转移调度器清空目标数据库中已经转移的数据,且队列转移调度器不再从内存内置队列中读取数据,而是直接从磁盘队列中转移数据,保证数据转移的一致性、幂等性及重试的高效性。
在一些实施方式中,数据读取调度器还具体用于:判断SQL语句组是否已经降级;若SQL语句组未降级,则从源数据库读取待转移数据并写入读取队列中,其中,当读取队列已被写满且读取缓冲队列并非为清空状态时,通知降级调度器对SQL语句组进行降级,并记录已转移数据的数据偏移量;若SQL语句组已经降级,则从源数据库读取待转移数据并放入磁盘队列中;以及,
队列调度器还具体用于:判断SQL语句组是否已经降级;若SQL语句组未降级,则从读取缓冲队列获取待转移数据并写入目标数据库;若SQL语句组已降级,则根据记录的已转移数据的数据偏移量从磁盘队列中获取待转移数据并写入目标数据库。
例如,数据读取调度器从线程池中启动线程执行sql语句组,读取源数据库中的数据,读取数据时采用分批的形式从数据库中读取数据。数据读取调度器可以从降级调度器中获取该sql语句组的降级状态:如果未发生降级,表示需要将数据读取调度器所读取的数据放入内存内置队列中去。初始时,每个sql语句组拥有2个队列,比如图3中所示出第一队列和第二队列,首先可以选择第一队列写入数据,第一队列写满后,则切换到第二队列写数据,进一步地,(a)如果此时第二数据仍然未被队列转移调度器处理完,说明读速度快于写速度,则需要记录队列中已经处理的数据偏移量,并通知降级调度器进行降级,(b)如果此时第二队列空闲,则读取线程往该第二队列写数据。进一步地,在第二队列写满后,(a')若此时第一队列已满,表示读取速度快于写速度,需要记录队列中已转移数据的数据偏移量,并通知降级调度器进行降级,(b')若此时第一队列已经清空,则继续切换到第一队列写下一批数据。相反,如果已经发生降级,表示读取速度已经快于写入速率了,内存内置队列中缓存数据无任何意义,可以将读取线程读取的数据写入到磁盘队列中。
进一步,队列转移调度器可以从降级调度器中获取该SQL语句组的降级状态,若未发生降级,队列转移调度器可以从动态切换的读取缓冲调度器中获取待移动数据。例如,队列调度器第一次会选择第一队列中的数据进行写入,待第一队列中所有的数据都写入完毕后,下一次切换到第二队列中读取数据,依次交替,直到两个队列中都没有数据结束。相反,若发生降级,则不能再从内存内置队列中获取数据,只能从磁盘队列中获取数据,由于目标数据库可能已经转移了若干数据到目标数据库中,所以队列转移调度器只需要根据记录的数据偏移量获取未转移数据并写入到目标数据库中,以防重复写入。
可以理解,磁盘相较于内存具有成本更低的优点,本实施例通过构建磁盘队列和降级调度器,可以规避数据读取速度比数据写入速度快时内存溢出的风险。当内存内置队列无法存储过多数据时,将把数据源中的数据直接存入磁盘队列中,降级调度器通知队列转移调度器直接从磁盘队列中转移数据。
在一种实施方式中,预设异常条件包括以下中的任意一种或多种:网络超时、目的数据库/源数据库不稳定、数据读取调度器的数据读取速度高于队列调度器的数据写入速度。
在一种实施方式中,SQL语句组的配置信息包括执行节点信息和执行状态信息,节点还用于:遍历多个SQL语句组,根据当前遍历的SQL语句组的配置信息判断是否已经被其他节点抢占;若执行节点信息指示SQL语句组已经被其他节点抢占,则进一步遍历下一个SQL语句组;若执行节点信息指示SQL语句组未被其他节点抢占,则抢占SQL语句组并更新执行节点信息和执行状态信息。
例如,参考图1和图2,系统中的各个节点遍历所有的sql语句组,若sql语句组的执行节点信息不为空,表示该SQL语句组已经被其他节点抢占,则遍历下一个SQL语句组。若执行节点信息为空,则更新公共表中该SQL语句组的执行节点信息为当前节点的IP,执行状态信息从“未执行”更新为“执行中”,若更新成功表示抢占成功,更新失败表示该语句被同一时刻的其他节点抢占,则遍历下一个语句组。通过采用上述竞争抢占的方式,可以均衡地让每个节点转移部分数据,保证各个节点执行的任务不重复,保证数据转移的均衡、高效、完整性。
在一种实施方式中,数据转移发生失败时,为保证数据的一致性和同步的幂等性,装置还用于:若数据读取调度器在向读取队列写入数据时发生异常,则清空目标数据库中的已转移数据,并重新执行SQL语句组。可以理解,当写入内存队列发生异常时,因为此时无法准确知道队列中的数据已经有多少被同步到目标数据库中,为保证数据的一致性,需要重试重新写入数据。
在一种实施方式中,SQL语句组的配置信息包括重试次数信息,用于指示重新执行SQL语句组的次数,节点还用于:获取SQL语句组之后,根据重试次数信息判断SQL语句组的执行异常次数是否达到上限,若达到上限,则暂停执行SQL语句组,并可以进行告警通知。由此避免了重复多次的失败转移。
例如,SQL语句组的重试次数信息的初始值为0,每次重新执行SQL语句组一次则加1,预先设置上限3次,如果判断当前的SQL语句组携带的重试次数为4,则可以直接结束本次数据转移,并告警。
在一种实施方式中,队列调度器具体用于:根据SQL语句组判断是否已经为目标数据库开启写入线程;若没有开启映射到目标数据库的写入线程,则从线程池中开启写入线程以执行SQL语句组,同时存储目标数据库与写入线程的映射关系,以在后续的数据转移过程中重复使用该新开启的写入线程,避免资源开销;若已经开启映射到目标数据库的写入线程,则采用已有的写入线程执行SQL语句组。其中每个目标数据库对应于一个写入线程,采用并行的形式同时为每个目标数据库同步数据,效率更高。
在一实施方式中,上述源数据库可以是关系型数据库,上述目标数据库可以是分布式文件系统(HDFS)集群。
基于相同的技术构思,本发明实施例还提供一种数据转移方法,应用于以上实施例所示出的数据移动装置。
该方法具体包括:利用数据读取调度器从源数据库读取待转移数据并放入内存内置队列中;利用队列调度器从内存内置队列中获取待转移数据并写入目标数据库;其中,内存内置队列包括读取队列和读取缓冲队列,读取队列用于从数据读取调度器接收待转移数据,读取缓冲队列用于向队列调度器提供待转移数据;以及,每当所述读取队列已被写满且所述读取缓冲队列处于清空状态时,将当前的读取队列切换为读取缓冲队列,并将当前的读取缓冲队列切换为读取队列。
在一实施方式中,方法还用于:获取预先配置的SQL语句组,SQL语句组包括至少一个SQL语句以及配置信息;利用数据读取调度器根据SQL语句组创建读取线程以执行SQL语句组,其中每个SQL语句组对应于一个读取线程;队列调度器根据SQL语句组创建写入线程以执行SQL语句组;其中,配置信息至少包括目的数据库地址和源数据库地址。
在一实施方式中,方法还包括:利用磁盘队列存储数据读取调度器同步写入的待转移数据;以及,每当满足预设异常条件时,利用降级调度器对SQL语句组进行降级;其中,当SQL语句组降级时,数据读取调度器和队列调度器通过磁盘队列执行SQL语句组。
在一实施方式中,方法还包括:利用数据读取调度器具体执行:判断SQL语句组是否已经降级;若SQL语句组未降级,则从源数据库读取待转移数据并写入读取队列中,其中,当读取队列已被写满且读取缓冲队列并非为清空状态时,通知降级调度器对SQL语句组进行降级,并记录已转移数据的数据偏移量;若SQL语句组已经降级,则从源数据库读取待转移数据并放入磁盘队列中;以及,利用队列调度器具体执行:判断SQL语句组是否已经降级;若SQL语句组未降级,则从读取缓冲队列获取待转移数据并写入目标数据库;若SQL语句组已降级,则根据记录的已转移数据的数据偏移量从磁盘队列中获取待转移数据并写入目标数据库。
在一实施方式中,预设异常条件包括以下中的任意一种或多种:网络超时、目的数据库/源数据库不稳定、数据读取调度器的数据读取速度高于队列调度器的数据写入速度。
在一实施方式中,方法还包括:若数据读取调度器在向读取队列写入数据时发生异常,则清空目标数据库中的已转移数据,并重新执行SQL语句组。
在一实施方式中,SQL语句组的配置信息包括执行方法信息和执行状态信息,方法还包括:遍历多个SQL语句组,根据当前遍历的SQL语句组的配置信息判断是否已经被其他节点抢占;若执行方法信息指示SQL语句组已经被其他节点抢占,则进一步遍历下一个SQL语句组;若执行方法信息指示SQL语句组未被其他节点抢占,则抢占SQL语句组并更新执行方法信息和执行状态信息。
在一实施方式中,SQL语句组的配置信息包括重试次数信息,用于指示SQL语句组的执行异常次数,方法还包括:获取SQL语句组之后,根据重试次数信息判断SQL语句组的执行异常次数是否达到上限,若达到上限,则暂停执行SQL语句组。
在一实施方式中,方法还包括:利用队列调度器具体执行:根据SQL语句组判断是否已经为目标数据库开启写入线程;若没有开启映射到目标数据库的写入线程,则从线程池中开启写入线程以执行SQL语句组,同时存储目标数据库与写入线程的映射关系;若已经开启映射到目标数据库的写入线程,则采用已有的写入线程执行SQL语句组。
在一实施方式中,上述源数据库可以是关系型数据库,上述目标数据库可以是分布式文件系统(HDFS)集群。
关于本申请实施例的方法流程图,将某些操作描述为以一定顺序执行的不同的步骤。这样的流程图属于说明性的而非限制性的。可以将在本文中所描述的某些步骤分组在一起并且在单个操作中执行、可以将某些步骤分割成多个子步骤、并且可以以不同于在本文中所示出的顺序来执行某些步骤。可以由任何电路结构和/或有形机制(例如,由在计算机设备上运行的软件、硬件(例如,处理器或芯片实现的逻辑功能)等、和/或其任何组合)以任何方式来实现在流程图中所示出的各个步骤。
基于相同的技术构思,本发明实施例还提供一种数据转移系统,参考图1,该系统包括:至少一个源数据库、至少一个目标数据库以及至少一个如第一方面的数据转移节点。
需要说明的是,本申请实施例中的系统可以实现前述节点和方法的实施例的各个过程,并达到相同的效果和功能,这里不再赘述。
图4为根据本申请一实施例的数据转移装置,用于执行以上实施例所示出的数据转移方法,该装置包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述实施例所述的方法。
根据本申请的一些实施例,提供了数据转移方法的非易失性计算机存储介质,其上存储有计算机可执行指令,该计算机可执行指令设置为在由处理器运行时执行:上述实施例所述的方法。
本申请中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、设备和计算机可读存储介质实施例而言,由于其基本相似于方法实施例,所以其描述进行了简化,相关之处可参见方法实施例的部分说明即可。
本申请实施例提供的装置、设备和计算机可读存储介质与方法是一一对应的,因此,装置、设备和计算机可读存储介质也具有与其对应的方法类似的有益技术效果,由于上面已经对方法的有益技术效果进行了详细说明,因此,这里不再赘述装置、设备和计算机可读存储介质的有益技术效果。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。
Claims (23)
1.一种数据转移节点,其特征在于,包括:
数据读取调度器,用于从源数据库读取待转移数据并放入内存内置队列中;
队列调度器,用于从所述内存内置队列中获取所述待转移数据并写入所述目标数据库;
所述内存内置队列,包括读取队列和读取缓冲队列,所述读取队列用于从所述数据读取调度器接收所述待转移数据,所述读取缓冲队列用于向所述队列调度器提供所述待转移数据;
其中,每当所述读取队列已被写满且所述读取缓冲队列处于清空状态时,将当前的读取队列切换为读取缓冲队列,并将当前的读取缓冲队列切换为读取队列。
2.根据权利要求1所述的节点,其特征在于,
所述节点还用于获取预先配置的SQL语句组,所述SQL语句组包括至少一个SQL语句以及配置信息,所述配置信息至少包括目的数据库地址和源数据库地址;
所述数据读取调度器根据所述SQL语句组创建读取线程以执行所述SQL语句组,其中每个SQL语句组对应于一个读取线程;
所述队列调度器根据所述SQL语句组创建写入线程以执行所述SQL语句组。
3.根据权利要求2所述的节点,其特征在于,所述节点还包括:
磁盘队列,用于存储所述数据读取调度器同步写入的所述待转移数据;
降级调度器,用于每当满足预设异常条件时对所述SQL语句组进行降级;
其中,当所述SQL语句组降级时,所述数据读取调度器和所述队列调度器通过所述磁盘队列执行所述SQL语句组。
4.根据权利要求2所述的节点,其特征在于,所述节点还用于:
若数据转移中发生异常,则清空所述目标数据库中的已转移数据,并重新执行所述SQL语句组。
5.根据权利要求3所述的节点,其特征在于,
所述数据读取调度器还具体用于:判断所述SQL语句组是否已经降级;若所述SQL语句组未降级,则从源数据库读取所述待转移数据并写入所述读取队列中,其中,当所述读取队列已被写满且所述读取缓冲队列并非为清空状态时,通知所述降级调度器对所述SQL语句组进行降级,并记录已转移数据的数据偏移量;若所述SQL语句组已经降级,则从所述源数据库读取所述待转移数据并放入所述磁盘队列中。
6.根据权利要求5所述的节点,其特征在于,
所述队列调度器还具体用于:判断所述SQL语句组是否已经降级;若所述SQL语句组未降级,则从所述读取缓冲队列获取所述待转移数据并写入所述目标数据库;若所述SQL语句组已降级,则根据记录的已转移数据的数据偏移量从所述磁盘队列中获取所述待转移数据并写入所述目标数据库。
7.根据权利要求3所述节点,其特征在于,所述预设异常条件包括以下中的任意一种或多种:网络超时、目的数据库/源数据库不稳定、所述数据读取调度器的数据读取速度高于所述队列调度器的数据写入速度。
8.根据权利要求2所述的节点,其特征在于,所述SQL语句组的所述配置信息包括执行节点信息和执行状态信息,在获取所述SQL语句组之前,所述节点还用于:
遍历多个SQL语句组,根据当前遍历的SQL语句组的所述配置信息判断是否已经被其他节点抢占;
若所述执行节点信息指示所述SQL语句组已经被其他节点抢占,则进一步遍历下一个SQL语句组;
若所述执行节点信息指示所述SQL语句组未被其他节点抢占,则抢占所述SQL语句组并更新所述执行节点信息和所述执行状态信息。
9.根据权利要求4所述的节点,其特征在于,所述SQL语句组的所述配置信息包括重试次数信息,用于指示重新执行所述SQL语句组的次数,所述节点还用于:
获取所述SQL语句组之后,根据所述重试次数信息判断所述SQL语句组的执行异常次数是否达到上限,若达到上限,则暂停执行所述SQL语句组。
10.根据权利要求2所述的节点,其特征在于,所述队列调度器具体用于:
根据所述SQL语句组判断是否已经为所述目标数据库开启写入线程;
若没有开启映射到所述目标数据库的写入线程,则从线程池中开启写入线程以执行所述SQL语句组,同时存储所述目标数据库与所述写入线程的映射关系;
若已经开启映射到所述目标数据库的写入线程,则采用已有的写入线程执行所述SQL语句组。
11.一种数据转移方法,其特征在于,包括:
利用数据读取调度器从源数据库读取待转移数据并放入内存内置队列中;
利用队列调度器从所述内存内置队列中获取所述待转移数据并写入所述目标数据库;
其中,所述内存内置队列包括读取队列和读取缓冲队列,所述读取队列用于从所述数据读取调度器接收所述待转移数据,所述读取缓冲队列用于向所述队列调度器提供所述待转移数据;以及,每当所述读取队列已被写满且所述读取缓冲队列处于清空状态时,将当前的读取队列切换为读取缓冲队列,并将当前的读取缓冲队列切换为读取队列。
12.根据权利要求11所述的方法,其特征在于,所述方法还用于:
获取预先配置的SQL语句组,所述SQL语句组包括至少一个SQL语句以及配置信息;
利用所述数据读取调度器根据所述SQL语句组创建读取线程以执行所述SQL语句组,其中每个SQL语句组对应于一个读取线程;所述队列调度器根据所述SQL语句组创建写入线程以执行所述SQL语句组;
其中,所述配置信息至少包括目的数据库地址和源数据库地址。
13.根据权利要求12所述的方法,其特征在于,所述方法还包括:
利用磁盘队列存储所述数据读取调度器同步写入的所述待转移数据;以及,
每当满足预设异常条件时,利用降级调度器对所述SQL语句组进行降级;其中,当所述SQL语句组降级时,所述数据读取调度器和所述队列调度器通过所述磁盘队列执行所述SQL语句组。
14.根据权利要求13所述的方法,其特征在于,所述方法还包括:
利用所述数据读取调度器具体执行:判断所述SQL语句组是否已经降级;若所述SQL语句组未降级,则从源数据库读取所述待转移数据并写入所述读取队列中,其中,当所述读取队列已被写满且所述读取缓冲队列并非为清空状态时,通知所述降级调度器对所述SQL语句组进行降级,并记录已转移数据的数据偏移量;若所述SQL语句组已经降级,则从所述源数据库读取所述待转移数据并放入所述磁盘队列中。
15.根据权利要求14所述的方法,其特征在于,所述方法还包括:
利用所述队列调度器具体执行:判断所述SQL语句组是否已经降级;若所述SQL语句组未降级,则从所述读取缓冲队列获取所述待转移数据并写入所述目标数据库;若所述SQL语句组已降级,则根据记录的已转移数据的数据偏移量从所述磁盘队列中获取所述待转移数据并写入所述目标数据库。
16.根据权利要求13所述方法,其特征在于,所述预设异常条件包括以下中的任意一种或多种:网络超时、目的数据库/源数据库不稳定、所述数据读取调度器的数据读取速度高于所述队列调度器的数据写入速度。
17.根据权利要求12所述的方法,其特征在于,所述方法还包括:
若所述数据读取调度器在向所述读取队列写入数据时发生异常,则清空所述目标数据库中的已转移数据,并重新执行所述SQL语句组。
18.根据权利要求12所述的方法,其特征在于,所述SQL语句组的所述配置信息包括执行方法信息和执行状态信息,所述方法还包括:
遍历多个SQL语句组,根据当前遍历的SQL语句组的所述配置信息判断是否已经被其他节点抢占;
若所述执行方法信息指示所述SQL语句组已经被其他节点抢占,则进一步遍历下一个SQL语句组;
若所述执行方法信息指示所述SQL语句组未被其他节点抢占,则抢占所述SQL语句组并更新所述执行方法信息和所述执行状态信息。
19.根据权利要求12所述的方法,其特征在于,所述SQL语句组的所述配置信息包括重试次数信息,用于指示所述SQL语句组的执行异常次数,所述方法还包括:
获取所述SQL语句组之后,根据所述重试次数信息判断所述SQL语句组的执行异常次数是否达到上限,若达到上限,则暂停执行所述SQL语句组。
20.根据权利要求12所述的方法,其特征在于,所述方法还包括:
利用所述队列调度器具体执行:
根据所述SQL语句组判断是否已经为所述目标数据库开启写入线程;
若没有开启映射到所述目标数据库的写入线程,则从线程池中开启写入线程以执行所述SQL语句组,同时存储所述目标数据库与所述写入线程的映射关系;
若已经开启映射到所述目标数据库的写入线程,则采用已有的写入线程执行所述SQL语句组。
21.一种数据转移系统,其特征在于,包括:
至少一个源数据库、至少一个目标数据库以及至少一个如权利要求1-10中任意一项所述的数据转移节点。
22.一种数据转移装置,其特征在于,包括:
至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行:如权利要求11-20中任一项所述的方法。
23.一种计算机可读存储介质,所述计算机可读存储介质存储有程序,当所述程序被多核处理器执行时,使得所述多核处理器执行如权利要求11-20中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110062466.4A CN112800026B (zh) | 2021-01-18 | 2021-01-18 | 一种数据转移节点、方法、系统及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110062466.4A CN112800026B (zh) | 2021-01-18 | 2021-01-18 | 一种数据转移节点、方法、系统及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112800026A true CN112800026A (zh) | 2021-05-14 |
CN112800026B CN112800026B (zh) | 2024-02-06 |
Family
ID=75810082
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110062466.4A Active CN112800026B (zh) | 2021-01-18 | 2021-01-18 | 一种数据转移节点、方法、系统及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112800026B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113552836A (zh) * | 2021-07-09 | 2021-10-26 | 武汉数信科技有限公司 | 一种可编程控制器的信息交互方法及系统 |
CN114579053A (zh) * | 2022-03-02 | 2022-06-03 | 统信软件技术有限公司 | 数据读写方法、装置、计算设备及存储介质 |
CN116860869A (zh) * | 2023-05-29 | 2023-10-10 | 玖章算术(浙江)科技有限公司 | 一种主键并发场景下的队列投递方法和系统 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101101563A (zh) * | 2007-07-23 | 2008-01-09 | 清华大学 | 基于海量数据分级存储系统的迁移管理方法 |
US20120054760A1 (en) * | 2010-08-24 | 2012-03-01 | Jaewoong Chung | Memory request scheduling based on thread criticality |
US20120303895A1 (en) * | 2011-05-23 | 2012-11-29 | International Business Machines Corporation | Handling high priority requests in a sequential access storage device having a non-volatile storage cache |
CN102999537A (zh) * | 2011-09-19 | 2013-03-27 | 阿里巴巴集团控股有限公司 | 一种数据迁移系统和方法 |
US9110898B1 (en) * | 2012-12-20 | 2015-08-18 | Emc Corporation | Method and apparatus for automatically detecting replication performance degradation |
CN104915886A (zh) * | 2015-01-04 | 2015-09-16 | 杭州时代银通软件有限公司 | 一种外汇牌价处理系统及方法 |
CN108804523A (zh) * | 2018-04-27 | 2018-11-13 | 腾讯科技(深圳)有限公司 | 数据同步方法、系统及计算机可读存储介质 |
CN109729119A (zh) * | 2017-10-30 | 2019-05-07 | 中兴通讯股份有限公司 | 一种协调数据同步数据的方法、装置、设备及存储介质 |
CN110674167A (zh) * | 2019-08-20 | 2020-01-10 | 广州亚美信息科技有限公司 | 数据库操作方法、装置、计算机设备和存储介质 |
CN111291119A (zh) * | 2020-01-21 | 2020-06-16 | 郑州阿帕斯数云信息科技有限公司 | 数据同步方法和装置 |
CN112069253A (zh) * | 2020-08-20 | 2020-12-11 | 上海钧正网络科技有限公司 | 适用于多场景的库存项管理方法、系统、终端及存储介质 |
CN112153133A (zh) * | 2020-09-18 | 2020-12-29 | 苏州浪潮智能科技有限公司 | 一种数据共享方法、设备以及介质 |
-
2021
- 2021-01-18 CN CN202110062466.4A patent/CN112800026B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101101563A (zh) * | 2007-07-23 | 2008-01-09 | 清华大学 | 基于海量数据分级存储系统的迁移管理方法 |
US20120054760A1 (en) * | 2010-08-24 | 2012-03-01 | Jaewoong Chung | Memory request scheduling based on thread criticality |
US20120303895A1 (en) * | 2011-05-23 | 2012-11-29 | International Business Machines Corporation | Handling high priority requests in a sequential access storage device having a non-volatile storage cache |
CN102999537A (zh) * | 2011-09-19 | 2013-03-27 | 阿里巴巴集团控股有限公司 | 一种数据迁移系统和方法 |
US9110898B1 (en) * | 2012-12-20 | 2015-08-18 | Emc Corporation | Method and apparatus for automatically detecting replication performance degradation |
CN104915886A (zh) * | 2015-01-04 | 2015-09-16 | 杭州时代银通软件有限公司 | 一种外汇牌价处理系统及方法 |
CN109729119A (zh) * | 2017-10-30 | 2019-05-07 | 中兴通讯股份有限公司 | 一种协调数据同步数据的方法、装置、设备及存储介质 |
CN108804523A (zh) * | 2018-04-27 | 2018-11-13 | 腾讯科技(深圳)有限公司 | 数据同步方法、系统及计算机可读存储介质 |
CN110674167A (zh) * | 2019-08-20 | 2020-01-10 | 广州亚美信息科技有限公司 | 数据库操作方法、装置、计算机设备和存储介质 |
CN111291119A (zh) * | 2020-01-21 | 2020-06-16 | 郑州阿帕斯数云信息科技有限公司 | 数据同步方法和装置 |
CN112069253A (zh) * | 2020-08-20 | 2020-12-11 | 上海钧正网络科技有限公司 | 适用于多场景的库存项管理方法、系统、终端及存储介质 |
CN112153133A (zh) * | 2020-09-18 | 2020-12-29 | 苏州浪潮智能科技有限公司 | 一种数据共享方法、设备以及介质 |
Non-Patent Citations (3)
Title |
---|
CHIOU0308: "服务器应用--双缓冲队列", Retrieved from the Internet <URL:https://blog.csdn.net/chiou0308/article/details/100605912> * |
董朋志: "云环境下数据库同步服务的研究与实现", 《信息科技》, no. 01 * |
蔡奇: "一种异构访问感知的内存集群调度方案", 《信息科技》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113552836A (zh) * | 2021-07-09 | 2021-10-26 | 武汉数信科技有限公司 | 一种可编程控制器的信息交互方法及系统 |
CN114579053A (zh) * | 2022-03-02 | 2022-06-03 | 统信软件技术有限公司 | 数据读写方法、装置、计算设备及存储介质 |
CN116860869A (zh) * | 2023-05-29 | 2023-10-10 | 玖章算术(浙江)科技有限公司 | 一种主键并发场景下的队列投递方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112800026B (zh) | 2024-02-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112800026B (zh) | 一种数据转移节点、方法、系统及计算机可读存储介质 | |
US10540119B2 (en) | Distributed shared log storage system having an adapter for heterogenous big data workloads | |
US20240264940A1 (en) | Write data cache method and system, device, and storage medium | |
CN111708738B (zh) | 实现hadoop文件系统hdfs与对象存储s3数据互访方法及系统 | |
US20160103845A1 (en) | Enhanced Handling Of Intermediate Data Generated During Distributed, Parallel Processing | |
JP6412244B2 (ja) | 負荷に基づく動的統合 | |
CN104111897A (zh) | 一种数据处理方法、装置及计算机系统 | |
CN107016016B (zh) | 一种数据处理的方法及装置 | |
US20200012577A1 (en) | Role management of compute nodes in distributed clusters | |
CN112905365B (zh) | 一种数据处理方法、装置、设备及介质 | |
CN111309245B (zh) | 一种分层存储写入方法和装置、读取方法和装置及系统 | |
CN108733585B (zh) | 缓存系统及相关方法 | |
US9395930B2 (en) | Information processing system, control method of information processing system, and recording medium | |
CN110569112B (zh) | 日志数据写入方法及对象存储守护装置 | |
US9898468B2 (en) | Single pass file system repair with copy on write | |
CN110895545B (zh) | 共享数据同步方法及装置 | |
CN113448977A (zh) | 基于数据库Binlog的分布式缓存更新方法及装置 | |
CN107102898B (zh) | 一种基于numa架构的内存管理、构建数据结构的方法及装置 | |
CN108829498A (zh) | 业务数据访问方法和装置 | |
US10976934B2 (en) | Prioritizing pages to transfer for memory sharing | |
CN109710698B (zh) | 一种数据汇聚方法、装置、电子设备及介质 | |
CN113687935A (zh) | 一种基于超融合设计的云原生存储调度方式 | |
US9753670B2 (en) | Prioritizing memory pages to copy for memory migration | |
US10445409B2 (en) | System and method of supporting user level file system transactions using batch rename and file clones | |
CN112559457A (zh) | 数据访问方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |