CN115563221A - 数据同步方法、存储系统、设备及存储介质 - Google Patents

数据同步方法、存储系统、设备及存储介质 Download PDF

Info

Publication number
CN115563221A
CN115563221A CN202211327150.4A CN202211327150A CN115563221A CN 115563221 A CN115563221 A CN 115563221A CN 202211327150 A CN202211327150 A CN 202211327150A CN 115563221 A CN115563221 A CN 115563221A
Authority
CN
China
Prior art keywords
data
computing node
data segment
shared
copy
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.)
Pending
Application number
CN202211327150.4A
Other languages
English (en)
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.)
Alibaba China Co Ltd
Original Assignee
Alibaba China 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 Alibaba China Co Ltd filed Critical Alibaba China Co Ltd
Priority to CN202211327150.4A priority Critical patent/CN115563221A/zh
Publication of CN115563221A publication Critical patent/CN115563221A/zh
Pending legal-status Critical Current

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/275Synchronous replication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes

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)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提供一种数据同步方法、存储系统、设备及存储介质,涉及存储领域。该存储系统包括第一计算节点、第二计算节点和共享存储设备,其中,第一计算节点将获取到的主副本刷新成内存中的数据段时,通过网络传输将数据段的第一部分数据复制到第二计算节点,以及在满足预置的存储条件时,将数据段存储到共享存储设备,第二计算节点对接收到的第一部分数据进行处理和存储,并在确定未存储数据段的第二部分数据时,从共享存储设备读取并加载第二部分数据,第一部分数据和第二部分数据是主副本的从副本。该技术方案中,在计算和存储分离的存储系统架构下,使用共享存储设备和网络传输两条同步链路实现的主从副本同步,提高了数据同步效率。

Description

数据同步方法、存储系统、设备及存储介质
技术领域
本申请涉及存储领域,尤其涉及一种数据同步方法、存储系统、设备及存储介质。
背景技术
在数据的储存过程中,为了保证数据安全,分布式存储系统一般采用多副本来存储数据。多副本中的一份数据副本作为主副本,其它数据副本作为从副本。由于多副本分别位于不同位置,这样即使出现某个副本出现故障,数据也不会丢失。因而,如何实现多副本的数据同步是亟需解决的问题。
现阶段,基于网络传输可以实现主从副本的数据同步。即,某个计算节点将接收到用户写入的数据刷新成主副本后,一方面将该主副本写到本地盘,另一方面,通过网络传输将主副本同步到其他的计算节点,得到从副本,其他的计算节点再将从副本存储至本地盘,从而实现主从副本的数据同步。但在该方法中,数据的计算和存储是一体的,存在数据同步效率低、副本扩缩容困难、灵活性差的问题。
发明内容
本申请提供一种数据同步方法、存储系统、设备及存储介质,以实现数据的计算和存储分离,解决副本扩缩容困难、数据同步效率低、灵活性差的问题。
第一方面,本申请提供一种数据同步方法,应用于存储系统中,所述存储系统包括第一计算节点、第二计算节点和共享存储设备,所述方法包括:
所述第一计算节点在将获取到的主副本刷新成内存中的数据段时,通过网络传输将所述数据段中的第一部分数据复制到所述第二计算节点;
所述第二计算节点对接收到的所述第一部分数据进行处理和存储;
在满足预置的存储条件时,所述第一计算节点将所述内存中的数据段存储到所述共享存储设备,所述存储条件包括所述内存中的数据段总大小大于容量阈值,和/或,距离前一次存储的时间间隔大于间隔阈值;
所述第二计算节点在确定未存储所述数据段的第二部分数据时,从所述共享存储设备读取并加载所述第二部分数据,所述第一部分数据和所述第二部分数据是所述主副本的从副本。
第二方面,本申请提供一种数据同步方法,应用于第一计算节点,该方法包括:
在将获取到的主副本刷新成内存中的数据段时,通过网络传输将所述数据段中的第一部分数据复制到第二计算节点;
在满足预置的存储条件时,将所述内存中的数据段持久化存储到共享存储设备,所述共享存储设备用于供所述第二计算节点读取并加载未存储的所述数据段中的第二部分数据,所述存储条件包括所述内存中的数据段总大小大于容量阈值,和/或,距离前一次存储的时间间隔大于间隔阈值。
第三方面,本申请提供了一种数据同步方法,应用于第二计算节点,所述方法包括:
从第一计算节点接收同步的第一部分数据;
对所述第一部分数据进行校验和合并,得到目标数据段;
在确定未存储第二部分数据时,从共享存储设备读取并加载所述第二部分数据,所述共享存储设备用于存储所述第一计算节点获取到的主副本,所述第一部分数据和所述第二部分数据是所述主副本的从副本。
第四方面,本申请提供了一种数据同步方法,应用于共享存储设备,所述方法包括:
从第一计算节点接收待存储的数据段,该数据段是第一计算节点在满足预置的存储条件时发送的,所述存储条件包括所述内存中的数据段总大小大于容量阈值,和/或,距离前一次存储的时间间隔大于间隔阈值;
基于所述第一计算节点的标识,将所述数据段存储至目标位置;
接收第二计算节点的数据读取请求,所述数据读取请求是所述第二计算节点在确定未存储第二部分数据时发出的;
基于所述数据读取请求确定所述第二部分数据,并传输至所述第二计算节点。
第五方面,本申请提供了一种存储系统,所述存储系统包括第一计算节点、第二计算节点和共享存储设备,其中:
所述第一计算节点在将获取到的主副本刷新成内存中的数据段时,通过网络传输将所述数据段中的第一部分数据复制到所述第二计算节点;
所述第二计算节点对接收到的所述第一部分数据进行处理和存储;
在满足预置的存储条件时,所述第一计算节点将所述内存中的数据段存储到所述共享存储设备,所述存储条件包括所述内存中的数据段总大小大于容量阈值,和/或,距离前一次存储的时间间隔大于间隔阈值;
所述第二计算节点在确定未存储所述数据段的第二部分数据时,从所述共享存储设备读取并加载所述第二部分数据,所述第一部分数据和所述第二部分数据是所述主副本的从副本。
第六方面,本申请提供了一种电子设备,包括处理器,该处理器用于调用计算机程序(也可以称为代码,或指令),以使得该电子设备实现如第一方面至所述第四方面中所述第一计算节点的技术方案或者所述第二计算节点的技术方案或者实现所述共享存储设备的技术方案。
第七方面,本申请提供了一种计算机可读存储介质,包括计算机程序,当该计算机程序在计算机上运行时,使得计算机执行第一方面至所述第四方面中所述第一计算节点的技术方案或者所述第二计算节点的技术方案或者实现所述共享存储设备的技术方案。
第八方面,本申请提供了一种计算机程序产品,所述计算机程序产品包括:计算机程序(也可以称为代码,或指令),当所述计算机程序被运行时,使得计算机执行第一方面至所述第四方面中所述第一计算节点的技术方案或者所述第二计算节点的技术方案或者实现所述共享存储设备的技术方案。
在本申请实施例中,存储系统包括第一计算节点、第二计算节点和共享存储设备,其中,第一计算节点在将获取到的主副本刷新成内存中的数据段时,通过网络传输将所述数据段中的第一部分数据复制到所述第二计算节点,此外,在确定内存中的数据段总大小大于容量阈值和/或距离前一次存储的时间间隔大于间隔阈值时,第一计算节点还可以将内存中的数据段持久化存储到共享存储设备,相应的,第二计算节点可以对接收到的第一部分数据进行处理和存储,并在确定未存储数据段的第二部分数据时,从共享存储设备读取并加载第二部分数据,第一部分数据和第二部分数据是主副本的从副本。该技术方案中,在计算和存储分离的存储系统架构下,使用共享存储设备和/或网络传输两条同步链路实现了主从副本的数据同步,提高了主从副本之间的数据同步效率。
附图说明
图1是一种基于共享存储设备的数据同步架构示意图;
图2是一种基于网络传输的数据同步架构示意图;
图3是本申请实施例提供的存储系统的示意性框图;
图4是本申请第一实施例提供的数据同步方法的交互示意图;
图5是本申请第二实施例提供的数据同步方法的交互示意图;
图6为本申请实施例提供的计算节点的示意性框图;
图7是本申请实施例提供的电子设备的示意性框图。
具体实施方式
使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请实施例中,术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。此外,术语“包括”以及任何变形,意图在于覆盖不排他的包含。
下面先对本申请实施例涉及到的相关术语进行简单解释。
1、主副本(读写副本):分布式存储系统中,数据会被冗余存储多个副本进行备份,其中一个副本作为主副本,或读写副本,提供写入和读取的能力。承载主副本的计算节点可以通过物理复制或逻辑复制的方式,将主副本同步到其他计算节点生成从副本。
2、从副本(只读副本):分布式存储系统中,数据会被冗余存储多个副本进行备份,其中只提供读取能力的副本称为从副本,或只读副本。
3、共享存储设备:不同于本地盘存储,共享存储设备是允许网络中多台机器读写同一份数据的分布式文件系统。而且,共享存储设备可以理解为可永久保存数据的存储设备,例如,磁盘等。
4、物理复制:主从复制模型中,将主副本写入第一计算节点后,在第一计算节点上构建索引,然后将构建好的索引文件整个同步到第二计算节点生成从副本,避免第二计算节点上的重复构建。
可选的,在本申请的实施例中,在第一计算节点上构建索引可以理解为将用户新写入的主副本刷新成数据段。
5、逻辑复制:主从复制模型中,将数据写入第一计算节点的同时,也写入第二计算节点,第一计算节点和第二计算节点独立执行各自的索引构建过程,从而实现主从副本的数据同步。
图1是一种基于共享存储设备的数据同步架构示意图。如图1所示,该架构示意图中可以包括:至少两个计算节点、至少两个本地盘和共享存储设备10。其中,计算节点与本地盘之间相互对应。
可选的,参照图1所示,该架构示意图以包括n个计算节点(分别为计算节点1至计算节点n)、n个本地盘(分别为本地盘1至本地盘n)进行解释说明。可理解,在实际应用中,并不限定架构示意图中计算节点和本地盘的具体数量,其可以根据实际需求确定,此处不作赘述。
可理解,在图1所示的架构示意图中,具有对应关系的计算节点和本地盘在同一个设备中。例如,计算节点1和本地盘1在同一个设备中,计算节点2和本地盘2在同一个设备中,计算节点n和本地盘n在同一个设备中。
在实际应用中,用户可以向上述至少两个计算节点中的任意一个计算节点写入数据,被写入数据的计算节点成为承载主副本的计算节点,也即读写节点,从而可提供写入和读取的能力,相应的,其他计算节点中的一个或多个则成为承载从副本的计算节点。
在主从副本的数据同步过程中,计算节点1获取到用户写入的数据后,首先为该数据生成索引文件,然后将索引文件写到本地盘1,随后定期将本地盘1中的数据写入共享存储设备10,相应的,计算节点2至计算节点n可以从共享存储设备10中读取并加载计算节点1存储至共享存储设备10中的数据,从而实现数据同步。
可理解,图1所示的架构示意图是基于共享存储设备的数据同步方式,在实际应用中,为了加速数据写入的速率,缓冲数据写入对共享存储设备的压力,计算节点1获取到用户写入的数据后,首先要将数据写入到本地盘,然后再定期写入到共享存储设备,这样计算节点1中数据被存储至共享存储设备后,其他计算节点才能共享到计算节点1中的数据,导致计算节点件的数据同步链路较长,使得主从副本的同步延迟时间长,主从副本的数据同步效率低,数据的写入性能差。此外,由于主从副本的数据均需要经过共享存储设备进行读写,导致读写放大的问题。
可选的,图2是一种基于网络传输的数据同步架构示意图。如图2所示,该架构示意图中可以包括:至少两个计算节点和至少两个本地盘。其中,计算节点与本地盘之间相互对应。
同理,在图2所示的架构示意图中,以包括n个计算节点(分别为计算节点1至计算节点n)、n个本地盘(分别为本地盘1至本地盘n)进行解释说明。可理解,在实际应用中并不限定架构示意图中计算节点和本地盘的具体数量,其可以根据实际需求确定,此处不作赘述。
在实际应用中,用户可以向上述至少两个计算节点中的任意一个计算节点写入数据,成为承载主副本的计算节点,也即读写节点,从而可提供写入和读取的能力,相应的,其他计算节点中的一个或多个可以成为承载从副本的计算节点。
可理解,在图2所示的架构示意图中,具有对应关系的计算节点和本地盘在同一个设备中。例如,计算节点1和本地盘1在同一个设备中,计算节点2和本地盘2在同一个设备中,计算节点n和本地盘n在同一个设备中。
在主从副本的数据同步过程中,计算节点1获取到用户写入的数据后,首先为该数据生成索引文件,然后将索引文件写到本地盘1,同时,将索引文件同步到其他计算节点,相应的,其他计算节点再将索引文件存储至对应的本地盘,以实现主从副本的数据同步。这样,各计算节点均可以从对应的本地盘读数据,以提供查询服务。
由图2所示的架构示意图可知,基于网络传输的数据同步方案中,计算节点1的索引文件全部通过网络发送到从其他的计算节点,在故障转移(Fail-over)、扩容等过程中会产生大量的网络数据拷贝,恢复时间长。也即,基于网络传输的数据同步是存储计算一体的,无法享受到存储计算分离的优势,存在计算节点扩缩容困难、灵活性差的问题。
鉴于此,本申请提供了一种数据同步方法,应用于用于存储系统,该存储系统包括第一计算节点、第二计算节点和共享存储设备,其中,第一计算节点将获取到的主副本刷新成内存中的数据段时,通过网络传输将数据段的第一部分数据复制到第二计算节点,以及在满足预置的存储条件时,将数据段存储到共享存储设备,第二计算节点对接收到的第一部分数据进行处理和存储,并在确定未存储数据段的第二部分数据时,从共享存储设备读取并加载第二部分数据,第一部分数据和第二部分数据是主副本的从副本。其中,第一计算节点将获取到的主副本刷新成内存中的数据段可以解释为第一计算节点将主副本缓存至buffer,并定时刷新到NRT cache的过程。该技术方案中,通过共享存储设备和网络传输的混合同步方式实现主从副本的数据同步,提高了数据同步效率和灵活性,充分利用了带宽资源。
此外,在本申请提供的技术方案中,主副本被刷新成数据段后,一方面,第一计算节点和第二计算节点可以通过物理复制方式进行数据同步,另一方面,对于未同步到第二计算节点中的数据段部分,第二计算节点可以直接从共享存储设备读取和加载,实现了计算和存储的分离,具有弹性伸缩(存储资源和计算资源可独立扩缩容)、灵活性好的特点。
在计算存储分离架构下,使用共享存储设备和网络传输两条同步链路实现主从数据同步,提升了数据写入性能,降低了对共享存储设备的端口压力;相比单纯依靠共享存储设备的主从同步,点对点的网络传输减少了网络跳数,降低了主从数据延迟。
需要说明的是,本申请实施例提供的数据处理方法可应用于存储系统。下面在介绍本申请实施例提供的数据同步方法之前,首先对本申请实施例提供的存储系统进行解释说明。
图3是本申请实施例提供的存储系统的示意性框图。该存储系统至少可用于提供数据的存储服务和查询服务,如图3所示,该存储系统300包括第一计算节点31、第二计算节点32和共享存储设备33。
示例性的,图3以存储系统包括一个第一计算节点和一个第二计算节点进行解释说明,在实际应用中,第二计算节点的数量可以有多个,本实施例不对其进行限定。
在图3所示的存储系统中,第一计算节点31可以包括读写引擎311和近实时(nearreal time,NRT)cache 312。
其中,读写引擎311中可以包括buffer 3110,即读写引擎311在获取到用户写入的数据(即,主副本)后,首先可以将主副本写入buffer 3110,然后再定时将buffer 3110中的主副本刷新(refresh)成NRT cache 312中的数据段,这时用户写入的主副本才可被查询到。也即,主副本被写入到可被搜索到有一个小延迟(大概1秒,基于Elasticsearch执行搜索和分析可以达到秒级)。示例性的,参照图3所示,当buffer 3110中的主副本被刷新成NRTcache 312中的数据段时,例如,数据段A,这时读写引擎311便可以从NRT cache312中读取。
可理解,在本申请的实施例中,被写入到第一计算节点31的主副本直接被写入到buffer 3110,然后经过索引构建的过程后,形成NRT cache 312里面查询可见的文件。
可选的,在本申请的一种可能实现中,当第一计算节点31将接收到的数据refresh成数据段的结束时,可触发第一计算节点31和第二计算节点32之间的数据同步,即,第一计算节点31可以通过物理复制将NRT cache 312中存储的数据段A同步到第二计算节点32中的NRT cache 322上,这样,第二计算节点32对接收到的数据段A进行校验、加载后,便可以提供查询服务,例如,参见图3所示,第二计算节点32的只读引擎321便可以从NRT cache322中读取到数据段A。
可选的,在本申请的实施例中,第一计算节点31还可以在满足预置的存储条件时,将NRT cache 312中的数据段flush持久化到共享存储设备33,例如,将NRT cache 312中的数据段持久化为磁盘段segment,例如,共享存储设备33中的数据段B。
作为一种示例,为了控制第一计算节点31中NRT cache 312的容量,第一计算节点31可以在NRT cache 312中的数据段总大小超过容量阈值时,将NRT cache 312中的数据段flush持久化到共享存储设备33。
作为另一种示例,为了及时将第一计算节点31的主副本存储至共享存储设备33,第一计算节点31可以周期性的将NRT cache 312中的数据段flush持久化到共享存储设备33,即,当距离前一次存储的时间间隔大于间隔阈值时,第一计算节点31便可以将NRTcache312中的数据段flush持久化到共享存储设备33。
在本申请的实施例中,持久化存储过程可以理解为数据存储至可永久保存数据的存储设备的过程。
可理解,当数据段被持久化到共享存储设备33后,便可以供第一计算节点31和第二计算节点32读取和加载。例如,参见图3所示,第一计算节点31的读写引擎311和第二计算节点32的只读引擎321均可以从共享存储设备33中读取数据段B。
在实际应用中,若干个数据段可以构成分片(shard),相应的,主副本对应的数据段也可以称为主分片(primary shard),同步到第二计算节点32的从副本可以称为备份分片(replica shard),备份分片是主分片的副本,负责容错以及承担读请求的负载。
在本申请的实施例中,共享存储设备33可供不同的计算节点读取并加载其存储的数据段,从而实现了计算和读写分离,在保证数据安全的前提下,也能够满足独立扩缩容的目的,提高了灵活性。
可选的,参照图3所示,第一计算节点31在获取到用户写入的数据后,在利用新写入的数据更新buffer 3110的同时,还向共享存储设备33写日志文件(translog),以便在第一计算节点31丢失后的故障恢复(failover)时,第二计算节点32可以配合translog提升为新的第一计算节点。
可选的,在日志文件写完后,第一计算节点31即可向用户返回写成功的响应。但,此时新写入的数据尚不可见,需要定期执行刷新过程(refresh过程),将buffer 3110中的主副本刷新成NRT cache 312中的段(segment),才可以被查询。
可选的,读写引擎311还可以定期执行合并(merge)过程,将较小的segment合并为较大的segment,以控制NRT cache中segment的总数,避免查询性能损失。
可选的,读写引擎311还可定期执行持久化过程(flush),将内存中的segment持久化存储,即写到共享存储设备33,并在segment持久化后回收之前写入的translog,以减少不必要的内存占用。
可理解,图3所示的存储系统仅是一种示例,在实际应用中,存储系统还可以包括其他的组成部分,此处不做赘述。此外,在实际场景中,第一计算节点和第二计算节点是站在是否具有数据的写能力进行区分的。通常情况下,一个计算节点针对第一数据来说其属于第一计算节点,但针对不同于第一数据的第二数据来说可能属于第二计算节点,本申请实施例并不对其进行限定。
可选的,在了解了存储系统的组成和功能之后,下述结合图3所示的存储系统对本申请实施例提供的数据同步方法做详细说明。下文的实施例以存储系统中的第一计算节点、第二计算节点以及共享存储设备之间的信息交互进行解释说明。
示例性的,图4是本申请第一实施例提供的数据同步方法的交互示意图。该数据同步方法应用于图3所示的存储系统,如图4所示,该数据同步方法可以包括如下步骤:
S401、第一计算节点将接收到的主副本写入内存,并周期性的将内存中的主副本刷新成数据段。
在实际应用中,存储系统包括的各计算节点均可以作为数据的读写节点。可理解,当某个计算节点作为某条数据的读写节点时,其便成为该条数据的第一计算节点,其他的计算节点成为承载数据的第二计算节点。
示例性的,第一计算节点在获取到用户写入的主副本时,第一计算节点的读写引擎便将该主副本写入内存,并基于预置的周期,定期refresh内存中的主副本,以生成数据段(segment)。
可选的,在本申请的实施例中,内存可以包括buffer和NRT cache。其中,buffer用于数据的缓冲写入,NRT cache用于承载查询可见的文件以及后续的物理复制。相应的,在本实施例中,第一计算节点将接收到的主副本写入内存,并周期性的将所述内存中的主副本刷新成数据段,包括:第一计算节点将接收到的主副本写入buffer,周期性的将buffer中的主副本刷新成NRT cache中的数据段。
在本申请的一种可能的实现方式中,若以Lucene索引为例,Lucene索引由若干段segment组成,每个segment由若干文件组成,在本实施例中,若干文件可以称为若干条数据,即Lucene索引是以数据的形式被写入第一计算节点的。
可理解,在本申请的实施例中,用户写入的数据也可以称为索引、主副本,数据段也可以称为段文件,此处不做限定。
示例性的,用户向第一计算节点写Lucene索引时,依次向第一计算节点的读写引擎写入数据,这样读写引擎便将新获取到的主副本写入buffer,即利用新写入的数据更新buffer。由于buffer中的主副本尚不可见,需要将buffer中的主副本refresh(刷新)成NRTcache中的segment,以便及时被查询到。但为了提高写入性能,读写引擎通常周期性的执行数据refresh的过程。可理解,数据refresh的周期时长可以基于实际需求设定,此处不作限定。
可选的,在本申请实施例的一种可能实现中,第一计算节点在周期性的将内存中的主副本刷新成数据段之后,还可以周期性的对内存中的数据段进行合并处理。例如,第一计算节点的读写引擎可以定期执行数据段的合并(merge)过程,以将较小segment合并为较大的segment,以控制segment的总数,避免查询性能损失。例如,第一计算节点定期refresh内存中的数据生成内存segment,后台merge定期将较小的内存segment合并为较大的内存segment。
可理解,这些segment都缓存在图3所示实施例中的NRT cache中。
S402、第一计算节点在内存的刷新过程结束时,通过网络传输将数据段中的第一部分数据复制到第二计算节点。
在本申请的实施例中,第一计算节点可以周期性的对buffer中的主副本执行刷新(refresh)过程,并在刷新过程结束即生成数据段后,便可触发主第二计算节点的数据同步过程。
示例性的,第一计算节点在refresh过程结束后,触发第一计算节点和第二计算节点执行交互过程,通过物理复制方式将第一计算节点NRT cache中的segment同步到第二计算节点的NRT cache中。即,第一计算节点的NRT cache中数据段的第一部分数据可通过网络传输被拷贝或复制到第二计算节点。
可理解,本实施例中的网络传输不限于形式,可以是有线网络传输,也可以是无线网络传输或其他形式,此处不作赘述。
S403、第二计算节点对接收到的第一部分数据进行处理和存储。
可选的,第二计算节点接收数据段的第一部分数据后,可以对接收到的第一部分数据进行校验、加载、链接,并在得到全量的完整数据后,对外提供查询服务。
S404、在满足预置的存储条件时,第一计算节点将内存中的数据段存储到共享存储设备。
其中,该存储条件包括内存中的数据段总大小大于容量阈值,和/或,距离前一次存储的时间间隔大于间隔阈值。
S405、第二计算节点在确定未存储数据段的第二部分数据时,从共享存储设备读取并加载第二部分数据。
其中,第一部分数据和第二部分数据是主副本的从副本。
在本申请的实施例中,第一计算节点还可执行数据持久化过程(flush过程),例如,周期性执行或在数据段的总大小大于容量阈值时,将内存中的数据段(segment)写持久化存储到共享存储设备,即当数据段被持久化到共享存储设备后,第二计算节点在确定未存储数据段的第二部分数据时,便可以直接读取共享存储设备并加载所需的第二部分数据。
可选的,第二计算节点未存储的数据段的第二部分数据可以是未及时通过网络传输同步的数据,也可以是数据大小大于预设阈值的数据,此处不作限定。
示例性的,对于缓冲在NRT cache中的数据段,在确定内存中的数据段总大小大于容量阈值时,将内存中的数据段持久化存储到所述共享存储设备可以包括:第一计算节点在确定NRT cache中的数据段总大小大于NRT cache的容量阈值时,将NRT cache中的数据段持久化到共享存储设备。
可选的,由于副本中NRT cache的容量有限,在实际应用中,需要控制NRT cache容量,例如,控制NRT cache中数据段的总大小,当数据段总大小超过容量预设的容量阈值时,第一计算节点可以将NRT cache中的数据段flush持久化到共享存储设备,将内存中的segment持久化为磁盘segment。
可选的,为了避免系统故障,第一计算节点也可以周期性的执行数据段持久化到共享存储设备的过程。例如,在距离前一次存储的时间间隔大于间隔阈值时,第一计算节点便可以将NRT cache中的数据段持久化到共享存储设备。
可理解,本申请的实施例应用于表格存储多元索引的存储层从本地盘改造为共享存储设备的场景。在本实施例中,第一计算节点和第二计算节点的数据同步可以采用物理复制的方式,即:通过在第一计算节点上构造索引文件(即,数据段),然后将索引文件整个同步到第二计算节点,即,第一计算节点内存中的文件,可以直接通过网络传输到第二计算节点,节省了第二计算节点重复构建索引文件对计算引擎的资源消耗。
此外,在本实施例中,第一计算节点上的索引文件还可持久化到共享存储设备,这样针对持久化到共享存储设备的文件或者较大的索引文件,第二计算节点无需拷贝,可以直接从共享存储设备读取、加载,在保证数据安全的前提下,提高了数据同步效率。
在本申请的一种可能实现方式中,第二计算节点可以从第一计算节点接收同步的第一部分数据,对第一部分数据进行校验和合并,得到并存储目标数据段,此外,在确定未存储第二部分数据时,也可以从共享存储设备读取并加载该第二部分数据,该共享存储设备用于存储第一计算节点获取到的主副本,所述第一部分数据和所述第二部分数据是所述主副本的从副本。
相应的,在本申请的实施例中,共享存储设备可以从第一计算节点接收待存储的数据段,其中,该数据段是第一计算节点在满足预置的存储条件时发送的,所述存储条件包括所述内存中的数据段总大小大于容量阈值,和/或,距离前一次存储的时间间隔大于间隔阈值;基于第一计算节点的标识,将数据段存储至目标位置,此外,共享存储设备还可以接收第二计算节点的数据读取请求,该数据读取请求是所述第二计算节点在确定未存储第二部分数据时发出的,基于所述数据读取请求确定所述第二部分数据,并传输至所述第二计算节点。
在本申请的实施例中,主副本被刷新成数据段后,一方面,第一计算节点和第二计算节点之间可以通过物理复制方式对数据段中的第一部分数据进行同步,另一方面,对于未同步到第二计算节点的数据段中的第二部分数据,第二计算节点可以直接从共享存储设备读取和加载。该技术方案中,通过共享存储设备和网络传输的混合同步方式实现主从副本的数据同步,提高了数据同步效率,充分利用了带宽资源。
本申请实施例提供的数据同步方法,通过将在主从同步过程中写入共享存储设备的数据转移一部分到网络传输,避免共享存储设备上频繁地创建、写入、删除小文件的问题,提升了数据写入性能,缓解了共享存储设备的输入输出压力,存储系统的稳定性得到大大提升,同时,由于云环境下的第一计算节点和第二计算节点位于同一可用区的高速网络下,传输带宽不是瓶颈,本方案充分利用了富裕的带宽资源。
可选的,在图4所示实施例的基础上,下述对主第二计算节点的数据同步过程进行解释说明。示例性的,图5是本申请第二实施例提供的数据同步方法的交互示意图。如图5所示,在本申请的实施例中,上述步骤S402中的通过网络传输将数据段中的第一部分数据复制到第二计算节点可以通过如下步骤是实现:
S501、第一计算节点获取第一部分数据的数据快照和该数据快照对应的元数据。
可选的,在本申请的实施例中,第一计算节点的读写引擎在将buffer中的数据刷新成数据段时,若需要将第一部分数据同步至第二计算节点,则会生成该第一部分数据的数据快照。其中,数据快照是当前时刻第一部分数据对应segment的集合。
在本申请的实施例中,执行数据同步时,第一计算节点可以基于获取到的数据快照确定出该数据快照对应的元数据。该元数据是用来描述第一部分数据的长度、位置等属性信息的数据。
可理解,在本申请的一种可选实施例中,第一计算节点在获取到第一部分数据的数据快照之后,还可以执行如下步骤:
S502、第一计算节点将该数据快照中的数据段加入共享文件列表。
在一种可能的实现中,由于主第二计算节点在一次同步过程中,需要同步的数据段可能有多个,为了在同步过程中有次序的执行数据同步,第一计算节点中预先建立有共享文件列表,这样第一计算节点在生成数据段,第一计算节点可以将该数据快照对应的所有待同步数据段均加入到共享文件列表中。
可理解,共享文件列表用来避免文件还在被第二计算节点使用时,被第一计算节点删除。如果某个文件,第二计算节点不需要使用,这时第一计算节点可以结束共享,并能够将其从共享文件列表中删掉。
S503、第一计算节点向第二计算节点发送数据快照对应的元数据。
可选的,第一计算节点在获取到数据快照对应的元数据后,还可以将该元数据发送给第二计算节点,以便第二计算节点对该元数据执行相应的处理操作,确定出需同步的数据段信息。
S504、第二计算节点在接收到元数据后向第一计算节点反馈响应消息,该响应消息包括第二计算节点中的已加载数据快照信息和待被共享文件。
在本申请实施例的一种可能实现中,第二计算节点在接收到数据快照对应的元数据后,便可以向第一计算节点发送响应消息,以指示第二计算节点已接收到元数据,也可以用于指示主第二计算节点之间的网络链路处于连通状态。
在实际应用中,第一计算节点和第二计算节点之间可能需要执行多次数据同步过程,因而,第二计算节点可以根据其目前已加载的数据段信息和接收到的元数据,确定出待被共享文件(需要被共享的文件),第二计算节点向第一计算节点反馈响应消息时,可以通过该响应消息将其目前的已加载数据快照信息以及待被共享文件发送给第一计算节点,以便第一计算节点执行相应的处理过程。
其中,已加载数据快照信息可以理解为第二计算节点当前已加载的数据快照的版本信息等,待被共享文件用于指示第二计算节点当前需要的被共享数据段等文件信息。
S505、第一计算节点根据接收到的已加载数据快照信息和待被共享文件对共享文件列表进行处理,确定共享文件列表中的无需共享数据段。
S506、第一计算节点从共享文件列表中删除无需共享数据段。
在步骤S505中,当第二计算节点向第一计算节点反馈已加载数据快照信息和待被共享的文件,相应的,第一计算节点可以接收到上述的已加载数据快照信息和待被共享文件,因而,通过对已加载数据快照信息进行处理可以确定出第二计算节点当前已加载的数据快照版本信息,进而结合第二计算节点的待被共享文件,可以确定出共享文件列表中的无需共享数据段。
相应的,在步骤S506中,为了避免主第二计算节点之间传输重复的共享数据段,第一计算节点在确定出共享文件列表中的无需共享数据段后,可以将其从共享文件列表中删除,以提高传输效率和避免资源浪费。
需要注意的是,第一计算节点从共享文件列表中删除无需共享数据段之前,需要判断下该共享文件列表是否处于使用状态,若确定共享文件列表处于使用状态时,禁止删除共享文件列表中的数据段。
也即,该共享文件列表处于使用状态可以理解为主第二计算节点在执行数据同步过程成,因而,为了避免删除行为影响正常数据段的同步过程,在整个物理复制过程中,需要保证共享文件列表中的共享文件不被删除,同时,第二计算节点如果有读流量仍在使用共享文件列表,此时,共享文件列表中的数据段也不能被删除。
S507、第二计算节点对接收到的元数据进行处理,确定目标复制数据段。
在本实施例中,第二计算节点可以对元数据进行处理确定出元数据对应的版本信息及待同步的数据段,然后再结合自身中的已加载数据快照信息,可以确定出需要从第一计算节点复制到第二计算节点的目标复制数据段。
在一种可能的实现方式中,该步骤S507,即,第二计算节点对接收到的元数据进行处理,确定目标复制数据段可以包括:第二计算节点对接收到的元数据进行处理,确定元数据对应数据段的长度信息和索引信息,然后基于该元数据对应数据段的长度信息和索引信息,确定出元数据对应数据段中的目标复制数据段。
示例性的,元数据可以包括待同步数据段的长度数据和索引信息,相应的,在本实施例中,第二计算节点对接收到的元数据进行分析,可以确定出待处理数据段的长度信息和索引信息,然后查询已加载数据快照信息,判断第二计算节点是否已经加载了某些待处理数据段的长度信息和索引信息,若是,则筛选出第二计算节点中未加载的数据段,并将这些数据段确定为目标复制数据段。
可理解,第二计算节点通过校验元数据,计算需要拷贝哪些数据段,还可以解释为第二计算节点在确定出待同步的数据段位于在第一计算节点的内存(例如,NRT cache)中,这时可通过网络传输拉取待同步的数据段,在确定出待同步的数据段已被第一计算节点持久化到共享存储设备,第二计算节点可以直接从共享存储设备加载,而不需要通过第一计算节点同步。
S508、第二计算节点基于目标复制数据段,向第一计算节点发送数据复制请求。
S509、第一计算节点基于接收到的数据复制请求,通过物理复制方式将目标复制数据段复制到第二计算节点。
可选的,第二计算节点确定出待同步的目标复制数据段时,可以基于目标复制数据段中各数据段的数量、长度,每次传输的大小等确定出需要请求的目标次数,从而基于该需要请求的目标次数,循环向第一计算节点发送数据复制请求,直到发送了目标次数。
可理解,第二计算节点循环向第一计算节点发送数据复制请求可以理解为第二计算节点循环请求增量拉取待同步的目标复制数据段,相应的,第一计算节点在每次接收到数据复制请求后,可以确定出当次需要复制的目标复制数据段,并通过物理复制方式复制或拷贝到第二计算节点。
在一种可选的实施例中,第一计算节点基于接收到的数据复制请求,通过物理复制方式将目标复制数据段复制到第二计算节点,包括:第一计算节点基于数据复制请求中的文件索引信息,在共享文件列表中,确定出本次待传输的目标复制数据段,通过物理复制方式将该目标复制数据段复制到第二计算节点。即,第二计算节点循环请求增量拉取的数据段时,第一计算节点会相应的向第二计算节点循环发送增量拉取的数据段的数据。
可理解,在第二计算节点在本次复制过程结束后,第二计算节点可以加载复制完成的数据段并对外提供读服务。
在本申请的实施例中,第一计算节点获取第一部分数据的数据快照和该数据快照对应的元数据,向第二计算节点发送数据快照对应的元数据,第二计算节点对接收到的元数据进行处理,确定目标复制数据段,随后基于目标复制数据段,向第一计算节点发送数据复制请求,第一计算节点基于接收到的数据复制请求,通过物理复制方式将文件索引信息对应的目标复制数据段复制到第二计算节点。该技术方案中,在数据段生成时,第一计算节点和第二计算节点能够通过物理复制方式实现数据同步,降低了数据同步经过的网络跳数,降低了主从数据延迟。
可选的,在本申请的实施例中,第一计算节点将接收到的主副本写入内存之前,还可以执行如下操作:第一计算节点基于接收到的主副本,写共享存储设备的日志文件,该日志文件用于数据同步过程中的异常数据恢复,相应的,该数据同步方法还可以包括:共享存储设备滚动回收日志文件中的目标数据,该目标数据是所属数据段已被持久化到共享存储设备的数据。
在实际应用中,第一计算节点在接收到用户写入的数据(即主副本)后,便直接利用该数据写共享存储设备的日志文件(translog),写完后即可向用户返回写成功响应,提高了用户的写入体验。
在本实施例中,第一计算节点向共享存储设备的日志文件写数据,能够保证数写入据可靠性,即,在第一计算节点中数据未持久化到共享存储设备之前,若第一计算节点出现故障时,此时可以通过该日志文件恢复丢失的数据。
可理解,在第一计算节点通过flush将数据段持久化到共享存储设备的过程中,已经持久化到共享存储设备中的数据段可供第一计算节点和第二计算节点读取和加载,因而,可以滚动回收共享存储设备中的日志文件,以减少日志对存储空间的占用,也可避免由于第一计算节点和第二计算节点基于日志文件恢复数据导致的读取时间长的问题。
基于上述分析可知,本申请提供的数据同步方法应用于包括第一计算节点、第二计算节点和共享存储设备的存储系统,该存储系统提供了计算和存储的分离架构,该方法使用共享存储设备和网络传输两条同步链路实现主从数据同步,提升了数据写入性能,降低了对共享存储设备的数据、元数据压力,相比单纯依靠共享存储设备的主从同步,点对点的网络传输减少了网络跳数,降低了主从数据延迟。
图6是本申请实施例提供的计算节点的示意性框图。该计算节点600可以为图3中的第一计算节点,也可以是第二计算节点。如图6所示,该计算节点600可以包括接收模块610、处理模块620和发送模块630。
在本申请的一种实施例中,若计算节点600是第一计算节点,则:
接收模块610用于接收用户写入的主副本;
该处理模块620用于将所述主副本写入内存,并周期性的将所述内存中的主副本刷新成数据段;
该处理模块620还用于在所述内存的刷新过程结束时,基于网络传输方式,通过发送模块630将上述数据段中的第一部分数据复制到第二计算节点,以及在满足预置的存储条件时,通过发送模块630将所述内存中的数据段持久化存储到所述共享存储设备,所述共享存储设备用于供所述第二计算节点读取并加载未存储的所述数据段中的第二部分数据,所述存储条件包括所述内存中的数据段总大小大于容量阈值,和/或,距离前一次存储的时间间隔大于间隔阈值。
可选地,处理模块620具体用于获取所述第一部分数据的数据快照,并通过发送模块630向第二计算节点发送所述数据快照对应的元数据,通过接收模块610接收第二计算节点发送的数据复制请求,以及基于接收到的数据复制请求,通过物理复制方式将目标复制数据段复制到所述第二计算节点。
可选的,处理模块620还用于在获取所述第一部分数据的数据快照之后,将所述数据快照中的数据段加入共享文件列表,基于接收到的数据复制请求中的文件索引信息,在共享文件列表中,确定出所述目标复制数据段,相应的,发送模块630用于通过物理复制方式将所述目标复制数据段复制到所述第二计算节点。
可选的,接收模块610还用于接收第二计算节点在接收到元数据后反馈的响应消息,所述响应消息包括所述第二计算节点中的已加载数据快照信息和待被共享文件;
处理模块620还用于根据接收到的所述已加载数据快照信息和所述待被共享文件对所述共享文件列表进行处理,确定所述共享文件列表中的无需共享数据段,以及从所述共享文件列表中删除所述无需共享数据段。
可理解,处理模块620还用于在确定所述共享文件列表处于使用状态时,禁止删除所述共享文件列表中的数据段。
可选的,处理模块620还用于在所述周期性的将所述内存中的主副本刷新成数据段之后,周期性的对所述内存中的数据段进行合并处理。
可选的,所述内存包括buffer和NRT cache;处理模块620用于将接收到的主副本写入所述buffer;周期性的将所述buffer中的主副本刷新成所述NRT cache中的数据段;以及,在满足预置的存储条件时,通过发送模块630将所述NRT cache中的数据段存储到共享存储设备。
可选的,处理模块620还用于将接收到的主副本写入内存之前,基于接收到的所述主副本,写所述共享存储设备的日志文件,所述日志文件用于数据同步过程中的异常数据恢复;所述共享存储设备用于滚动回收所述日志文件中的目标数据,所述目标数据是所属数据段已被持久化到所述共享存储设备的数据。
在本申请的实施例中,第一计算节点的具体实现方案和有益效果参见上述实施例中的记载,此处不做赘述。
可选的,在本申请的另一种实施例中,若计算节点600是第二计算节点,则:
接收模块610,用于从第一计算节点接收同步的第一部分数据;
处理模块620,用于对所述第一部分数据进行校验和合并,得到目标数据段;
发送模块630,用于在确定未存储第二部分数据时,从共享存储设备读取并加载所述第二部分数据,所述共享存储设备用于存储所述第一计算节点获取到的主副本,所述第一部分数据和所述第二部分数据是所述主副本的从副本。
在本申请的实施例中,第二计算节点的具体实现方案和有益效果参见上述实施例中的记载,此处不做赘述。
可选的,在本申请的实施例中,本申请提供了一种共享存储设备,所述共享存储设备包括:接收模块、处理模块和发送模块。
所述接收模块用于从第一计算节点接收待存储的数据段,该数据段是第一计算节点在满足预置的存储条件时发送的,所述存储条件包括所述内存中的数据段总大小大于容量阈值,和/或,距离前一次存储的时间间隔大于间隔阈值;
所述处理模块,用于基于所述第一计算节点的标识,将所述数据段存储至目标位置;
所述接收模块还用于接收第二计算节点的数据读取请求,所述数据读取请求是所述第二计算节点在确定未存储第二部分数据时发出的;
所述处理模块,还用于基于所述数据读取请求确定所述第二部分数据,并通过所述发送模块传输至所述第二计算节点。
在本申请的实施例中,共享存储设备的具体实现方案和有益效果参见上述实施例中的记载,此处不做赘述。
图7是本申请实施例提供的电子设备的示意性框图。在一个实施例中,该电子设备700可以为第一计算节点,在另一个实施例中,该电子设备700可以为第二计算节点。在再一个实施例中,该电子设备700可以为共享存储设备。
如图7所示,该电子设备700可以包括至少一个处理器710,用于可用于实现本申请提供的方法中数据同步的功能。具体参见方法示例中的详细描述,此处不做赘述。
该电子设备700还可以包括一个存储器720,用于存储程序指令和/或数据。存储器720和处理器710耦合。本申请中的耦合是装置、单元或模块之间的间接耦合或通信连接,可以是电性,机械或其它的形式,用于装置、单元或模块之间的信息交互。处理器710可能和存储器720协同操作。处理器710可能执行存储器720中存储的程序指令。所述至少一个存储器中的至少一个可以包括于处理器中。
该电子设备700还可以包括一个通信接口730,用于通过传输介质和其它设备进行通信,从而用于电子设备700中的装置可以和其它设备进行通信。所述通信接口730例如可以是收发器、接口、总线、电路或者能够实现收发功能的装置。处理器710可利用通信接口730收发数据和/或信息,并用于实现上述实施例中数据同步方法。
本申请中不限定上述处理器710、存储器720以及通信接口730之间的具体连接介质。本申请在图7中以处理器710、存储器720以及通信接口730之间通过总线740连接。总线740在图7中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
在本申请实施例中,处理器可以是通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
根据本申请提供的方法,本申请还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,当该计算机程序在计算机上运行时,使得该计算机执行上述实施例中的技术方案。
根据本申请提供的方法,本申请还提供一种计算机程序产品,该计算机程序产品包括:计算机程序代码。当该计算机程序代码在计算机上运行时,使得该计算机执行上述实施例中的技术方案。
本申请提供的技术方案可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、网络设备、终端设备或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线,例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机可以存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质例如,数字视频光盘(digital video disc,DVD)、或者半导体介质等。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (14)

1.一种数据同步方法,其特征在于,应用于存储系统中,所述存储系统包括第一计算节点、第二计算节点和共享存储设备,所述方法包括:
所述第一计算节点在将获取到的主副本刷新成内存中的数据段时,通过网络传输将所述数据段中的第一部分数据复制到所述第二计算节点;
所述第二计算节点对接收到的所述第一部分数据进行处理和存储;
在满足预置的存储条件时,所述第一计算节点将所述内存中的数据段存储到所述共享存储设备,所述存储条件包括所述内存中的数据段总大小大于容量阈值,和/或,距离前一次存储的时间间隔大于间隔阈值;
所述第二计算节点在确定未存储所述数据段的第二部分数据时,从所述共享存储设备读取并加载所述第二部分数据,所述第一部分数据和所述第二部分数据是所述主副本的从副本。
2.如权利要求1所述的方法,其特征在于,所述第一计算节点通过网络传输将所述数据段中的第一部分数据复制到所述第二计算节点,包括:
所述第一计算节点从所述内存获取所述第一部分数据的数据快照,并向所述第二计算节点发送所述数据快照对应的元数据;
所述第二计算节点对接收到的所述元数据进行处理,确定目标复制数据段;
所述第二计算节点基于所述目标复制数据段,向所述第一计算节点发送数据复制请求;
所述第一计算节点基于接收到的所述数据复制请求,通过物理复制方式将所述目标复制数据段复制到所述第二计算节点。
3.如权利要求2所述的方法,其特征在于,所述第二计算节点对接收到的所述元数据进行处理,确定目标复制数据段,包括:
所述第二计算节点对接收到的所述元数据进行处理,确定所述元数据对应数据段的长度信息和索引信息;
所述第二计算节点基于所述元数据对应数据段的长度信息和索引信息,确定出所述元数据对应数据段中的目标复制数据段。
4.如权利要求2所述的方法,其特征在于,在所述第一计算节点从所述内存获取所述第一部分数据的数据快照之后,所述方法还包括:
所述第一计算节点将所述数据快照中的数据段加入共享文件列表;
所述第一计算节点基于接收到的所述数据复制请求,通过物理复制方式将所述目标复制数据段复制到所述第二计算节点,包括:
所述第一计算节点基于所述数据复制请求中的文件索引信息,在所述共享文件列表中,确定出所述目标复制数据段;
所述第一计算节点通过物理复制方式将所述目标复制数据段复制到所述第二计算节点。
5.如权利要求4所述的方法,其特征在于,在所述第二计算节点对接收到的所述元数据进行处理,确定目标复制数据段之前,所述方法还包括:
所述第二计算节点在接收到所述元数据后向所述第一计算节点反馈响应消息,所述响应消息包括所述第二计算节点中的已加载数据快照信息和待被共享文件;
所述第一计算节点根据接收到的所述已加载数据快照信息和所述待被共享文件对所述共享文件列表进行处理,确定所述共享文件列表中的无需共享数据段;
所述第一计算节点从所述共享文件列表中删除所述无需共享数据段。
6.如权利要求4或5所述的方法,其特征在于,所述方法还包括:
所述第一计算节点在确定所述共享文件列表处于使用状态时,禁止删除所述共享文件列表中的数据段。
7.如权利要求1至5任一项所述的方法,其特征在于,在所述第一计算节点在将获取到的主副本刷新成内存中的数据段时,通过网络传输将所述数据段中的第一部分数据复制到所述第二计算节点之前,所述方法还包括:
所述第一计算节点将接收到的主副本写入内存,并周期性的将所述内存中的数据刷新成所述数据段;
所述第一计算节点周期性的对所述内存中的数据段进行合并处理。
8.如权利要求7所述的方法,其特征在于,所述内存包括buffer和近实时NRT cache;
所述第一计算节点将接收到的主副本写入内存,并周期性的将所述内存中的数据刷新成数据段,包括:
所述第一计算节点将接收到的主副本写入所述buffer;
所述第一计算节点周期性的将所述buffer中的主副本刷新成数据段,并存储至所述NRT cache中;
在满足预置的存储条件时,所述第一计算节点将所述内存中的数据段存储到所述共享存储设备,包括:
在满足预置的存储条件时,所述第一计算节点将所述NRT cache中的数据段存储到所述共享存储设备。
9.如权利要求7所述的方法,其特征在于,所述第一计算节点将接收到的主副本写入内存之前,所述方法还包括:
所述第一计算节点基于接收到的所述主副本,写所述共享存储设备的日志文件,所述日志文件用于数据同步过程中的异常数据恢复;
所述方法还包括:
所述共享存储设备滚动回收所述日志文件中的目标数据,所述目标数据是所属数据段已被持久化到所述共享存储设备的数据。
10.一种存储系统,其特征在于,所述存储系统包括第一计算节点、第二计算节点和共享存储设备,其中:
所述第一计算节点用于在将获取到的主副本刷新成内存中的数据段时,通过网络传输将所述数据段中的第一部分数据复制到所述第二计算节点;
所述第二计算节点用于对接收到的所述第一部分数据进行处理和存储;
在满足预置的存储条件时,所述第一计算节点还用于将所述内存中的数据段存储到所述共享存储设备,所述存储条件包括所述内存中的数据段总大小大于容量阈值,和/或,距离前一次存储的时间间隔大于间隔阈值;
所述第二计算节点还用于在确定未存储所述数据段的第二部分数据时,从所述共享存储设备读取并加载所述第二部分数据,所述第一部分数据和所述第二部分数据是所述主副本的从副本。
11.一种数据同步方法,应用于第一计算节点,其特征在于,所述方法包括:
在将获取到的主副本刷新成内存中的数据段时,通过网络传输将所述数据段中的第一部分数据复制到第二计算节点;
在满足预置的存储条件时,将所述内存中的数据段持久化存储到共享存储设备,所述共享存储设备用于供所述第二计算节点读取并加载未存储的所述数据段中的第二部分数据,所述存储条件包括所述内存中的数据段总大小大于容量阈值,和/或,距离前一次存储的时间间隔大于间隔阈值。
12.一种数据同步方法,应用于第二计算节点,其特征在于,所述方法包括:
从第一计算节点接收同步的第一部分数据;
对所述第一部分数据进行校验和合并,得到目标数据段;
在确定未存储第二部分数据时,从共享存储设备读取并加载所述第二部分数据,所述共享存储设备用于存储所述第一计算节点获取到的主副本,所述第一部分数据和所述第二部分数据是所述主副本的从副本。
13.一种电子设备,其特征在于,包括处理器,所述处理器用于调用计算机程序,使得所述电子设备实现如权利要求1至12中任一项所述的方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,当所述计算机程序被执行时,实现如权利要求1至12中任一项所述的方法。
CN202211327150.4A 2022-10-25 2022-10-25 数据同步方法、存储系统、设备及存储介质 Pending CN115563221A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211327150.4A CN115563221A (zh) 2022-10-25 2022-10-25 数据同步方法、存储系统、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211327150.4A CN115563221A (zh) 2022-10-25 2022-10-25 数据同步方法、存储系统、设备及存储介质

Publications (1)

Publication Number Publication Date
CN115563221A true CN115563221A (zh) 2023-01-03

Family

ID=84767820

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211327150.4A Pending CN115563221A (zh) 2022-10-25 2022-10-25 数据同步方法、存储系统、设备及存储介质

Country Status (1)

Country Link
CN (1) CN115563221A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117573397A (zh) * 2024-01-15 2024-02-20 北京趋动智能科技有限公司 内存优化方法、系统和存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117573397A (zh) * 2024-01-15 2024-02-20 北京趋动智能科技有限公司 内存优化方法、系统和存储介质
CN117573397B (zh) * 2024-01-15 2024-04-19 北京趋动智能科技有限公司 内存优化方法、系统和存储介质

Similar Documents

Publication Publication Date Title
US8335761B1 (en) Replicating in a multi-copy environment
US8868492B2 (en) Method for maximizing throughput and minimizing transactions response times on the primary system in the presence of a zero data loss standby replica
US8521694B1 (en) Leveraging array snapshots for immediate continuous data protection
US8694700B1 (en) Using I/O track information for continuous push with splitter for storage device
US8521691B1 (en) Seamless migration between replication technologies
US8332687B1 (en) Splitter used in a continuous data protection environment
US6950915B2 (en) Data storage subsystem
US10366106B2 (en) Quorum-based replication of data records
US9547706B2 (en) Using colocation hints to facilitate accessing a distributed data storage system
US20150347250A1 (en) Database management system for providing partial re-synchronization and partial re-synchronization method of using the same
CN104935654A (zh) 一种服务器集群系统中的缓存方法、写入点客户端和读客户端
CN111078667B (zh) 一种数据迁移的方法以及相关装置
US20070143362A1 (en) Database system including center server and local servers
US20230098190A1 (en) Data processing method, apparatus, device and medium based on distributed storage
CN113010549A (zh) 基于异地多活系统的数据处理方法、相关设备及存储介质
CN106873902B (zh) 一种文件存储系统、数据调度方法及数据节点
CN113010496A (zh) 一种数据迁移方法、装置、设备和存储介质
CN110807039A (zh) 一种云计算环境下数据一致性维护系统及方法
CN115563221A (zh) 数据同步方法、存储系统、设备及存储介质
WO2022033269A1 (zh) 数据处理的方法、设备及系统
CN115658245B (zh) 一种基于分布式数据库系统的事务提交系统、方法及装置
CN110196788B (zh) 一种数据读取方法、装置、系统及存储介质
WO2023019953A1 (zh) 数据同步方法、系统、服务器及存储介质
CN114564458B (zh) 集群间数据同步的方法、装置、设备和存储介质
WO2019109257A1 (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