CN112749228B - 数据同步方法、装置、存储服务器及存储介质 - Google Patents
数据同步方法、装置、存储服务器及存储介质 Download PDFInfo
- Publication number
- CN112749228B CN112749228B CN201911051155.7A CN201911051155A CN112749228B CN 112749228 B CN112749228 B CN 112749228B CN 201911051155 A CN201911051155 A CN 201911051155A CN 112749228 B CN112749228 B CN 112749228B
- Authority
- CN
- China
- Prior art keywords
- storage server
- identification value
- block
- data
- block file
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 59
- 238000010586 diagram Methods 0.000 description 14
- 238000012545 processing Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 7
- 238000004590 computer program Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 230000001360 synchronised effect Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 239000002699 waste material Substances 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013178 mathematical model Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
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/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)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据同步方法、装置、存储服务器及存储介质。其中,方法应用于第一存储服务器,第一存储服务器用于存储主区块文件的数据块,该方法包括:向第二存储服务器发送查询请求,以查询第二存储服务器中的第一标识值,第一标识值为第二存储服务器中与主区块文件的标识相同的从区块文件中数据块的最大标识值;接收第二存储服务器发送的第一标识值;比较第一标识值与第二标识值,第二标识值为第一存储服务器中主区块文件中数据块的最大标识值;当第一标识值小于第二标识值时,根据第一标识值确定第二存储服务器的从区块文件中丢失的数据块;将丢失的数据块发送至第二存储服务器,以同步主区块文件的数据块和从区块文件的数据块。
Description
技术领域
本发明涉及通信技术领域,更具体地,涉及一种数据同步方法、一种数据同步装置、一种存储服务器、一种计算机可读存储介质。
背景技术
在分布式对象存储***中,存储服务器上存储有多个区块文件。每个区块文件具有唯一的区块标识(Block id)。并且每个区块文件对应有三个副本(Replica),该3个副本中包含1个主副本和2个从副本。每个副本存储在不同的存储服务器中,且对应的区块标识相同。
存储服务器在对其中的一个作为主副本的区块文件进行写操作时,首先将待写入的数据块写入至该主副本的区块文件中。在主副本的区块文件写入完成之后,将该待写入的数据块转发至对应的两个作为从副本的区块文件所在的存储服务器。由从副本的区块文件所在的存储服务器将待写入的数据块写入至对应的区块文件中。基于此,使得三个副本具有相同的数据,即使得三个副本的数据同步。
但是,由于作为从副本的区块文件所在的存储服务器,在将待写入数据块写入对应的区块文件中时,首先是将待写入数据写入内存中,然后再在存储服务器运行的操作***的作用下,将内存中的待写入数据块刷新至磁盘中对应的区块文件中。因此,作为从副本的区块文件所在的存储服务器掉电后,该存储服务器的内存中未来得及刷新至磁盘中的数据存在丢失的可能性。基于此,当该存储服务重启后,作为从副本的区块文件中的数据将无法和对应的作为主副本的区块文件中的数据相同,即三个副本的数据不同步。
发明内容
本发明的一个目的是提供一种新的数据同步方法的技术方案。
根据本发明的第一方面,提供了一种数据同步方法,所述方法应用于第一存储服务器,所述第一存储服务器用于存储主区块文件的数据块,所述方法包括:
向第二存储服务器发送查询请求,以查询所述第二存储服务器中的第一标识值,所述第一标识值为第二存储服务器中与所述主区块文件的标识相同的从区块文件中数据块的最大标识值;
接收所述第二存储服务器发送的所述第一标识值;
比较所述第一标识值与第二标识值,所述第二标识值为所述第一存储服务器中所述主区块文件中数据块的最大标识值;
当所述第一标识值小于所述第二标识值时,根据所述第一标识值确定所述第二存储服务器的所述从区块文件中丢失的数据块;
将所述丢失的数据块发送至所述第二存储服务器,以同步所述主区块文件的数据块和所述从区块文件的数据块。
可选的,所述向第二存储服务器发送查询请求,以查询所述第二存储服务器中的第一标识值包括:
按照第一时间间隔,定期向第二存储服务器发送查询请求,以查询所述第二存储服务器中的第一标识值。
可选的,所述按照第一时间间隔,定期向第二存储服务器发送查询请求,以查询所述第二存储服务器中的第一标识值,包括:
在第一预设时间段之内,按照第一时间间隔,定期向第二存储服务器发送查询请求,以查询所述第二存储服务器中的第一标识值。
可选的,所述根据所述第一标识值确定所述第二存储服务器的所述从区块文件中丢失的数据块,包括:
将所述主区块文件中、大于所述第一标识值且小于和等于第二标识值的所有标识值对应的数据块,确定为所述第二存储服务器的所述从区块文件中丢失的数据块。
可选的,所述将所述丢失的数据块发送至所述第二存储服务器,以同步所述主区块文件的数据块和所述从区块文件的数据块,包括:
将所述主区块文件中、大于所述第一标识值且小于和等于第二标识值的所有标识值对应的数据块发送至第二存储服务器,以同步所述主区块文件的数据块和所述从区块文件的数据块。
可选的,所述向第二存储服务器发送查询请求,以查询所述第二存储服务器中的第一标识值之前,所述方法还包括:
确定第二预设时间段内所述主区块文件内是否写入新数据块;
在不存在的情况下,执行所述向第二存储服务器发送查询请求,以查询所述第二存储服务器中的第一标识值的步骤。
可选的,所述方法还包括:
响应于设定事件的触发,执行所述确定第二预设时间段内所述主区块文件内是否写入新数据块的操作。
可选的,所述方法还包括:
当接收到待存储的数据块时,将所述待存储的数据块保存至内存中;
按照第二时间间隔,将所述内存中的待存储的数据块定期刷新至所述主区块文件,其中,在所述主区块文件中,每个所述待存储的数据块获得对应的标识值;
以及,
将所述待存储的数据块转发至所述第二存储服务器中,以将所述待存储的数据块保存至所述第二存储服务器的从区块文件中,其中,在所述从区块文件中,每个所述待存储的数据块获得对应的标识值。
根据本发明的第二方面,提供了一种数据同步装置,包括:
查询模块,用于向第二存储服务器发送查询请求,以查询所述第二存储服务器中的第一标识值,所述第一标识值为第二存储服务器中与所述主区块文件的标识相同的从区块文件中数据块的最大标识值;
接收模块,用于接收所述第二存储服务器发送的所述第一标识值;
比较模块,用于比较所述第一标识值与第二标识值,所述第二标识值为所述第一存储服务器中所述主区块文件中数据块的最大标识值;
确定模块,用于当所述第一标识值小于所述第二标识值时,根据所述第一标识值确定所述第二存储服务器的所述从区块文件中丢失的数据块;
发送模块,用于将所述丢失的数据块发送至所述第二存储服务器,以同步所述主区块文件的数据块和所述从区块文件的数据块。
根据本发明的第三方面,提供了一种存储服务器,包括如第二方面所述的数据同步装置;或者,包括:
处理器和存储器,所述存储器用于存储可执行的指令,所述指令用于控制所述处理器执行根据第一方面中任一项所述的方法。
根据本发明的第四方面,提供一种计算机可读存储介质,所述存储介质存储有计算机指令,当所述存储介质中的计算机指令由处理器执行时,实现如第一方面任一项所述的方法。
在本实施例中,第一存储服务器向第二存储服务器发送查询请求,以查询第二存储服务器中的第一标识值;在接收到第二存储服务器发送的第一标识值之后,比较自身的第二标识值和第一标识值。在第一标识值小于第二标识值时,确定出第二存储服务器中的从区块文件中有数据块丢失。此时根据第一标识值确定第二存储服务去的从区块文件中丢失的数据块。最后将确定出的数据块发送至第二存储服务器中,由第二存储服务器将丢失的数据块写入至从区块文件中。这样,即使第二存储服务器在因掉电重启而有数据块丢失时,第二存储服务器中的从区块文件中的数据可以及时与第一存储服务器中的主区块文件中的数据同步。
通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。
附图说明
被结合在说明书中并构成说明书的一部分的附图示出了本发明的实施例,并且连同其说明一起用于解释本发明的原理。
图1是本发明实施例提供的一种存储服务器的硬件配置的框图;
图2是本发明实施例提供的一种数据同步方法的流程图。
图3是本发明实施例提供的一种数据同步装置的结构示意图;
图4是本发明实施例提供的一种存储服务器的结构示意图。
具体实施方式
现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
<硬件配置>
图1是本发明实施例提供的存储服务器的硬件配置的框图。
存储服务器1000可以包括处理器1100、存储器1200、接口装置1300、通信装置1400、显示装置1500、输入装置1600、扬声器1700、麦克风1800,等等。其中,处理器1100可以是中央处理器CPU、微处理器MCU等。存储器1200例如包括ROM(只读存储器)、RAM(随机存取存储器)、诸如硬盘的非易失性存储器等。接口装置1300例如包括USB接口、耳机接口等。通信装置1400例如能够进行有线或无线通信。显示装置1500例如是液晶显示屏、触摸显示屏等。输入装置1600例如可以包括触摸屏、键盘等。用户可以通过扬声器1700和麦克风1800输入/输出语音信息。
尽管在图1中对存储服务器1000均示出了多个装置,但是,本发明可以仅涉及其中的部分装置,例如,存储服务器1000中的存储器1200和处理器1100,本发明提供的数据同步的方法可以例如采用可执行指令的方式存储至存储器1200中,以及处理器1100调用该可执行指令以执行本发明的数据同步的方法。
在上述描述中,技术人员可以根据本发明所公开方案设计指令。指令如何控制处理器进行操作,这是本领域公知,故在此不再详细描述。
<***>
本发明提供的数据同步方法,应用于分布式对象存储***。其中,分布式对象存储***中包括两个以上存储服务器。每一存储服务器的磁盘中存储有多个定长的区块文件(通常为容量GB级别,且为物理意义上的一个文件)。且每一个区块文件均具有对应的区块标识,以及每一区块文件对应一个角色标识,该角色标识用于将区块文件区分为主区块文件(即作为主副本的区块文件)和从区块文件(即作为从副本的区块文件)。另外,每一个区块文件用于存储用户上传的对象。可以理解的是,对象即为用户上传的一个数据块。该数据块可以为一张图片、一段文字等。
对于主区块文件来说,主区块文件所在的存储服务器会将接收到的对象写入指定的主区块文件中。写入完毕之后,然后再将接收到的对象同步至该主区块文件对应的从区块文件所在的存储服务器中。由该主区块文件对应的从区块文件所在的存储服务器将接收到的对象,写入到该对应的从区块文件中。
需要说明的是,主区块文件和从区块文件的区块标识相同,主区块文件所在的存储服务器,与主区块文件对应的从区块文件所在的存储服务器是相互独立的,以及主区块文件中对象需与对应的从区块文件中的对象保持一致。
另外,分布式对象存储***中通常还会包括客户端以及控制端。其中,客户端用于接收用户上传的数据。在一些实施方式中,客户端可以用于当用户上传的数据过大时,将该数据进行切分处理,例如切分为多个数据块(或者对象)。客户端还可以用于读取操作,例如,向存储服务器发送数据读取请求,以从存储服务器读取相应的数据,以提供给用户。客户端还可以用于删除数据操作。
控制端监控存储服务器的磁盘的剩余存储容量、存储服务器中主区块文件的剩余存储容量、监控客户端是否上传对象。同时,控制端会记录每一存储服务器的磁盘中存储的主区块文件和从区块文件的区块标识,以及记录每一主区块文件,以及对应的从区块文件所在的存储服务器的服务器标识。
另外,分布式对象存储***实现数据同步的过程为:
步骤一、用户通过客户端上传对象;客户端接收到用户上传对象,在该对象过大时(例如,大于了任一个区块文件的大小),可以对对象进行切分。反之,如果小于区块文件的大小,可以不对对象进行切分处理。
步骤二、控制端在检测到客户端有用户上传的对象时,可以从分布式对象存储***的所有存储服务器中选取出一个存储服务器,例如,可以基于存储服务器的磁盘的剩余存储容量来选取存储服务器;在选取出存储服务器后,进一步从该存储服务器中选择一个主区块文件作为存储用户此次上传的对象的主区块文件,以存储用户此次上传的对象(或者数据块),示例性地,可以基于该存储器中各个主区块文件的剩余存储容量来选择存储用户此次上传的对象的主区块文件(例如,选择剩余存储容量最大的一个主区块文件作为存储用户此次上传的对象的主区块文件);将选取出的主区块文件的区块标识、以及该主区块文件所在的存储服务器的服务器标识发送给客户端,以指示客户端将用户上传的对象转发到该服务器标识对应的存储服务器(即本实施例中在后续提及到的第一存储服务器)上,从而由该存储服务器对用户上传的对象添加对象标识,并将添加了对象标识的对象写入到与该区块标识对应的主区块文件中。其中,存储服务器向用户依次上传的对象所添加的对象标识是从小到大连续递增的。
步骤三、当存储服务器将用户上传的对象写入至对应的主区块文件中后,该存储服务器将已写入的对象,以及主区块文件的区块标识转发到主区块文件对应的从区块文件所在存储服务器(即本实施例中在后续提及到的第二存储服务器)。以使得从区块文件所在存储服务器,将接收到的数据块写入到与接收到的主区块文件标识相同的从区块文件中。需要说明的是,存储服务器事先从控制端获取到每一主区块文件对应的从区块文件所在存储服务器的服务器标识。
另外,存储服务器中通常将对象写入至对应的区块文件的过程中,首先是将对象先写入至内存中,然后再在存储服务器运行的操作***的作用下,将内存中的数据刷新至磁盘中的区块文件中。
<方法实施例>
如图2所示,本实施例提供的一种数据同步方法,该方法应用于第一存储服务器,第一存储服务器用于存储主区块文件的数据块。
可以理解的是,虽然第一存储服务器还用于存储从区块文件的数据块,但是,本发明实施例中,第一存储服务器用于存储主区块文件的数据块,因此,该主区块文件关联的从区块文件即不能存储在第一存储服务器中。本申请中,采用第一存储服务器和第二存储服务器的描述,以将任一区块文件的主区块文件和从区块文件所在的存储服务器进行区分。另外,上述的数据块即为分布式存储***中的对象。
图2是本发明实施例提供的一种数据同步方法的流程图。
如图2所示,该方法包括如下S2100-S2500:
S2100、向第二存储服务器发送查询请求,以查询第二存储服务器中的第一标识值,第一标识值为第二存储服务器中与主区块文件的标识相同的从区块文件中数据块的最大标识值。
在一个实施例中,上述S2100的具体实现可以为:实时的向第二存储服务器发送查询请求,以查询第二存储服务器中的第一标识值。
在另一个实施例中,上述S2100的具体实现可以为如下的S2110:
S2110、按照第一时间间隔,定期向第二存储服务器发送查询请求,以查询所述第二存储服务器中的第一标识值。
在本实施例中,第一时间间隔可根据实际需求进行设置。在一个例子中,可以根据实际数据的上传和更新情况设置,示例性地,第一时间间隔可以为1s-60s中的任一个时间,例如,第一时间间隔可以为1s、5s、10s、15s、30s、1min中任一个。另外,通过按照第一时间间隔,定期向第二存储服务器发送查询请求的方式,可降低第一存储服务器的运算资源的浪费,此外,根据不同的应用和实际数据上传、更新需求来设施第一时间间隔,满足实际需求的同时,还可以降低存储服务器运算资源的浪费。
需要说明的是,每一主区块文件和从区块文件中写入的数据块的标识都是连续的,数据块的标识值中最大标识值对应的数据块是最新写入的,且最大标识值之前的标识值对应的数据块均已成功写入磁盘中。另外,第一存储服务器中在操作***的作用下,按照数据块的标识值从小到的大的顺序将内存中的数据块刷新至磁盘中区块文件中。
另外,第二存储服务器在掉电后重启的情况下,会造成第一存储服务器在向其转发数据块时不能接收,导致丢失的数据块,并且丢失的数据块对应的标识值是连续的。例如,若第二存储服务器中已经写入的数据块为数据块1、数据块2、数据块3、数据块4、……、数据块20。其中,“1”、“2”、“3”、“4”、……“20”指的是数据块的标识值。当第二存储服务器掉电后重启,第二存储服务器丢失的数据块为数据块20、数据块19、数据块18。因此,可能导致第一存储服务器中数据块的标识值与第二存储服务器中数据块的标识值不一致。
在一个实施例中,上述S2110的具体实现可通过如下S2111来实现:
S2111、在第一预设时间段之内,按照第一时间间隔,定期向第二存储服务器发送查询请求,以查询所述第二存储服务器中的第一标识值。
在本实施例中,上述的S2111中限定的第一预设时间段,可以为第二存储服务器掉电后重启至运行稳定的时间段。在一些实施方式中,第一预设时间段可以通过技术人员的经验值进行预先设置。在另一些实施方式中,可以统计大量存储服务器掉电重启至运行稳定的时间,进行数据建模,进而通过数学模型预测的时间段,将该时间段作为第一预设时间段。
示例性地,假设第一预设时间段为1min,第一时间间隔为15s,则在第一预设时间段内,第一存储服务器可以向第二存储服务器发送4次查询请求。需要说明的是,该示例中,第一预设时间段、第一时间间隔均为示例性的,本发明对此不作限制。
在本实施例中,在第一预设时间段之内,按照第一时间间隔,定期向第二存储服务器发送查询请求,以查询所述第二存储服务器中的第一标识值的方式,可在第二存储器内存中存在数据丢失可能性的时间段内,再执行发送查询请求的步骤。而无需在第二存储服务器运行稳定后,不再有内存中数据丢失时,执行发送查询请求的步骤。这样可避免第一存储服务器和第二存储服务器的运算资源的浪费。
S2200、接收第二存储服务器发送的第一标识值。
在本步骤中,第一存储服务器接收第二存储服务器响应于查询请求返回的第一标识值。例如,第二存储服务器当前的存储的数据块的最大标识值为20,则将20作为第一标识值返回给第一存储服务器。
S2300、比较第一标识值和第二标识值,第二标识值为第一存储服务器中主区块文件中数据块的最大标识值。
本发明实施例中,在第二存储服务器未出现数据丢失的情况下,第一标识值和第二标识值应该是相同的。但是如果第二存储服务器出现数据丢失,则第一标识值和第二标识值会不相同,示例性地,第二标识值大于第一标识值。
在本步骤中,第一存储服务器接收到第二存储服务器返回的第一标识值。第一存储服务器会将其存储的数据块的第二标识值与第一标识值进行比较。
S2400、当第一标识值小于第二标识值时,根据第一标识值确定第二服务器的从区块文件中丢失的数据块。
在本实施例中,若第一标识值小于第二标识值时,可以确定第二存储服务器中的从区块文件中数据块有丢失。
在本实施例中,上述S2400中的根据第一标识值确定第二服务器的从区块文件中丢失的数据块,可具体通过如下S2410来实现:
S2410、将主区块文件中、大于第一标识值且小于和等于第二标识值的所有标识值对应的数据块,确定为第二存储服务器的从区块文件中丢失的数据块。
例如,第一标识值为20,第二标识值为25,可以确定第二存储服务器中的标识值为21-25的数据块丢失。
在本发明另一些实施例中,若第一标识值等于第二标识值时,可以确定第二存储服务器中的从区块文件中的数据块没有丢失。
S2500、将丢失的数据块发送至第二存储服务器中,以同步主区块文件的数据块和从区块文件的数据块。
在本实施例中,第一存储服务器在将丢失的数据块发送至第二存储服务器中之后,第二存储服务器会将丢失数据块重新写入至从区块文件中,从而同步主区块文件和从区块文件的数据。
在一些实施例中,本步骤可以实现为,将主区块文件中的、大于第一标识值小于和等于第二标识值的所有标识值对应的数据块发送至第二存储服务器,从而同步主区块文件和与其对应的从区块文件的数据块。
举例来讲,第一标识值为20,第二标识为25,则大于第一标识值且小于和等于第二标识值的所有标识值对应的数据块可以包括标识值为21、22、23、24和25对应的数据块,在本步骤中,第一存储服务器将标识值为21、22、23、24和25对应的数据块发送给第二存储服务器,以使第二存储服务器将这些数据块存入对应的从区块文件。
在本实施例中,第一存储服务器向第二存储服务器发送查询请求,以查询第二存储服务器中的第一标识值;在接收到第二存储服务器发送的第一标识值之后,比较自身的第二标识值和第一标识值。在第一标识值小于第二标识值时,确定出第二存储服务器中的从区块文件中有数据块丢失。此时根据第一标识值确定第二存储服务去的从区块文件中丢失的数据块。最后将确定出的数据块发送至第二存储服务器中,由第二存储服务器将丢失的数据块写入至从区块文件中。这样,即使第二存储服务器在因掉电重启而有数据块丢失时,第二存储服务器中的从区块文件中的数据可以及时与第一存储服务器中的主区块文件中的数据同步。
此外,本发明中,第一存储服务器定时地向第二存储服务器发送查询请求,一方面可以节约第一存储服务器和第二存储服务器的运算资源,另一方面,还能够及时发现第二存储服务器中是否丢失数据,进而可以及时地进行数据同步,为分布式存储***的数据存储提供安全保障。
在一个实施例中,本实施例提供的数据同步方法在上述S2100之前还包括如下S2120和S2130:
S2120、确定第二预设时间段内主区块文件内是否写入新数据块。
S2130、在不存在的情况下,执行向第二存储服务器发送查询请求,以查询第二存储服务器中的第一标识值的步骤。
在本实施例中,若在第一时间段内主区块文件中写入新数据块,此时,第一存储服务器会将该新数据块转发至第二存储服务器中。若在第一时间段内,第二存储服务器掉电重启后有数据块丢失,在此情况下执行上述S2100时,第一主存储服务器将会重复的向第二存储服务器发送上述新数据块。因此,为了避免第一主存储服务器重复的向第二存储服务器发送上述新数据块,可执行上述的S2120。
在一个实施例中,在上一实施例的基础上,上述S2120还可通过如下S2121来实现:
S2121、响应于设定事件的触发,执行确定第二预设时间段内主区块文件内是否写入新数据块的操作。
在本实施例中设定事件可以为指示第一存储服务器执行,本实施例提供的包括上述S2120和S2130的数据同步方法的事件。基于此,在一个例子中,在第一存储服务器的显示界面上设置一个选择框,当该选择框处于选中状态,即设定事件被触发时,第一存储服务器可执行本实施例提供的包括上述S2120和S2130的数据同步方法。其中,可以检测来自用户的鼠标点击操作或者触摸操作的方式确定选择框是否处于选中状态。
在本实施例中,可进一步提高本实施例提供的数据同步方法的智能性。
在一个实施例中,在上述任一实施例的基础上,本实施例提供的数据同步方法还包括如下S2610-S2630:
S2610、当接收到待存储的数据块时,将待存储的数据块保存至内存中。
在本实施例中,上述的待存储的数据块为客户端上传的数据块。
S2620、按照第二时间间隔,将内存中的待存储的数据块定期刷新至主区块文件,其中,在主区块文件中,每个待存储的数据块获得对应的标识值。
在一个实施例中,第二时间间隔可以根据实际需求进行设置。示例性的,第二时间间隔可以为10s、20s等。在另一个实施例中,第二时间间隔可以为一个默认的时间间隔,例如为默认的10s。
在本实施例中,在第一存储服务器接收到待存储的数据块时,或者在第一存储服务器将接收到的待存储的数据块保存至内存时,第一存储服务器向该待存储的数据块添加标识,该标识对应于一个标识值。这样,每个待存储的数据块将获得对应的标识值。
需要说明的是,当第一存储服务器将待存储的数据块刷新至主区块文件后,该待存储的数据块将不会丢失。
S2630、将待存储的数据块转发至第二存储服务器中,以将待存储的数据块保存至第二存储服务器的从区块文件中,其中,在从区块文件中,每个待存储的数据块获得对应的标识值。
在本实施例中,在第一存储服务器在将待存储的数据块保存至内存中之后,或者在第一存储服务器在将待存储的数据块刷新至主区块文件之后,第一存储服务器将待存储的数据块转发至第二存储服务器中,以由第二存储服务器将接收到的待存储的数据块保存至从区块文件中。
在第二存储服务器接收到待存储的数据块时,或在第二存储服务器将接收到的待存储的数据块保存时,第二存储服务器为该待存储数据块添加标识,该标识对应于一个标识值。此时,每一个待存储数据块获得对应的标识值。
在一个实施例中,当第二存储服务器将接收到的待存储的数据块保存至从区块文件的过程可以为:将接收到的待存储的数据块存储在内存中;按照第三时间间隔将内存中的待存储的数据块定期刷新至从区块文件中。这样,该待存储的数据块将不会丢失。其中,第三时间间隔的说明可参见第二时间间隔的说明,这里不再赘述。
在本实施例中,由于第一存储服务器当接收到待存储的数据块时,将待存储的数据块保存至内存中。之后会按照第二时间间隔,将内存中的待存储的数据块定期刷新至主区块文件中。这样可降低因第一存储服务器掉电重启而导致数据块丢失的可能性。
<装置实施例>
如图3所示,本发明实施例还提供了一种数据同步装置30,该服务器中包括:查询模块31、接收模块32、比较模块33、确定模块34、发送模块35;其中:
查询模块31,用于向第二存储服务器发送查询请求,以查询所述第二存储服务器中的第一标识值,所述第一标识值为第二存储服务器中与所述主区块文件的标识相同的从区块文件中数据块的最大标识值;
接收模块32,用于接收所述第二存储服务器发送的所述第一标识值;
比较模块33,用于比较所述第一标识值与第二标识值,所述第二标识值为所述第一存储服务器中所述主区块文件中数据块的最大标识值;
确定模块34,用于当所述第一标识值小于所述第二标识值时,根据所述第一标识值确定所述第二存储服务器的所述从区块文件中丢失的数据块;
发送模块35,用于将所述丢失的数据块发送至所述第二存储服务器,以同步所述主区块文件的数据块和所述从区块文件的数据块。
在一个实施例中,发送模块35,具体用于:
按照第一时间间隔,定期向第二存储服务器发送查询请求,以查询所述第二存储服务器中的第一标识值。
在一个实施例中,发送模块35,还具体用于:在第一预设时间段之内,按照第一时间间隔,定期向第二存储服务器发送查询请求,以查询所述第二存储服务器中的第一标识值。
在一个实施例中,确定模块34,具体用于:将所述主区块文件中、大于所述第一标识值且小于和等于第二标识值的所有标识值对应的数据块,确定为所述第二存储服务器的所述从区块文件中丢失的数据块。
在一个实施例中,所述发送模块35,具体用于将所述主区块文件中、大于所述第一标识值且小于和等于第二标识值的所有标识值对应的数据块发送至第二存储服务器,以同步所述主区块文件的数据块和所述从区块文件的数据块。
在一个实施例中,查询模块31包括确定单元和查询单元。其中,确定单元,用于确定第二预设时间段内所述主区块文件内是否写入新数据块;
查询单元,用于在不存在的情况下,执行所述向第二存储服务器发送查询请求,以查询所述第二存储服务器中的第一标识值的步骤。
在一个实施例中,本实施例提供的数据同步装置30还包括响应模块,其中,响应模块,用于响应于设定事件的触发,执行所述确定第二预设时间段内所述主区块文件内是否写入新数据块的操作。
在一个实施例中,本实施例提供的数据同步装置30还包括刷新模块,所述刷新模块包括保存单元和刷新单元。
其中,保存单元,用于当接收到待存储的数据块时,将所述待存储的数据块保存至内存中;
刷新单元,用于按照第二时间间隔,将所述内存中的待存储的数据块定期刷新至所述主区块文件,其中,在所述主区块文件中,每个所述待存储的数据块获得对应的标识值;
所述发送模块,还用于将所述待存储的数据块转发至所述第二存储服务器中,以将所述待存储的数据块保存至所述第二存储服务器的从区块文件中,其中,在所述从区块文件中,每个所述待存储的数据块获得对应的标识值。
需要说明的是,本发明装置实施例中各模块的具体实现方式可以参见本发明方法实施例的相关内容,在此不再赘述。
<存储服务器>
如图4所示,本发明实施例还提供一种存储服务器40。该储服务器包括存储器41和处理器42。其中:
所述存储器41用于存储可执行指令;所述指令用于控制所述处理器42执行根据上述方法实施例中任一项所述的方法。
其中,存储服务器40可以为分布式对象存储***中的任一存储服务器。
<计算机可读存储介质>
在本实施例中,还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序在被处理器执行时,实现根据上述方法实施例中任一项所述的方法。
本发明可以是***、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(***)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人员来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。本发明的范围由所附权利要求来限定。
Claims (11)
1.一种数据同步方法,其特征在于,所述方法应用于第一存储服务器,所述第一存储服务器用于存储主区块文件的数据块,所述方法包括:
向第二存储服务器发送查询请求,以查询所述第二存储服务器中的第一标识值,所述第一标识值为第二存储服务器中从区块文件中数据块的最大标识值;
接收所述第二存储服务器发送的所述第一标识值;
比较所述第一标识值与第二标识值,所述第二标识值为所述第一存储服务器中所述主区块文件中数据块的最大标识值;
当所述第一标识值小于所述第二标识值时,根据所述第一标识值确定所述第二存储服务器的所述从区块文件中丢失的数据块;
将所述丢失的数据块发送至所述第二存储服务器,以同步所述主区块文件的数据块和所述从区块文件的数据块;
其中,每一主区块文件和从区块文件中写入的数据块的标识都是连续的,数据块的标识值中最大标识值对应的数据块是最新写入的,且最大标识值之前的标识值对应的数据块均已成功写入磁盘中。
2.根据权利要求1所述的方法,其特征在于,所述向第二存储服务器发送查询请求,以查询所述第二存储服务器中的第一标识值包括:
按照第一时间间隔,定期向第二存储服务器发送查询请求,以查询所述第二存储服务器中的第一标识值。
3.根据权利要求2所述的方法,其特征在于,所述按照第一时间间隔,定期向第二存储服务器发送查询请求,以查询所述第二存储服务器中的第一标识值,包括:
在第一预设时间段之内,按照第一时间间隔,定期向第二存储服务器发送查询请求,以查询所述第二存储服务器中的第一标识值。
4.根据权利要求1所述的方法,其特征在于,所述根据所述第一标识值确定所述第二存储服务器的所述从区块文件中丢失的数据块,包括:
将所述主区块文件中、大于所述第一标识值且小于和等于第二标识值的所有标识值对应的数据块,确定为所述第二存储服务器的所述从区块文件中丢失的数据块。
5.根据权利要求4所述的方法,其特征在于,所述将所述丢失的数据块发送至所述第二存储服务器,以同步所述主区块文件的数据块和所述从区块文件的数据块,包括:
将所述主区块文件中、大于所述第一标识值且小于和等于第二标识值的所有标识值对应的数据块发送至第二存储服务器,以同步所述主区块文件的数据块和所述从区块文件的数据块。
6.根据权利要求1所述的方法,其特征在于,所述向第二存储服务器发送查询请求,以查询所述第二存储服务器中的第一标识值之前,所述方法还包括:
确定第二预设时间段内所述主区块文件内是否写入新数据块;
在不存在的情况下,执行所述向第二存储服务器发送查询请求,以查询所述第二存储服务器中的第一标识值的步骤。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
响应于设定事件的触发,执行所述确定第二预设时间段内所述主区块文件内是否写入新数据块的操作。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当接收到待存储的数据块时,将所述待存储的数据块保存至内存中;
按照第二时间间隔,将所述内存中的待存储的数据块定期刷新至所述主区块文件,其中,在所述主区块文件中,每个所述待存储的数据块获得对应的标识值;
以及,
将所述待存储的数据块转发至所述第二存储服务器中,以将所述待存储的数据块保存至所述第二存储服务器的从区块文件中,其中,在所述从区块文件中,每个所述待存储的数据块获得对应的标识值。
9.一种数据同步装置,其特征在于,包括:
查询模块,用于向第二存储服务器发送查询请求,以查询所述第二存储服务器中的第一标识值,所述第一标识值为第二存储服务器中与主区块文件的标识相同的从区块文件中数据块的最大标识值;
接收模块,用于接收所述第二存储服务器发送的所述第一标识值;
比较模块,用于比较所述第一标识值与第二标识值,所述第二标识值为第一存储服务器中所述主区块文件中数据块的最大标识值;
确定模块,用于当所述第一标识值小于所述第二标识值时,根据所述第一标识值确定所述第二存储服务器的所述从区块文件中丢失的数据块;
发送模块,用于将所述丢失的数据块发送至所述第二存储服务器,以同步所述主区块文件的数据块和所述从区块文件的数据块;
其中,每一主区块文件和从区块文件中写入的数据块的标识都是连续的,数据块的标识值中最大标识值对应的数据块是最新写入的,且最大标识值之前的标识值对应的数据块均已成功写入磁盘中。
10.一种存储服务器,其特征在于,包括如权利要求9所述的数据同步装置;或者,包括:
处理器和存储器,所述存储器用于存储可执行的指令,所述指令用于控制所述处理器执行根据权利要求1-8中任一项所述的方法。
11.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机指令,当所述存储介质中的计算机指令由处理器执行时,实现如权利要求1-8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911051155.7A CN112749228B (zh) | 2019-10-31 | 2019-10-31 | 数据同步方法、装置、存储服务器及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911051155.7A CN112749228B (zh) | 2019-10-31 | 2019-10-31 | 数据同步方法、装置、存储服务器及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112749228A CN112749228A (zh) | 2021-05-04 |
CN112749228B true CN112749228B (zh) | 2024-01-26 |
Family
ID=75641413
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911051155.7A Active CN112749228B (zh) | 2019-10-31 | 2019-10-31 | 数据同步方法、装置、存储服务器及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112749228B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5594863A (en) * | 1995-06-26 | 1997-01-14 | Novell, Inc. | Method and apparatus for network file recovery |
WO2008085869A2 (en) * | 2007-01-07 | 2008-07-17 | Apple Inc. | Synchronization methods and systems |
CN102656565A (zh) * | 2009-10-26 | 2012-09-05 | 亚马逊技术股份有限公司 | 已复制数据的故障切换和恢复 |
CN102843264A (zh) * | 2012-09-21 | 2012-12-26 | 中国航空无线电电子研究所 | 高速串行总线网络中双主机的控制方法 |
EP2924953A1 (en) * | 2014-03-25 | 2015-09-30 | Thorsten Sprenger | Method and system for encrypted data synchronization for secure data management |
CN108304503A (zh) * | 2018-01-18 | 2018-07-20 | 阿里巴巴集团控股有限公司 | 一种数据的处理方法、装置及设备 |
CN109558421A (zh) * | 2018-10-29 | 2019-04-02 | 中国建设银行股份有限公司 | 基于缓存的数据处理方法、***、装置及存储介质 |
CN110059135A (zh) * | 2019-04-12 | 2019-07-26 | 阿里巴巴集团控股有限公司 | 一种数据同步方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10366024B2 (en) * | 2016-05-09 | 2019-07-30 | International Business Machines Corporation | Synchronous input/output computer system including hardware invalidation of synchronous input/output context |
-
2019
- 2019-10-31 CN CN201911051155.7A patent/CN112749228B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5594863A (en) * | 1995-06-26 | 1997-01-14 | Novell, Inc. | Method and apparatus for network file recovery |
WO2008085869A2 (en) * | 2007-01-07 | 2008-07-17 | Apple Inc. | Synchronization methods and systems |
CN102656565A (zh) * | 2009-10-26 | 2012-09-05 | 亚马逊技术股份有限公司 | 已复制数据的故障切换和恢复 |
CN102843264A (zh) * | 2012-09-21 | 2012-12-26 | 中国航空无线电电子研究所 | 高速串行总线网络中双主机的控制方法 |
EP2924953A1 (en) * | 2014-03-25 | 2015-09-30 | Thorsten Sprenger | Method and system for encrypted data synchronization for secure data management |
CN108304503A (zh) * | 2018-01-18 | 2018-07-20 | 阿里巴巴集团控股有限公司 | 一种数据的处理方法、装置及设备 |
CN109558421A (zh) * | 2018-10-29 | 2019-04-02 | 中国建设银行股份有限公司 | 基于缓存的数据处理方法、***、装置及存储介质 |
CN110059135A (zh) * | 2019-04-12 | 2019-07-26 | 阿里巴巴集团控股有限公司 | 一种数据同步方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112749228A (zh) | 2021-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10313761B2 (en) | Media playback across multiple devices | |
US10129264B2 (en) | Method and apparatus for implementing document sharing between user groups | |
US11190586B2 (en) | Cloud storage and synchronization of messages | |
US11188560B2 (en) | Synchronizing object in local object storage node | |
US9516110B2 (en) | Data replication across servers | |
CN113259161B (zh) | 应用管理方法及装置、电子设备和存储介质 | |
CN108932157B (zh) | 分布式处理任务的方法、***、电子设备和可读介质 | |
US20130262601A1 (en) | Method and device for sending and receiving emails | |
US20240031120A1 (en) | System and method for automatically synchronizing responses to conditions on devices | |
CN111694857A (zh) | 存储资源数据的方法、装置、电子设备及计算机可读介质 | |
CN111488243B (zh) | MongoDB数据库的备份、恢复方法、装置、电子设备及存储介质 | |
CN105162682A (zh) | 一种实现离线状态定时推送消息的方法 | |
US10938633B2 (en) | Facilitating resilient and fault tolerant asynchronous messaging | |
EP2833602A1 (en) | Shared data de-publication method and system | |
CN113672748A (zh) | 多媒体信息播放方法及装置 | |
CN109213955B (zh) | 数据处理方法及相关设备 | |
US20180198837A1 (en) | Streaming api subscription without loss of events | |
CN114637599A (zh) | 云资源管理方法、装置、电子设备及可读存储介质 | |
WO2021093735A1 (zh) | 分布式存储***的数据同步方法、装置、设备及存储介质 | |
CN112749228B (zh) | 数据同步方法、装置、存储服务器及存储介质 | |
CN107346217B (zh) | 一种云硬盘管理方法、云计算管理平台及虚拟化平台 | |
WO2024061199A1 (zh) | 一种云剪贴板的实现方法、设备、***及存储介质 | |
CN114816225A (zh) | 存储集群的管理方法、装置、电子设备及存储介质 | |
CN110445869B (zh) | 一种基于分布式订阅的内容发布方法、终端及服务器 | |
CN113778527A (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 |