CN113704359A - 一种时序数据库多数据副本的同步方法、系统以及服务器 - Google Patents

一种时序数据库多数据副本的同步方法、系统以及服务器 Download PDF

Info

Publication number
CN113704359A
CN113704359A CN202111032190.1A CN202111032190A CN113704359A CN 113704359 A CN113704359 A CN 113704359A CN 202111032190 A CN202111032190 A CN 202111032190A CN 113704359 A CN113704359 A CN 113704359A
Authority
CN
China
Prior art keywords
data
copies
copy
fragment
writing
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
Application number
CN202111032190.1A
Other languages
English (en)
Other versions
CN113704359B (zh
Inventor
赵新宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ucloud Technology Co ltd
Original Assignee
Ucloud Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ucloud Technology Co ltd filed Critical Ucloud Technology Co ltd
Priority to CN202111032190.1A priority Critical patent/CN113704359B/zh
Publication of CN113704359A publication Critical patent/CN113704359A/zh
Application granted granted Critical
Publication of CN113704359B publication Critical patent/CN113704359B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/273Asynchronous replication or reconciliation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明属于分布式数据库技术领域,公开了一种时序数据库多数据副本的同步方法、系统以及服务器,该同步方法包括:数据写入步骤,将数据的数据副本分别写入N个副本存储节点中,并且当数据副本写入副本存储节点成功时,记录成功信息的成功数量M递增1;数据副本一致性校验步骤,将数据副本的数据摘要进行两两比对,数据摘要一致的,则认为两个数据副本之间的数据是一致的;修复步骤,确定数据副本两两之间的不一致的数据,生成补丁包,并使用补丁包修复待修复的数据副本。本发明的优点在于采用数据多副本同时写,异步获取写入成功状态的方式,使用这种方式可以提供最高效的写入速率,同时通过异步的数据对比和修复实现数据多副本的最终一致性。

Description

一种时序数据库多数据副本的同步方法、系统以及服务器
技术领域
本发明涉及分布式数据库技术领域,尤其涉及了一种时序数据库多数据副本的同步方法、系统以及服务器。
背景技术
在分布式存储场景上,为保证数据的可靠性,一般采用多副本存储数据。而多副本数据的一致性问题一般使用基于Raft或Paxos协议的一致性解决方案或基于主从架构方式的一致性解决方案。
在多副本写入的场景上,基于Raft或Paxos协议的一致性解决方案需要保证大多数副本完成写入后才会返回给客户端成功,可以保证大多数数据在写入时既保证多副本的一致性,而少量数据的不一致的则通过读取时比对版本进行修复。如Tidb、阿里云Influxdb集群都采用此种方式。但是该方案一方面要求额外的控制逻辑来保证副本之间的Raft角色状态,当出现副本失效不可用时,需要重新修复状态;另一方面在每一次写入时都要确保至少半数以上的节点写入成功,随着副本数量的增多,单次写入耗时将层线性增加,而在网络出现分区或延时等场景时,将会导致整个写入操作的耗时不可控,整个集群的写入吞吐降低。
基于主从架构方式的一致性解决方案中,多副本之间存在主从关系,数据的写入全部写入主节点,读取可以从主从节点读取,主从节点之间采用同步、半同步或异步方案进行数据的。如MySQL主从架构,Redis主从架构等都采用此种方式。但是该方案也要求额外的逻辑来维护主从角色关系,在出现主库异常时,切换主从角色。此外,在.写入时若使用异步状态则只需要保证数据写入主节点即可,从节点可以异步读取消息日志进行异步消费,但该场景下若主节点出现性能问题或网络延时增大等场景,在未触发主从切换的条件下仍然会带来大量的写入延时与吞吐量下降;而同步或半同步情况则会产生与Raft协议相同的分区异常问题。主从之间的数据同步仍然需要额外的同步逻辑支持,同时也不能保证同步逻辑完全有效不产生数据点异常或丢失的场景,仍然需要进一步进行数据比对。
但是,将分布式数据库按功能进行细分后,常见的关系型数据库的功能已已无法满足对时间序列数据的有效存储与处理。
时序数据库全称为时间序列数据库。时间序列数据库主要用于指处理带时间标签(按照时间的顺序变化,即时间序列化)的数据,带时间标签的数据也称为时间序列数据。时间序列数据的典型特点是:产生频率快(每一个监测点一秒钟内可产生多条数据)、严重依赖于采集时间(每一条数据均要求对应唯一的时间)、测点多信息量大(常规的实时监测系统均有成千上万的监测点,监测点每秒钟都产生数据,每天产生几十GB的数据量)。
基于上述时间序列数据的特点,虽然同为分布式存储,关系型数据库已无法满足对时间序列数据的有效存储与处理,因此迫切需要一种专门针对时间序列数据来做优化的数据库系统,因此需要开发一种新的解决方案,来提高多副本数据的一致性。
发明内容
为了解决上述缺陷,本发明提供一种时序数据库多数据副本的同步方法,包括如下步骤:
数据写入步骤,确定需要的数据副本的个数N,将所述数据的数据副本分别写入N个副本存储节点中,并且当所述数据副本写入所述副本存储节点成功时,记录所述成功信息的成功数量M递增1;
数据副本一致性校验步骤,将所述数据副本的数据摘要进行两两比对,所述数据摘要一致的,则认为两个所述数据副本之间的数据是一致的;
修复步骤,确定所述数据副本两两之间的不一致的数据,生成数据补丁,并将多个所述数据补丁聚合为补丁包,并使用所述补丁包修复待修复的数据副本。
上述的同步方法中,所述数据写入步骤进一步包括:确定成功写入所述数据副本的最小成功数量Mmin,当成功数量M等于最小成功数量Mmin时,返回写入成功提示信息。
上述的同步方法中,所述数据写入步骤中,数据副本个数N与最小成功数量Mmin的关系为0<=Mmin<=N,并且所述最小成功数量Mmin根据使用场景来调整。
上述的同步方法中,所述数据的元数据部分包括:
不一致数据分片队列,用于记录所述数据不一致的分片的ID号;
修复计划,用于保存需要修复的数据分片的元数据信息。
上述的同步方法中,所述修复计划进一步包括:
任务ID,用于指示所述修复计划的ID;
分片ID,用于指示待修复的分片的实际逻辑ID,所述实际逻辑ID用于定位所述待修复的分片的多个数据副本的位置;
修复程序地址Addr,用于指定修复程序,由所述修复程序来执行修复任务;
任务开始时间StartAt,用于指示执行所述修复计划的开始时间;
任务结束时间EndAt,用于指示执行所述修复计划的结束时间;
任务执行状态Status,用于指示本次修复任务是否成功。
上述的同步方法中,所述数据副本一致性校验步骤进一步包括:
获取所述数据的第一分片的多个所述数据副本所在的物理位置;
访问所述物理位置,并请求获取相应的数据副本的数据摘要;
将所述第一分片的所有所述数据摘要进行两两比对,以确定所述数据摘要是否一致;
若所述数据摘要一致,则所述第一分片的多个数据副本的数据一致;若所述数据摘要存在不一致,则所述第一分片的多个所述数据副本的数据不一致;
将所述第一分片的ID记录到用于记录数据不一致的分片的列表中。
上述的同步方法中,遍历所述数据的所有分片的所有数据副本后,将计算后的各所述数据副本的所述数据摘要的基础信息部分持久化到本地磁盘中保存。如权利要求7所述的同步方法,其特征在于,所述基础信息包括:
分片ID,用于指示所述分片的逻辑ID;
副本Addr,用于指示所述分片的所述数据副本的物理地址信息;
关键词Keys,用于指示所述数据副本中包含的关键词的数量;
数据块Blocks,用于指示所述数据副本中包含的数据块的数量;
记录Records,用于指示所述数据副本中包含的数据的条数;
数据校验码CRC,对所有所述摘要信息进行检验计算得到所述数据校验码,用于判断多个所述数据副本是否完全一致,若所述数据校验码相同,则一致,若所述数据校验码不同,则表示所述数据副本中数据不一致。
上述的同步方法中,所述修复步骤进一步包括:
根据所述不一致分片队列的所述ID号获取相应待修复的分片的所述ID号;
获取所述待修复的分片的所有所述数据副本所在的物理位置;
比对所述数据副本的数据摘要与本地缓存中的所述数据副本的数据摘要是否出现变化,若出现变化则重新获取所述数据摘要并刷新所述本地缓存,若未出现变化,则保留所述本地缓存中的所述数据副本的所述数据摘要;
在多个所述数据副本之间进行两两比对,以确定所述待修复的数据副本的不一致的部分,并生成所述数据补丁;
获取待修复的所述数据副本所需的全部所述数据补丁,将全部所述数据补丁聚合后形成补丁包,通过数据写入接口将所述补丁包写入到所述待修复的数据副本中;
再一次执行数据副本一致性校验步骤和修复步骤。
上述的同步方法中,所述数据摘要的比对包括如下步骤:
将所述时序数据库中数据块按序列关键字的大小依次排列;
遍历每一个所述数据副本中的所有数据,以计算相应的所述数据摘要,得到包括时序数据名称、时序数据起止时间、所述数据块中的时序数据的个数以及数据块的校验值在内的数据组合;
根据所述数据组合对所述数据摘要进行两两对比,得到三个摘要对比文件:两个所述数据摘要中均包含但数据校验值不同的数据的集合,只包含在第一数据摘要中的数据的集合以及只包含在第二数据摘要中的数据的集合。
上述的同步方法中,生成所述数据补丁包括如下步骤:
根据所述数据副本的地址,选取所述摘要对比文件,其中,所述摘要对比文件中包含所述数据副本的所述地址;
循环处理每一个选取出的所述摘要对比文件,比对所述数据组合中的时间信息和值信息,以删除所述摘要对比文件中的重复的数据,得到所述数据补丁;
遍历所述数据副本的所有所述数据补丁,形成所述补丁包。
相应的,本发明还提出了一种时序数据库多数据副本的同步系统,用于实现如上述的一种时序数据库多数据副本的同步方法,包括:
数据写入单元,确定需要的数据副本的个数N,将所述数据的数据副本写入N个副本存储节点中,并且当所述数据副本写入所述副本存储节点成功时,记录所述成功信息的成功数量M递增1;
数据校验单元,将所述数据副本的数据摘要进行两两比对,所述数据摘要一致的,则认为两个所述数据副本之间的数据是一致的;
数据修复单元,确定所述数据副本两两之间的不一致的数据,生成数据补丁,并将多个所述数据补丁聚合为补丁包,并使用所述补丁包修复待修复的数据副本。
相应的,本发明还提出了一种服务器,包括:
存储器,是所述服务器的存储器之一,用于存储计算机指令;
处理器,是所述服务器的处理器之一,当所述处理器执行所述计算机指令时,实现上述的方法。
相应的,本发明还提出了一种计算机可读的存储介质,所述存储介质上存储有指令,所述指令在计算机上执行时,所述计算机执行上述的方法。
与现有技术相比,本发明具有如下优点:
1.采用数据多副本同时写,异步获取写入成功状态的方式,在实际过程中至少保证1个副本成功写入即可返回客户端成功,使用这种方式可以提供最高效的写入速率,在时序数据写入场景中可以保证最高的写入吞吐量。
2.通过对时序数据文件生成数据摘要进行比对的方式,可以有效的减少数据一致性比对的成本,减少比对耗时,提高比对效率,经过实际测试大概1分钟就可以完成近1T时序压缩数据的摘要比对。
3.通过双指针交叉比对数据摘要的方式,比对时间戳和数据变化情况的方式,可以有效的判断出数据摘要文件中的不同。第一次比对可以超出所有数据缺口以及部分数据的差值,第二次比对可以完成所有数据的差值,既最多两次比对就可以完成一个数据分片所有副本的修复工作。
4.通过将数据摘要比对文件批量处理,排序后反向查找数据,交叉比对、去重等方式,可以极大的减少数据修复放大的问题,进一步减少需要修复的数据个数,提高数据修复效率。在业务的真实测试场景中,通过该方式的平均修复速度可以提高300%以上,部分场景可以达到500%-800%。
5.通过该数据一致性修复方案,可以在两次修复过程中完成100%数据不一致修复的问题,从而使得数据分片的副本在短时间内达到最终一致性,既保证了高效的写入吞吐,又通过异步修复的方式完成了数据的最终一致性。
附图说明
图1是本发明中网络设备的一个硬件结构框图;
图2是根据本发明中一些实施例的时序数据库多数据副本的同步方法的流程图;
图3是图2中步骤S2的细化流程图;
图4是图2中步骤S3的细化流程图;
图5是根据本发明中一些实施例的时序数据库多数据副本的同步系统的框图。
具体实施方式
以下由特定的具体实施例说明本发明的实施方式,本领域技术人员可由本说明书所揭示的内容轻易地了解本发明的其他优点及功效。虽然本发明的描述将结合较佳实施例一起介绍,但这并不代表此发明的特征仅限于该实施方式。恰恰相反,结合实施方式作发明介绍的目的是为了覆盖基于本发明的权利要求而有可能延伸出的其它选择或改造。为了提供对本发明的深度了解,以下描述中将包含许多具体的细节。本发明也可以不使用这些细节实施。此外,为了避免混乱或模糊本发明的重点,有些具体细节将在描述中被省略。需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
应注意的是,在本说明书中,相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,默认为同一定义。
还需声明的是,本发明中对方法、流程进行编号是为了便于引用,而不是限定先后顺序,各步骤之间如有先后顺序,当以文字说明为准。
本发明的发明构思的重点在于,在时序数据库领域,具有大量写入少量读取的场景,在该场景下,需要保证数据库具备较高的吞吐量,而对数据的强一致性要求相对并不要求实时,因此满足高吞吐量的前提下实现最终一致性才是最好的解决方案。本发明针对时序数据库场景,提供了一个多副本数据一致性比对校验和修复的解决方案,采用数据多副本同时写入的方式,异步获取多副本写入成功状态,通过控制副本写入成功数量做到数据从弱一致性到强一致的不同维度的控制,同时后台异步进行多副本数据的校验,针对不一致的数据进行统一修复,实现数据多副本的最终一致性。
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的实施方式作进一步地详细描述。
本申请方式所提供的方法实施方式可以在服务器、交换机、路由器、计算机终端等网络设备中执行。图2是本发明所使用的网络设备的基本硬件结构框图。如图1所示,网络设备200可以包括一个或多个(图中仅示出一个)处理器210(处理器210可以包括但不限于中央处理器CPU、图像处理器GPU、数字信号处理器DSP、微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于与用户交互的输入输出接口220、用于存储数据的存储器230、用于通信功能的传输装置240以及总线250。本领域普通技术人员可以理解,图2所示的结构仅为示意,其并不对上述电子装置的结构造成限定。
存储器230可用于存储应用软件的软件程序以及模块,如本发明实施方式中的链路质量检测方法对应的程序指令/模块,处理器210通过运行存储在存储器230内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的链路质量检测方法。存储器230可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器230可进一步包括相对于处理器210远程设置的存储器,这些远程存储器可以通过网络连接至网络设备200。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置240用于经由一个网络接收或者发送数据。在本发明中,传输装置240包括可编程的监测设备241,通过该监测设备241与其他网络设备相连进行通讯。作为一个示例,传输装置240可以是交换机芯片组、网卡等负责网络通信的设备,监测设备241可以是可编程硬件,诸如可编程网络芯片,例如ASIC芯片、P4芯片、Tofino芯片等,这些可编程硬件通过替代地或附加地设置在传输装置240中,本发明对此不作限制。
本发明实施方式并不限定应用程序的种类,可以为系统类应用程序,也可以为软件类应用程序。
本发明实施方式并不限定网络设备200的对端网络设备的类型和数量,例如,对端网络设备可以是与网络设备200相同或相似的设备,例如对端网络设备的传输装置具有与监测设备241相同或相似的设备,或者,对端网络设备可以是不具有上述监测设备的常规的网络设备,例如,常规的交换机、路由器、网关、或者主机等。可以理解,网络设备200可以同时与多个对端网络设备建立链路连接,并进行链路质量检测,例如,在数据中心、集群等场景。
以下结合图2-图4来说明本发明的具体实施例。图2是根据本发明中一些实施例的时序数据库多数据副本的同步方法的流程图。图3是图2中步骤S2的细化流程图。图4是图2中步骤S3的细化流程图。
本发明提出了一种时序数据库多数据副本的同步方法,包括如下步骤:
S1、数据写入步骤。先将需保存的数据格式化,也就是对数据的格式进行处理,使其以统一的数据格式保存,同时还确定需要的数据副本个数N,然后将所述数据副本写入N个副本存储节点中。此外,还可以确定成功写入所述数据副本的最小成功数量Mmin;
S2、数据副本一致性校验步骤,将所述数据副本的数据摘要进行两两比对,所述数据摘要一致的,则认为两个所述数据副本之间的数据是一致的;
S3、修复步骤,确定所述数据副本两两之间的不一致的数据,生成数据补丁,并将多个所述数据补丁聚合为补丁包,并使用所述补丁包修复待修复的数据副本。
步骤S1可以由数据写入单元10(可参见图5)来完成,其用于确定数据副本的写入策略。本实施例中采用多个副本同时写入的方法(本实施例中设定副本的数量为N,N>=1),而每个数据副本写入是否成功的信息则可以异步获得,并不需要同时获得所有数据副本写入是否成功的信息。数据副本写入成功的数量为M,设定阈值最小成功数量Mmin,当M=Mmin时即可认为步骤S1成功,即写入数据成功。其中,数据副本个数N与最小成功数量Mmin的关系为0<=Mmin<=N,并且所述最小成功数量Mmin根据使用场景来调整。例如,在一个实施例中可以确定数据副本的数量N为3,最小成功数量Mmin为1,则,当写入成功的数量M的计数为1时,即可判定步骤S1完成。而此时,其他数据副本(例如第M+1个数据副本)可以继续再后台写入副本存储节点中,但步骤S1已不需要再关心其是否成功了。
具体的,步骤S1包括:当数据转发层接收到数据后,将数据按数据转发层的要求格式化,然后复制成N份数据副本,并将所述N份数据副本分别写入到N个所述副存储节点中,并获取所述写入是否成功的信息,若有一个数据副本写入成功,则成功数量M递增1,当M=Mmin时,停止所述数据写入步骤。在一些实施例中,有时也在M>Mmin的时候才停止执行步骤S1。
在此步骤中,若Mmin=N,则说明要求所有存储节点都必须同时写成功,该场景为强一致场景,对于某些重要数据对数据一致要求较高的情况可以采用,但一般不推荐使用。若Mmin=1,则表示只需要有一个存储节点要求写成功,该场景在时序数据场景中推荐使用,多个数据副本中只要有一个返回成功信息,则认为步骤S1执行成功,该场景可以保证数据持久化的同时具备较高性能的写入吞吐能力。若Mmin=0,则表示不需要任何存储节点写入成功,但该场景需要配合异步修复队列服务使用,在所有数据副本都未成功写入的情况下,若写入异步修复队列成功,则认为数据副本写入成功。该场景的数据一致性较弱,使用者可能在短时内无法读取到写入的数据,需要依托于异步修复队列在未来一段时间内完成数据的修复工作,但异步修复队列可能存在异常,因此该场景下数据可能存在丢失可能,一般不推荐使用。
业界比较流行的Influxdb的时序数据库方案中,基于其进行分布式改造的架构一般采用M=1,N=3的配置。在完成一致性的配置和数据写入过程后,需要进行多个数据副本之间的一致性校验。
如图3所示,步骤S2用于对多个数据副本进行数据校验,其进一步包括:
S21、获取所述数据的第一分片的多个数据副本所在的物理位置;
S22、访问所述物理位置,并请求获取相应的数据副本的数据摘要;
S23、将所述第一分片的所有所述数据摘要进行两两比对;
S24、以确定所述数据摘要是否一致;
S25、若所述数据摘要都一致,则所述第一分片的多个数据副本的数据一致;
S26、若所述数据摘要存在不一致,则所述第一分片的多个数据副本的数据不一致;
S27、将所述第一分片的ID记录到用于记录数据不一致的分片的列表中。
步骤S2可以由数据校验单元20(可参见图5)来完成,其中,需对数据的元数据部分进行补充定义,以方便后续的数据修复单元30(可参见图5)定期读取元数据,并根据元数据中的内容,进行修复任务分配和执行修复任务。具体的,元数据中新增两个元素:
A)不一致数据分片队列EntropyList,用于记录所述数据不一致的分片的ID号。在数据校验单元20依次对数据的每个分片的每个数据副本进行数据校验,在该过程中(即执行步骤S2的过程中),将发现多个数据副本间数据不一致的分片,将该分片ID号记录在不一致数据分片队列EntropyList中。
B)修复计划RepairPlan,用于保存需要修复的数据分片的元数据信息。具体的,记录如下信息:
Figure BDA0003245643990000091
任务ID,用于指示所述修复计划的ID号,该ID号在集群范围内全局自增。
Figure BDA0003245643990000092
分片ID,用于指示待修复的分片的实际逻辑ID,所述实际逻辑ID用于定位所述待修复的分片的多个数据副本的物理位置。
Figure BDA0003245643990000093
修复程序地址Addr,用于指定修复程序,由所述修复程序来执行修复任务。在分布式环境中,可能存在多个任务同时需要进行修复,因此数据修复单元30可以同时运行多个修复程序,通过分别指定第一修复程序修复第一任务,第二修复程序修复第二任务的方式,将任务进行一定程度的均匀分配。在一些实施例中,在非待修复任务物理列表中使用对分片ID进行一致性哈希(hash)的方式确定实际任务的执行物理节点。该非待修复任务物理列表可在修复步骤中的数据摘要对比过程中生成。这样可以保证相同的分片ID可以在同一个存储节点内执行,同时整个集群的任务分配相对平衡。
Figure BDA0003245643990000101
任务开始时间StartAt,用于指示执行所述修复计划的开始时间,用于统计任务的执行耗时和跟踪任务的执行情况。
Figure BDA0003245643990000102
任务结束时间EndAt,用于指示执行所述修复计划的结束时间,用于统计任务的执行耗时和跟踪任务的执行情况。
Figure BDA0003245643990000103
任务执行状态Status,用于指示本次修复任务是否成功。若任务失败,
则由修复程序在下一个周期内继续进行数据的修复工作。
具体的,步骤S21中,数据校验单元20从元数据中获取某个分片的不同数据副本所在的物理位置。
步骤S22中,数据校验单元20访问该分片的各个物理位置,以请求获取该数据副本的数据摘要。由于时序数据库一般采用LSM-Tree架构,因此在获取摘要副本时,需要保证该副本完成全量的压缩归档工作,既LSM-Tree处于同一Level,不同的文件中不包含相同的数据。
步骤S23中,将获取的全部数据摘要进行两两比对,从而是否存在数据摘要不一致的场景。其中,两两比对的方法具体包括以下步骤:
Figure BDA0003245643990000104
将所述时序数据库中数据块按序列关键字的大小依次排列。时序数据库中数据的最小存储单元一般为一个块(Block),一个Block包含最多X条有效数据,一个Block内的数据属于同一个SeriesKey,按照Timestamp顺序从小到大依次排列,当该SeriesKey的时序数据不足X条时,该Block内的数据也会小于X条。Block之间按照SeriesKey的大小从小到大排列。
Figure BDA0003245643990000105
遍历每一个所述数据副本中的所有数据,以计算相应的所述数据摘要,得到包括时序数据名称、时序数据起止时间、所述数据块中的时序数据的个数以及数据块的校验值在内的数据组合。例如,可以遍历按照SeriesKey排列的所有Block,获取其Values数据,并通过Checksum方法计算该Values部分的CRC(循环校验码)值,从而得到:SeriesKey-StartAt-EndAt-X-CRC的五元组数据,并将其序列化后写入到本地的数据摘要,命名为ShardID-Addr-digest.tsd,其中,ShardID为分片ID,Addr为该数据副本的物理位置。
具体的,该五元组数据的含义如下:
Figure BDA0003245643990000111
SeriesKey,表示具体的时序数据名称,一般由Metric+Tags序列化后组成。
Figure BDA0003245643990000112
StartAt,表示该Block中所有数据的起始时间戳,由于时间戳按照从小到大排列,因此StartAt是该Block中的最小时间戳(TimeStamp)。
Figure BDA0003245643990000113
EndAt,表示该Block中所有数据的结束时间戳,同理,EndAt是该Block中的最大时间戳。
Figure BDA0003245643990000114
X,表示该Block中的数据个数。
Figure BDA0003245643990000115
CRC,用来表示该Block的Value部分的校验值,相同数据的校验值相等。
Figure BDA0003245643990000116
对一个分片中所有数据副本都进行摘要计算偶,得到多个digest.tsd文件,该多个digest.tsd即为该分片的所有副本的数据摘要。
根据所述数据组合对所述数据摘要进行两两对比,得到三个摘要对比文件:两个所述数据摘要中均包含的数据的集合,只包含在第一数据摘要中的数据的集合以及只包含在第二数据摘要中的数据的集合。具体的比对过程如下:
1)设两个数据副本的名称分别为A和B,创建两个同名指针A和B分别指向两个数据摘要文件的起始位置。
2)生成3个diff文件,用于保存数据摘要的差值元祖,分别命名为:
2.1)A_diff_B.tsdf,用来表示在两个文件中均存在,但Value部分不同的数据元祖信息。
2.2)B_Notin_A.tsdf,用来表示存在与B中但不存在与A中的数据元祖信息。
2.3)A_Notin_B.tsdf,用来表示存在与A中但不存在与B中的数据元祖信息。
3)分别从两个文件中读取一条五元祖数据。
4)比较A/B两个指针指向的数据a,b:
4.1)若数据a/b的CRC值相同,且其SeriesKey也相同,则任务该Block数据相同。A/B指针同时移动到各个文件的下一条数据。
4.1)若数据a的SeriesKey小于数据b的SeriesKey,则表示数据a的SeriesKey的所有数据在副本B文件中均不存在,则将其加入到A_Notin_B.tsdf文件中;之后移动A指针,指向A文件下一条数据。
4.2)若数据a的SeriesKey大于数据b的SeriesKey,则表示数据b的SeriesKey的所有数据在副本A文件中均不存在,则将其加入到B_Notin_A.tsdf文件中;之后移动B指针,指向B文件下一条数据。
4.3)若数据a/b的SeriesKey相等,则开始比较其StartAt和EndAt时间戳。
4.4)若数据a的EndAt小于数据b的StartAt,则表示数据a的该block数据在副本B文件中均不存在,则将其加入到A_Notin_B.tsdf文件中;之后移动A指针,指向A文件的下一条数据。
4.5)若数据a的StartAt大于数据b的EndAt,则表示数据b的该block数据在副本A文件中均不存在,则将其加入到B_Notin_A.tsdf文件中;之后移动B指针,指向B文件的下一条数据。
4.6)若数据a的StartAt等于数据b的StartAt,但两者的EndAt不同,则认为EndAt较小的副本存在丢点问题,因此将其加入到对应X_Notin_Y.tsdf文件中;之后A/B指针同时移动到各个文件的下一条数据。
4.7)若数据a/b的StartAt和EndAt均不相同,CRC值不同,则需要进行多个Block的复合统计,每次开始时多个Block的EndAt的差值,比较A/B两个指针的EndAt的差值大小,若某个指针的EndAt差值变大,则表示该指针所在的文件中存在丢点数据,则将其加入到对应的X_Notin_Y.tsdf文件中;之后A/B指针同时移动到各个文件的下一条数据。
4.8)若数据a/b的StartAt和EndAt均相同,但CRC值不同,则表示两个block的数据不存在丢失,但存在不同值的场景,因此将该五元组加入到A_diff_B.tsdf文件中;之后A/B指针同时移动到各个文件的下一条数据。
5)至此,就完成了A/B两个数据副本的数据比对过程,生成了3个摘要对比文件。
步骤S24中,根据上述生成的3个摘要对比文件(B_Notin_A.tsdf,X_Notin_Y.tsdf和A_diff_B.tsdf)来确定数据摘要是否一致。
步骤S25中,若所有数据副本的数据摘要都相同,则相应分片的不同副本之间数据一致,不需要进行后续的修复步骤。
步骤S26中,若出现任何两个数据副本之间的数据摘要不同,则认为该分片的数据存在不一致的情况,后续需要进行修复步骤。
步骤S27中,将该分片的ID号加入到元数据部分的数据不一致分片队列EntropyList中。
在上述的步骤S21~S27中,在计算出各个数据副本的数据摘要后,还需将其中的基础信息部分持久化到本地磁盘中保存,保存该信息的主要目的是在下一次摘要的校验过程中,若发现摘要信息未发生变化,则不需要进行再次校验,从而减少无效的校验成本。该信息保存在校验程序本地即可,无需存储到元数据中,否则可能造成元数据部分内容过大。其中,基础信息是指将各个副本的数据摘要文件进行相关逻辑计算处理后,得到的基础信息数据,具体的,该基础信息包括:
分片ID,用于指示所述分片的逻辑ID;
副本Addr,用于指示所述分片的所述数据副本的物理地址信息;
关键词Keys,用于指示所述数据副本中包含的关键词的数量;
数据块Blocks,用于指示所述数据副本中包含的数据块的数量;
记录Records,用于指示所述数据副本中包含的数据的条数;
数据校验码CRC,对所有所述摘要信息进行检验计算得到所述数据校验码,用于判断多个所述数据副本是否完全一致,若所述数据校验码相同,则一致,若所述数据校验码不同,则表示所述数据副本中数据不一致。
如图4所示,步骤S3用于对校验出的不一致的数据副本进行一致性的修复,主要由数据修复单元40(参考图5)执行,进一步包括:
S31、根据所述不一致分片队列的所述ID号获取相应待修复的分片的ID号;
S32、获取所述待修复的分片的所有所述数据副本所在的物理位置。该物理位置是指各个数据副本的Ip/Port列表。在完成数据副本的对比后知道哪些数据不一致,但在数据摘要里面并不包含实际数值,而是只包含了Key,校验值和时间戳。后续步骤根据key和时间戳连接到各个物理位置后读取实际数据再聚合对比。
S33、比对所述数据副本与地缓存的所述数据摘要。也就是比对所述数据副本的数据摘要与本地缓存中的所述数据副本的数据摘要是否出现变化,若出现变化则重新获取所述数据摘要并刷新所述本地缓存,若未出现变化,则保留所述本地缓存中的所述数据副本的所述数据摘要。为了节省资源,此处比对的是摘要文件,数据修复单元40访问各个存储节点获取副本的数据摘要,但会携带该摘要上一次缓存在本地的时间戳。如果该时间戳与存储节点上的副本摘要时间戳相比发生了变化,则认为该数据副本可能出现了数据更新,需要重新获取摘要。如果该时间戳与存储节点上的副本摘要时间戳一致,则认为该副本未发生新的数据变化情况,不需要浪费网络和计算资源重新读取远程的数据副本摘要。
S34、判断是否出现变化(是否一致)。
S35、若未出现变化,则保留原有的所述数据摘要。
S36、若出现变化则重新获取所述数据摘要。
S37、在多个所述数据副本之间进行两两比对,以确定所述待修复的数据副本的不一致的部分,并生成所述数据补丁。其中,两两比对的方法可参见步骤S23中的有关说明,此处不赘述。其中,生成所述数据补丁包括如下步骤:
Figure BDA0003245643990000141
根据所述数据副本的地址,选取所述摘要对比文件,其中,所述摘要对
比文件中包含所述数据副本的所述地址;
Figure BDA0003245643990000142
循环处理每一个选取出的所述摘要对比文件,比对所述数据组合中的时间信息和值信息,以删除所述摘要对比文件中的重复的数据,得到所述数据补丁;
Figure BDA0003245643990000143
遍历所述数据副本的所有所述数据补丁,形成所述补丁包。遍历数据补丁的目的是为了聚合某个副本的多个数据补丁,形成最终需要修复的数据。
在生成数据补丁的时候,需要按照数据副本的地址的顺序,为每一个数据副本生成其所需的真实补丁数据。由于时序数据通常是以块为单位来压缩的,但一个块中保存的多个(可能是上万个)数据中可能只有若干个(例如,5个)数据是不一致的。在这种情况下,如果不找到具体不一致的数据,而直接以块(Block)为单位进行修复将出现不必要的数据量放大的问题。因此,修复过程为了保证速度和稳定性,需尽可能的减少重复多余数据的生成,可以按照上述的步骤执行。
在一些实施例中,可按照如下顺序具体进行:
1)根据待修复数据的副本名称,获取其需要读取的摘要对比文件列表,若某副本地址为D,则在所有摘要文件中包含地址D的文件都属于本次需要读取的摘要对比文件。
2)循环处理上述的摘要对比文件:
2.1)根据摘要对比文件的名称获取该摘要对比文件的来源数据副本(即生成该摘要对比文件时所比对的两个数据副本)的地址A/B。
2.2)通过读取数据接口,访问数据副本地址A/B,根据五元组的SeriesKey-Timestamp读取相应的Block的完整数据。
2.3)根据获取到该SeriesKey的Timestamp-Value数据列表进行以下处理工作:
2.3.1)对Timestamp-Value数组以Timstamp从小到大的顺序排序。
2.3.2)判断相邻Timestamp的情况,若相邻Timstamp相同的情况,继续对比Value大小。若Value相同,则将该Timestamp-Value数据从对比列表中剔除,表示该数据在副本A/B中均存在且值相同。若Value不同,则保留Value较大的Timestamp-Value在对比列表中,将Value较小的Timestamp-Value对从列表中删除,从而达到去重复数据的场景。
2.3.5)若相邻TimeStamp不同,则认为该Timestamp-Value对在A/B量副本中唯一存在,将其保留在数据列表中。
2.4)返回处理后的Timstamp-Value列表,即为该SeriesKey的数据在副本A/B的修复去重结果。
2.5)循环处理完所有的摘要对比文件中的五元组数据,将每次处理后的有效SeriesKey-Timestamp-Value结果序列化后持久化到磁盘文件中,形成数据补丁,以该摘要对比文件的名称前缀命名,后缀为.patch。
3)获取数据副本地址A的所有生成的数据补丁patch文件列表。
4)按照SeriesKey从小到大的顺序遍历数据副本地址A的所有patch文件。
5)按照上述的2)-3)的过程处理再次处理遍历到的SerieKey文件,最终形成最终的A.patch文件。
6)按照同样的逻辑为该分片的其他数据副本(例如地址为B的数据副本)生成其patch补丁文件。
S38、获取待修复的数据副本所需的全部所述数据补丁,将全部所述数据补丁聚合后形成补丁包,通过数据写入接口将所述补丁包写入到所述待修复的数据副本中。
经过上述步骤得到修复的数据副本将触发数据校验单元20,从而可以重复步骤S2和S3,重新计算其数据摘要信息,并进行下一次数据的对比和修复。经过如此反复,来保证多个数据副本之间的数据的一致性。可以是定时地反复执行数据副本一致性校验步骤和修复步骤。将数据摘要计算和数据修复两个步骤都设定为定时任务。数据摘要计算定时读取副本的摘要文件,通过逻辑计算(例如通过相关对比逻辑来计算)得出摘要基础数据,对比上述的摘要基础数据,不等的加入到元数据信息中的修复计划中。修复步骤根据修复计划中的分片ID逐一对数据分片进行修复。具体的,可以再次通过逻辑计算(可以是相关对比逻辑,也可以是其他的运算逻辑)处理该数据分片的多个副本的摘要文件,通过两两对比的方式,得到具体的不一致的key,然后读取存储节点,得到具体不一致的数据,根据这些不一致的数据,生成用于修复数据的补丁包。
图5是根据本发明中一些实施例的时序数据库多数据副本的同步系统的框图。所述同步系统用于实现上述述的一种时序数据库多数据副本的同步方法,包括:
数据写入单元,将需保存的所述数据写入主存储节点,以及确定需要的数据副本个数N,从而将所述数据的数据副本写入N个副存储节点中,此外,还确定成功写入所述数据副本的最小成功数量Mmin;
数据校验单元,将所述数据副本的数据摘要进行两两比对,所述数据摘要一致的,则认为两个所述数据副本之间的数据是一致的;
数据修复单元,确定所述数据副本两两之间的不一致的数据,生成数据补丁,并将多个所述数据补丁聚合为补丁包,并使用所述补丁包修复待修复的数据副本。
本发明还提供了一种服务器,其包括存储器和处理器。其中,存储器是所述服务器的存储器之一,用于存储计算机指令。处理器是所述服务器的处理器之一,当所述处理器执行所述计算机指令时,实现如上述的方法。
本发明还提供了一种计算机可读的存储介质,该存储介质具有存储在其中的指令,当指令被执行时,使得计算机执行如上所述的方法。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

Claims (13)

1.一种时序数据库多数据副本的同步方法,其特征在于,包括如下步骤:
数据写入步骤,确定需要的数据副本的个数N,将所述数据的数据副本分别写入N个副本存储节点中,并且当所述数据副本写入所述副本存储节点成功时,记录所述成功信息的成功数量M递增1;
数据副本一致性校验步骤,将所述数据副本的数据摘要进行两两比对,所述数据摘要一致的,则认为两个所述数据副本之间的数据是一致的;
修复步骤,确定所述数据副本两两之间的不一致的数据,生成数据补丁,并将多个所述数据补丁聚合为补丁包,并使用所述补丁包修复待修复的数据副本。
2.如权利要求1所述的同步方法,其特征在于,所述数据写入步骤进一步包括:
确定成功写入所述数据副本的最小成功数量Mmin,当成功数量M等于最小成功数量Mmin时,返回写入成功提示信息。
3.如权利要求2所述的同步方法,其特征在于,所述数据写入步骤中,数据副本个数N与最小成功数量Mmin的关系为0<=Mmin<=N,并且所述最小成功数量Mmin根据使用场景来调整。
4.如权利要求1-3任一项所述的同步方法,其特征在于,所述数据的元数据部分包括:
不一致数据分片队列,用于记录所述数据不一致的分片的ID号;
修复计划,用于保存需要修复的数据分片的元数据信息。
5.如权利要求4所述的同步方法,其特征在于,所述修复计划进一步包括:
任务ID,用于指示所述修复计划的ID;
分片ID,用于指示待修复的分片的实际逻辑ID,所述实际逻辑ID用于定位所述待修复的分片的多个数据副本的位置;
修复程序地址Addr,用于指定修复程序,由所述修复程序来执行修复任务;
任务开始时间StartAt,用于指示执行所述修复计划的开始时间;
任务结束时间EndAt,用于指示执行所述修复计划的结束时间;
任务执行状态Status,用于指示本次修复任务是否成功。
6.如权利要求1~3、5中任一项所述的同步方法,其特征在于,所述数据副本一致性校验步骤进一步包括:
获取所述数据的第一分片的多个所述数据副本所在的物理位置;
访问所述物理位置,并请求获取相应的数据副本的数据摘要;
将所述第一分片的所有所述数据摘要进行两两比对,以确定所述数据摘要是否一致;
若所述数据摘要一致,则所述第一分片的多个数据副本的数据一致;若所述数据摘要存在不一致,则所述第一分片的多个所述数据副本的数据不一致;
将所述第一分片的ID记录到用于记录数据不一致的分片的列表中。
7.如权利要求6所述的同步方法,其特征在于,遍历所述数据的所有分片的所有数据副本后,将计算后的各所述数据副本的所述数据摘要的基础信息部分持久化到本地磁盘中保存。如权利要求7所述的同步方法,其特征在于,所述基础信息包括:
分片ID,用于指示所述分片的逻辑ID;
副本Addr,用于指示所述分片的所述数据副本的物理地址信息;
关键词Keys,用于指示所述数据副本中包含的关键词的数量;
数据块Blocks,用于指示所述数据副本中包含的数据块的数量;
记录Records,用于指示所述数据副本中包含的数据的条数;
数据校验码CRC,对所有所述摘要信息进行检验计算得到所述数据校验码,用于判断多个所述数据副本是否完全一致,若所述数据校验码相同,则一致,若所述数据校验码不同,则表示所述数据副本中数据不一致。
8.如权利要求6所述的同步方法,其特征在于,所述修复步骤进一步包括:
根据所述不一致分片队列的所述ID号获取相应待修复的分片的所述ID号;
获取所述待修复的分片的所有所述数据副本所在的物理位置;
比对所述数据副本的数据摘要与本地缓存中的所述数据副本的数据摘要是否出现变化,若出现变化则重新获取所述数据摘要并刷新所述本地缓存,若未出现变化,则保留所述本地缓存中的所述数据副本的所述数据摘要;
在多个所述数据副本之间进行两两比对,以确定所述待修复的数据副本的不一致的部分,并生成所述数据补丁;
获取待修复的所述数据副本所需的全部所述数据补丁,将全部所述数据补丁聚合后形成补丁包,通过数据写入接口将所述补丁包写入到所述待修复的数据副本中;
再一次执行数据副本一致性校验步骤和修复步骤。
9.如权利要求1或9所述的同步方法,其特征在于,所述数据摘要的比对包括如下步骤:
将所述时序数据库中数据块按序列关键字的大小依次排列;
遍历每一个所述数据副本中的所有数据,以计算相应的所述数据摘要,得到包括时序数据名称、时序数据起止时间、所述数据块中的时序数据的个数以及数据块的校验值在内的数据组合;
根据所述数据组合对所述数据摘要进行两两对比,得到三个摘要对比文件:两个所述数据摘要中均包含但数据校验值不同的数据的集合,只包含在第一数据摘要中的数据的集合以及只包含在第二数据摘要中的数据的集合。
10.如权利要求10所述的同步方法,其特征在于,生成所述数据补丁包括如下步骤:
根据所述数据副本的地址,选取所述摘要对比文件,其中,所述摘要对比文件中包含所述数据副本的所述地址;
循环处理每一个选取出的所述摘要对比文件,比对所述数据组合中的时间信息和值信息,以删除所述摘要对比文件中的重复的数据,得到所述数据补丁;
遍历所述数据副本的所有所述数据补丁,形成所述补丁包。
11.一种时序数据库多数据副本的同步系统,其特征在于,用于实现如权利要求1-11中任一项所述的一种时序数据库多数据副本的同步方法,包括:
数据写入单元,确定需要的数据副本的个数N,将所述数据的数据副本写入N个副本存储节点中,并且当所述数据副本写入所述副本存储节点成功时,记录所述成功信息的成功数量M递增1;
数据校验单元,将所述数据副本的数据摘要进行两两比对,所述数据摘要一致的,则认为两个所述数据副本之间的数据是一致的;
数据修复单元,确定所述数据副本两两之间的不一致的数据,生成数据补丁,并将多个所述数据补丁聚合为补丁包,并使用所述补丁包修复待修复的数据副本。
12.一种服务器,其特征在于,包括:
存储器,是所述服务器的存储器之一,用于存储计算机指令;
处理器,是所述服务器的处理器之一,当所述处理器执行所述计算机指令时,实现如权利要求1-11中任一项所述的方法。
13.一种计算机可读的存储介质,其特征在于,所述存储介质上存储有指令,所述指令在计算机上执行时,所述计算机执行如权利要求1-11中任一项所述的方法。
CN202111032190.1A 2021-09-03 2021-09-03 一种时序数据库多数据副本的同步方法、系统以及服务器 Active CN113704359B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111032190.1A CN113704359B (zh) 2021-09-03 2021-09-03 一种时序数据库多数据副本的同步方法、系统以及服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111032190.1A CN113704359B (zh) 2021-09-03 2021-09-03 一种时序数据库多数据副本的同步方法、系统以及服务器

Publications (2)

Publication Number Publication Date
CN113704359A true CN113704359A (zh) 2021-11-26
CN113704359B CN113704359B (zh) 2024-04-26

Family

ID=78659302

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111032190.1A Active CN113704359B (zh) 2021-09-03 2021-09-03 一种时序数据库多数据副本的同步方法、系统以及服务器

Country Status (1)

Country Link
CN (1) CN113704359B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113641763A (zh) * 2021-08-31 2021-11-12 优刻得科技股份有限公司 一种分布式时序数据库系统以及电子设备和存储介质
CN115373950A (zh) * 2022-10-26 2022-11-22 北京芯可鉴科技有限公司 工控机与数据监测系统

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130332770A1 (en) * 2012-06-08 2013-12-12 Microsoft Corporation Active/passive database management across clusters
CN103729436A (zh) * 2013-12-27 2014-04-16 中国科学院信息工程研究所 一种分布式元数据管理方法及系统
CN104252481A (zh) * 2013-06-27 2014-12-31 阿里巴巴集团控股有限公司 主从数据库一致性的动态校验方法和装置
CN106919843A (zh) * 2017-01-24 2017-07-04 北京奇虎科技有限公司 漏洞修复系统、方法及设备
CN106921731A (zh) * 2017-01-24 2017-07-04 北京奇虎科技有限公司 漏洞修复方法及装置
CN110209521A (zh) * 2019-02-22 2019-09-06 腾讯科技(深圳)有限公司 数据校验方法、装置、计算机可读存储介质和计算机设备
CN110807039A (zh) * 2019-10-29 2020-02-18 深圳供电局有限公司 一种云计算环境下数据一致性维护系统及方法
CN112306753A (zh) * 2020-10-30 2021-02-02 联想(北京)有限公司 一种数据修复方法、装置及系统
CN112612851A (zh) * 2020-12-24 2021-04-06 南京三眼精灵信息技术有限公司 多中心数据同步方法及装置
CN113220236A (zh) * 2021-05-17 2021-08-06 北京青云科技股份有限公司 一种数据管理方法、系统及设备

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130332770A1 (en) * 2012-06-08 2013-12-12 Microsoft Corporation Active/passive database management across clusters
CN104252481A (zh) * 2013-06-27 2014-12-31 阿里巴巴集团控股有限公司 主从数据库一致性的动态校验方法和装置
CN103729436A (zh) * 2013-12-27 2014-04-16 中国科学院信息工程研究所 一种分布式元数据管理方法及系统
CN106919843A (zh) * 2017-01-24 2017-07-04 北京奇虎科技有限公司 漏洞修复系统、方法及设备
CN106921731A (zh) * 2017-01-24 2017-07-04 北京奇虎科技有限公司 漏洞修复方法及装置
CN110209521A (zh) * 2019-02-22 2019-09-06 腾讯科技(深圳)有限公司 数据校验方法、装置、计算机可读存储介质和计算机设备
CN110807039A (zh) * 2019-10-29 2020-02-18 深圳供电局有限公司 一种云计算环境下数据一致性维护系统及方法
CN112306753A (zh) * 2020-10-30 2021-02-02 联想(北京)有限公司 一种数据修复方法、装置及系统
CN112612851A (zh) * 2020-12-24 2021-04-06 南京三眼精灵信息技术有限公司 多中心数据同步方法及装置
CN113220236A (zh) * 2021-05-17 2021-08-06 北京青云科技股份有限公司 一种数据管理方法、系统及设备

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
ERIC CRONIN ET AL.: "An efficient synchronization mechanism for mirrored game architectures", 《PROCEEDINGS OF THE 1ST WORKSHOP ON NETWORK AND SYSTEM SUPPORT FOR GAMES》, 30 April 2002 (2002-04-30), pages 67 - 73, XP058217850, DOI: 10.1145/566500.566510 *
刘桂华;: "分布式系统中数据冗余的研究", 《电脑知识与技术》, no. 18, 9 August 2016 (2016-08-09), pages 11 - 12 *
赵春扬 等: "一致性协议在分布式数据库系统中的应用", 《华东师范大学学报(自然科学版)》, no. 05, 25 September 2018 (2018-09-25), pages 99 - 114 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113641763A (zh) * 2021-08-31 2021-11-12 优刻得科技股份有限公司 一种分布式时序数据库系统以及电子设备和存储介质
CN113641763B (zh) * 2021-08-31 2023-11-10 优刻得科技股份有限公司 一种分布式时序数据库系统以及电子设备和存储介质
CN115373950A (zh) * 2022-10-26 2022-11-22 北京芯可鉴科技有限公司 工控机与数据监测系统
CN115373950B (zh) * 2022-10-26 2023-01-24 北京芯可鉴科技有限公司 工控机与数据监测系统

Also Published As

Publication number Publication date
CN113704359B (zh) 2024-04-26

Similar Documents

Publication Publication Date Title
JP6404907B2 (ja) 効率的な読み取り用レプリカ
US9213719B2 (en) Peer-to-peer redundant file server system and methods
US9715507B2 (en) Techniques for reconciling metadata and data in a cloud storage system without service interruption
US7653668B1 (en) Fault tolerant multi-stage data replication with relaxed coherency guarantees
CN107644030B (zh) 分布式数据库数据同步方法、相关装置及系统
CN108255647B (zh) 一种samba服务器集群下的高速数据备份方法
CN113704359B (zh) 一种时序数据库多数据副本的同步方法、系统以及服务器
CN114201421B (zh) 一种数据流处理方法、存储控制节点及可读存储介质
CN109298978B (zh) 一种指定位置的数据库集群的恢复方法及系统
CN113377868A (zh) 一种基于分布式kv数据库的离线存储系统
WO2023077971A1 (zh) 事务处理方法、装置、计算设备及存储介质
CN110851474A (zh) 数据查询方法、数据库中间件、数据查询设备及存储介质
Song et al. The freeze-frame file system
CN112732756A (zh) 数据查询方法、装置、设备及存储介质
Charapko et al. Retrospective lightweight distributed snapshots using loosely synchronized clocks
Xia et al. NetSync: A network adaptive and deduplication-inspired delta synchronization approach for cloud storage services
CN115510161A (zh) 数据同步方法、装置、设备及存储介质
CN116662603B (zh) 基于kafka的时间轴管控方法、系统、电子设备及存储介质
Xu et al. F-write: Fast rdma-supported writes in erasure-coded in-memory clusters
Ren et al. {ELECT}: Enabling Erasure Coding Tiering for {LSM-tree-based} Storage
Beunder et al. Cost effective rapid VLSI prototyping: semi-custom arrays and E-beam direct-write
Beineke et al. DXRAM's Fault-Tolerance Mechanisms Meet High Speed I/O Devices
WO2023110117A1 (en) Multi-writer centralized logging storage array
CN118193464A (zh) 多端文件更新方法、装置、计算机设备和存储介质
CN116431583A (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