CN112749228B - Data synchronization method, device, storage server and storage medium - Google Patents
Data synchronization method, device, storage server and storage medium 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 60
- 238000010586 diagram Methods 0.000 description 14
- 238000012545 processing Methods 0.000 description 10
- 238000004590 computer program Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 230000004044 response Effects 0.000 description 6
- 230000001360 synchronised effect Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 239000002699 waste material Substances 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 239000000835 fiber Substances 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
- 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
- 230000003287 optical effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001052 transient 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
本发明公开了一种数据同步方法、装置、存储服务器及存储介质。其中,方法应用于第一存储服务器,第一存储服务器用于存储主区块文件的数据块,该方法包括:向第二存储服务器发送查询请求,以查询第二存储服务器中的第一标识值,第一标识值为第二存储服务器中与主区块文件的标识相同的从区块文件中数据块的最大标识值;接收第二存储服务器发送的第一标识值;比较第一标识值与第二标识值,第二标识值为第一存储服务器中主区块文件中数据块的最大标识值;当第一标识值小于第二标识值时,根据第一标识值确定第二存储服务器的从区块文件中丢失的数据块;将丢失的数据块发送至第二存储服务器,以同步主区块文件的数据块和从区块文件的数据块。
The invention discloses a data synchronization method, device, storage server and storage medium. Wherein, the method is applied to a first storage server, and the first storage server is used to store data blocks of the main block file. The method includes: sending a query request to the second storage server to query the first identification value in the second storage server. , the first identification value is the maximum identification value of the data block in the slave block file in the second storage server that is the same as the identification of the main block file; receive the first identification value sent by the second storage server; compare the first identification value with The second identification value is the maximum identification value of the data block in the main block file in the first storage server; when the first identification value is less than the second identification value, the second identification value of the second storage server is determined based on the first identification value. Missing data blocks from the chunk file; send the missing data blocks to the secondary storage server to synchronize the data blocks of the master chunk file and the data blocks of the slave chunk file.
Description
技术领域Technical field
本发明涉及通信技术领域,更具体地,涉及一种数据同步方法、一种数据同步装置、一种存储服务器、一种计算机可读存储介质。The present invention relates to the field of communication technology, and more specifically, to a data synchronization method, a data synchronization device, a storage server, and a computer-readable storage medium.
背景技术Background technique
在分布式对象存储系统中,存储服务器上存储有多个区块文件。每个区块文件具有唯一的区块标识(Block id)。并且每个区块文件对应有三个副本(Replica),该3个副本中包含1个主副本和2个从副本。每个副本存储在不同的存储服务器中,且对应的区块标识相同。In a distributed object storage system, multiple block files are stored on the storage server. Each block file has a unique block identification (Block id). And each block file corresponds to three copies (Replica), and the three copies include 1 master copy and 2 slave copies. Each copy is stored in a different storage server, and the corresponding block ID is the same.
存储服务器在对其中的一个作为主副本的区块文件进行写操作时,首先将待写入的数据块写入至该主副本的区块文件中。在主副本的区块文件写入完成之后,将该待写入的数据块转发至对应的两个作为从副本的区块文件所在的存储服务器。由从副本的区块文件所在的存储服务器将待写入的数据块写入至对应的区块文件中。基于此,使得三个副本具有相同的数据,即使得三个副本的数据同步。When the storage server performs a write operation on one of the block files serving as the primary copy, it first writes the data blocks to be written into the block file of the primary copy. After the writing of the block file of the master copy is completed, the data block to be written is forwarded to the corresponding two storage servers where the block files of the slave copy are located. The data block to be written is written into the corresponding block file by the storage server where the block file of the slave copy is located. Based on this, the three copies have the same data, that is, the data of the three copies are synchronized.
但是,由于作为从副本的区块文件所在的存储服务器,在将待写入数据块写入对应的区块文件中时,首先是将待写入数据写入内存中,然后再在存储服务器运行的操作系统的作用下,将内存中的待写入数据块刷新至磁盘中对应的区块文件中。因此,作为从副本的区块文件所在的存储服务器掉电后,该存储服务器的内存中未来得及刷新至磁盘中的数据存在丢失的可能性。基于此,当该存储服务重启后,作为从副本的区块文件中的数据将无法和对应的作为主副本的区块文件中的数据相同,即三个副本的数据不同步。However, since the storage server where the block file of the slave copy is located, when writing the data block to be written into the corresponding block file, the data to be written is first written into the memory and then run on the storage server. Under the influence of the operating system, the data blocks to be written in the memory are refreshed to the corresponding block files in the disk. Therefore, after the storage server where the block file of the slave copy is located is powered off, there is a possibility that the data in the memory of the storage server that has not been refreshed to the disk will be lost. Based on this, when the storage service is restarted, the data in the block file as the slave copy will not be the same as the data in the corresponding block file as the master copy, that is, the data in the three copies will be out of sync.
发明内容Contents of the invention
本发明的一个目的是提供一种新的数据同步方法的技术方案。An object of the present invention is to provide a technical solution for a new data synchronization method.
根据本发明的第一方面,提供了一种数据同步方法,所述方法应用于第一存储服务器,所述第一存储服务器用于存储主区块文件的数据块,所述方法包括:According to a first aspect of the present invention, a data synchronization method is provided. The method is applied to a first storage server, and the first storage server is used to store data blocks of a main block file. The method includes:
向第二存储服务器发送查询请求,以查询所述第二存储服务器中的第一标识值,所述第一标识值为第二存储服务器中与所述主区块文件的标识相同的从区块文件中数据块的最大标识值;Send a query request to the second storage server to query the first identification value in the second storage server. The first identification value is the slave block in the second storage server that has the same identification as the main block file. The maximum identification value of data blocks in the file;
接收所述第二存储服务器发送的所述第一标识值;Receive the first identification value sent by the second storage server;
比较所述第一标识值与第二标识值,所述第二标识值为所述第一存储服务器中所述主区块文件中数据块的最大标识值;Comparing the first identification value with the second identification value, the second identification value is the maximum identification value of the data block in the main block file in the first storage server;
当所述第一标识值小于所述第二标识值时,根据所述第一标识值确定所述第二存储服务器的所述从区块文件中丢失的数据块;When the first identification value is less than the second identification value, determine the data block lost from the block file of the second storage server according to the first identification value;
将所述丢失的数据块发送至所述第二存储服务器,以同步所述主区块文件的数据块和所述从区块文件的数据块。The missing data blocks are sent to the second storage server to synchronize the data blocks of the master chunk file and the data blocks of the slave chunk file.
可选的,所述向第二存储服务器发送查询请求,以查询所述第二存储服务器中的第一标识值包括:Optionally, sending a query request to the second storage server to query the first identification value in the second storage server includes:
按照第一时间间隔,定期向第二存储服务器发送查询请求,以查询所述第二存储服务器中的第一标识值。According to the first time interval, a query request is periodically sent to the second storage server to query the first identification value in the second storage server.
可选的,所述按照第一时间间隔,定期向第二存储服务器发送查询请求,以查询所述第二存储服务器中的第一标识值,包括:Optionally, periodically sending query requests to the second storage server according to the first time interval to query the first identification value in the second storage server, including:
在第一预设时间段之内,按照第一时间间隔,定期向第二存储服务器发送查询请求,以查询所述第二存储服务器中的第一标识值。Within the first preset time period, query requests are periodically sent to the second storage server according to the first time interval to query the first identification value in the second storage server.
可选的,所述根据所述第一标识值确定所述第二存储服务器的所述从区块文件中丢失的数据块,包括:Optionally, determining the data blocks lost from the block file of the second storage server according to the first identification value includes:
将所述主区块文件中、大于所述第一标识值且小于和等于第二标识值的所有标识值对应的数据块,确定为所述第二存储服务器的所述从区块文件中丢失的数据块。Determine the data blocks corresponding to all identification values in the main block file that are greater than the first identification value and less than and equal to the second identification value to be missing from the secondary block file of the second storage server. data block.
可选的,所述将所述丢失的数据块发送至所述第二存储服务器,以同步所述主区块文件的数据块和所述从区块文件的数据块,包括:Optionally, sending the lost data blocks to the second storage server to synchronize the data blocks of the master block file and the data blocks of the slave block file includes:
将所述主区块文件中、大于所述第一标识值且小于和等于第二标识值的所有标识值对应的数据块发送至第二存储服务器,以同步所述主区块文件的数据块和所述从区块文件的数据块。Send data blocks corresponding to all identification values in the main block file that are greater than the first identification value and less than and equal to the second identification value to the second storage server to synchronize the data blocks of the main block file and the data blocks from the block file.
可选的,所述向第二存储服务器发送查询请求,以查询所述第二存储服务器中的第一标识值之前,所述方法还包括:Optionally, before sending a query request to the second storage server to query the first identification value in the second storage server, the method further includes:
确定第二预设时间段内所述主区块文件内是否写入新数据块;Determine whether a new data block is written in the main block file within the second preset time period;
在不存在的情况下,执行所述向第二存储服务器发送查询请求,以查询所述第二存储服务器中的第一标识值的步骤。If it does not exist, perform the step of sending a query request to the second storage server to query the first identification value in the second storage server.
可选的,所述方法还包括:Optionally, the method also includes:
响应于设定事件的触发,执行所述确定第二预设时间段内所述主区块文件内是否写入新数据块的操作。In response to the triggering of the set event, the operation of determining whether a new data block is written in the main block file within a second preset time period is performed.
可选的,所述方法还包括:Optionally, the method also includes:
当接收到待存储的数据块时,将所述待存储的数据块保存至内存中;When a data block to be stored is received, the data block to be stored is saved into the memory;
按照第二时间间隔,将所述内存中的待存储的数据块定期刷新至所述主区块文件,其中,在所述主区块文件中,每个所述待存储的数据块获得对应的标识值;According to the second time interval, the data blocks to be stored in the memory are regularly refreshed to the main block file, wherein in the main block file, each of the data blocks to be stored obtains a corresponding identification value;
以及,as well as,
将所述待存储的数据块转发至所述第二存储服务器中,以将所述待存储的数据块保存至所述第二存储服务器的从区块文件中,其中,在所述从区块文件中,每个所述待存储的数据块获得对应的标识值。Forward the data block to be stored to the second storage server to save the data block to be stored in a slave block file of the second storage server, wherein in the slave block file In the file, each data block to be stored obtains a corresponding identification value.
根据本发明的第二方面,提供了一种数据同步装置,包括:According to a second aspect of the present invention, a data synchronization device is provided, including:
查询模块,用于向第二存储服务器发送查询请求,以查询所述第二存储服务器中的第一标识值,所述第一标识值为第二存储服务器中与所述主区块文件的标识相同的从区块文件中数据块的最大标识值;A query module, configured to send a query request to the second storage server to query the first identification value in the second storage server, where the first identification value is the identification of the main block file in the second storage server. The maximum identification value of the data block in the same slave block file;
接收模块,用于接收所述第二存储服务器发送的所述第一标识值;A receiving module, configured to receive the first identification value sent by the second storage server;
比较模块,用于比较所述第一标识值与第二标识值,所述第二标识值为所述第一存储服务器中所述主区块文件中数据块的最大标识值;A comparison module, configured to compare the first identification value with the second identification value, where the second identification value is the maximum identification value of the data block in the main block file in the first storage server;
确定模块,用于当所述第一标识值小于所述第二标识值时,根据所述第一标识值确定所述第二存储服务器的所述从区块文件中丢失的数据块;Determining module, configured to determine the data blocks lost from the block file of the second storage server according to the first identification value when the first identification value is less than the second identification value;
发送模块,用于将所述丢失的数据块发送至所述第二存储服务器,以同步所述主区块文件的数据块和所述从区块文件的数据块。A sending module, configured to send the lost data blocks to the second storage server to synchronize the data blocks of the master block file and the data blocks of the slave block file.
根据本发明的第三方面,提供了一种存储服务器,包括如第二方面所述的数据同步装置;或者,包括:According to a third aspect of the present invention, a storage server is provided, including the data synchronization device as described in the second aspect; or, including:
处理器和存储器,所述存储器用于存储可执行的指令,所述指令用于控制所述处理器执行根据第一方面中任一项所述的方法。A processor and a memory, the memory being used to store executable instructions, the instructions being used to control the processor to execute the method according to any one of the first aspects.
根据本发明的第四方面,提供一种计算机可读存储介质,所述存储介质存储有计算机指令,当所述存储介质中的计算机指令由处理器执行时,实现如第一方面任一项所述的方法。According to a fourth aspect of the present invention, a computer-readable storage medium is provided. The storage medium stores computer instructions. When the computer instructions in the storage medium are executed by a processor, any one of the first aspects is implemented. method described.
在本实施例中,第一存储服务器向第二存储服务器发送查询请求,以查询第二存储服务器中的第一标识值;在接收到第二存储服务器发送的第一标识值之后,比较自身的第二标识值和第一标识值。在第一标识值小于第二标识值时,确定出第二存储服务器中的从区块文件中有数据块丢失。此时根据第一标识值确定第二存储服务去的从区块文件中丢失的数据块。最后将确定出的数据块发送至第二存储服务器中,由第二存储服务器将丢失的数据块写入至从区块文件中。这样,即使第二存储服务器在因掉电重启而有数据块丢失时,第二存储服务器中的从区块文件中的数据可以及时与第一存储服务器中的主区块文件中的数据同步。In this embodiment, the first storage server sends a query request to the second storage server to query the first identification value in the second storage server; after receiving the first identification value sent by the second storage server, it compares its own The second identification value and the first identification value. When the first identification value is less than the second identification value, it is determined that a data block is lost in the secondary block file in the second storage server. At this time, the data blocks lost from the block file sent by the second storage service are determined according to the first identification value. Finally, the determined data blocks are sent to the second storage server, and the second storage server writes the lost data blocks into the slave block file. In this way, even if the second storage server loses data blocks due to power failure and restart, the data in the slave block file in the second storage server can be synchronized in time with the data in the master block file in the first storage server.
通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。Other features of the invention and its advantages will become apparent from the following detailed description of exemplary embodiments of the invention with reference to the accompanying drawings.
附图说明Description of the drawings
被结合在说明书中并构成说明书的一部分的附图示出了本发明的实施例,并且连同其说明一起用于解释本发明的原理。The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments of the invention and together with the description, serve to explain the principles of the invention.
图1是本发明实施例提供的一种存储服务器的硬件配置的框图;Figure 1 is a block diagram of the hardware configuration of a storage server provided by an embodiment of the present invention;
图2是本发明实施例提供的一种数据同步方法的流程图。Figure 2 is a flow chart of a data synchronization method provided by an embodiment of the present invention.
图3是本发明实施例提供的一种数据同步装置的结构示意图;Figure 3 is a schematic structural diagram of a data synchronization device provided by an embodiment of the present invention;
图4是本发明实施例提供的一种存储服务器的结构示意图。Figure 4 is a schematic structural diagram of a storage server provided by an embodiment of the present invention.
具体实施方式Detailed ways
现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。Various exemplary embodiments of the present invention will now be described in detail with reference to the accompanying drawings. It should be noted that the relative arrangement of components and steps, numerical expressions and numerical values set forth in these examples do not limit the scope of the invention unless otherwise specifically stated.
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。The following description of at least one exemplary embodiment is merely illustrative in nature and is in no way intended to limit the invention, its application or uses.
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。Techniques, methods and devices known to those of ordinary skill in the relevant art may not be discussed in detail, but where appropriate, such techniques, methods and devices should be considered a part of the specification.
在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。In all examples shown and discussed herein, any specific values are to be construed as illustrative only and not as limiting. Accordingly, other examples of the exemplary embodiments may have different values.
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。It should be noted that similar reference numerals and letters refer to similar items in the following figures, so that once an item is defined in one figure, it does not need further discussion in subsequent figures.
<硬件配置><hardware configuration>
图1是本发明实施例提供的存储服务器的硬件配置的框图。Figure 1 is a block diagram of the hardware configuration of a storage server provided by an embodiment of the present invention.
存储服务器1000可以包括处理器1100、存储器1200、接口装置1300、通信装置1400、显示装置1500、输入装置1600、扬声器1700、麦克风1800,等等。其中,处理器1100可以是中央处理器CPU、微处理器MCU等。存储器1200例如包括ROM(只读存储器)、RAM(随机存取存储器)、诸如硬盘的非易失性存储器等。接口装置1300例如包括USB接口、耳机接口等。通信装置1400例如能够进行有线或无线通信。显示装置1500例如是液晶显示屏、触摸显示屏等。输入装置1600例如可以包括触摸屏、键盘等。用户可以通过扬声器1700和麦克风1800输入/输出语音信息。The storage server 1000 may include a processor 1100, a memory 1200, an interface device 1300, a communication device 1400, a display device 1500, an input device 1600, a speaker 1700, a microphone 1800, and the like. The processor 1100 may be a central processing unit (CPU), a microprocessor (MCU), or the like. The memory 1200 includes, for example, ROM (Read Only Memory), RAM (Random Access Memory), nonvolatile memory such as a hard disk, and the like. The interface device 1300 includes, for example, a USB interface, a headphone interface, and the like. The communication device 1400 is capable of wired or wireless communication, for example. The display device 1500 is, for example, a liquid crystal display screen, a touch display screen, or the like. The input device 1600 may include, for example, a touch screen, a keyboard, or the like. The user can input/output voice information through the speaker 1700 and the microphone 1800.
尽管在图1中对存储服务器1000均示出了多个装置,但是,本发明可以仅涉及其中的部分装置,例如,存储服务器1000中的存储器1200和处理器1100,本发明提供的数据同步的方法可以例如采用可执行指令的方式存储至存储器1200中,以及处理器1100调用该可执行指令以执行本发明的数据同步的方法。Although multiple devices are shown for the storage server 1000 in Figure 1, the present invention may only involve some of the devices, such as the memory 1200 and the processor 1100 in the storage server 1000. The data synchronization provided by the present invention The method may, for example, be stored in the memory 1200 in the form of an executable instruction, and the processor 1100 calls the executable instruction to perform the data synchronization method of the present invention.
在上述描述中,技术人员可以根据本发明所公开方案设计指令。指令如何控制处理器进行操作,这是本领域公知,故在此不再详细描述。In the above description, skilled persons can design instructions according to the solutions disclosed in the present invention. How instructions control the processor to operate is well known in the art and will not be described in detail here.
<系统><system>
本发明提供的数据同步方法,应用于分布式对象存储系统。其中,分布式对象存储系统中包括两个以上存储服务器。每一存储服务器的磁盘中存储有多个定长的区块文件(通常为容量GB级别,且为物理意义上的一个文件)。且每一个区块文件均具有对应的区块标识,以及每一区块文件对应一个角色标识,该角色标识用于将区块文件区分为主区块文件(即作为主副本的区块文件)和从区块文件(即作为从副本的区块文件)。另外,每一个区块文件用于存储用户上传的对象。可以理解的是,对象即为用户上传的一个数据块。该数据块可以为一张图片、一段文字等。The data synchronization method provided by the present invention is applied to distributed object storage systems. Among them, the distributed object storage system includes more than two storage servers. The disk of each storage server stores multiple fixed-length block files (usually with a capacity of GB level, and is a file in the physical sense). And each block file has a corresponding block identifier, and each block file corresponds to a role identifier. This role identifier is used to distinguish the block file from the main block file (that is, the block file that serves as the master copy) and slave block files (that is, block files that serve as slave copies). In addition, each block file is used to store objects uploaded by users. It can be understood that the object is a data block uploaded by the user. The data block can be a picture, a piece of text, etc.
对于主区块文件来说,主区块文件所在的存储服务器会将接收到的对象写入指定的主区块文件中。写入完毕之后,然后再将接收到的对象同步至该主区块文件对应的从区块文件所在的存储服务器中。由该主区块文件对应的从区块文件所在的存储服务器将接收到的对象,写入到该对应的从区块文件中。For the main block file, the storage server where the main block file is located will write the received object to the specified main block file. After the writing is completed, the received object is synchronized to the storage server where the slave block file corresponding to the master block file is located. The storage server where the slave block file corresponding to the master block file is located writes the received object into the corresponding slave block file.
需要说明的是,主区块文件和从区块文件的区块标识相同,主区块文件所在的存储服务器,与主区块文件对应的从区块文件所在的存储服务器是相互独立的,以及主区块文件中对象需与对应的从区块文件中的对象保持一致。It should be noted that the block identifiers of the master block file and the slave block file are the same. The storage server where the master block file is located and the storage server where the slave block file corresponding to the master block file is located are independent of each other, and The objects in the master block file must be consistent with the objects in the corresponding slave block file.
另外,分布式对象存储系统中通常还会包括客户端以及控制端。其中,客户端用于接收用户上传的数据。在一些实施方式中,客户端可以用于当用户上传的数据过大时,将该数据进行切分处理,例如切分为多个数据块(或者对象)。客户端还可以用于读取操作,例如,向存储服务器发送数据读取请求,以从存储服务器读取相应的数据,以提供给用户。客户端还可以用于删除数据操作。In addition, distributed object storage systems usually include clients and control terminals. Among them, the client is used to receive data uploaded by users. In some implementations, the client can be used to split the data uploaded by the user into multiple data blocks (or objects) when the data is too large. The client can also be used for read operations, for example, sending a data read request to the storage server to read the corresponding data from the storage server to provide it to the user. The client can also be used for delete data operations.
控制端监控存储服务器的磁盘的剩余存储容量、存储服务器中主区块文件的剩余存储容量、监控客户端是否上传对象。同时,控制端会记录每一存储服务器的磁盘中存储的主区块文件和从区块文件的区块标识,以及记录每一主区块文件,以及对应的从区块文件所在的存储服务器的服务器标识。The control terminal monitors the remaining storage capacity of the storage server's disk, the remaining storage capacity of the main block file in the storage server, and monitors whether the client uploads objects. At the same time, the control end will record the block identifiers of the master block file and slave block file stored in the disk of each storage server, as well as record the block identifiers of each master block file and the storage server where the corresponding slave block file is located. Server ID.
另外,分布式对象存储系统实现数据同步的过程为:In addition, the process of data synchronization in a distributed object storage system is as follows:
步骤一、用户通过客户端上传对象;客户端接收到用户上传对象,在该对象过大时(例如,大于了任一个区块文件的大小),可以对对象进行切分。反之,如果小于区块文件的大小,可以不对对象进行切分处理。Step 1: The user uploads the object through the client; the client receives the object uploaded by the user, and when the object is too large (for example, larger than the size of any block file), the object can be segmented. On the contrary, if it is smaller than the size of the block file, the object may not be split.
步骤二、控制端在检测到客户端有用户上传的对象时,可以从分布式对象存储系统的所有存储服务器中选取出一个存储服务器,例如,可以基于存储服务器的磁盘的剩余存储容量来选取存储服务器;在选取出存储服务器后,进一步从该存储服务器中选择一个主区块文件作为存储用户此次上传的对象的主区块文件,以存储用户此次上传的对象(或者数据块),示例性地,可以基于该存储器中各个主区块文件的剩余存储容量来选择存储用户此次上传的对象的主区块文件(例如,选择剩余存储容量最大的一个主区块文件作为存储用户此次上传的对象的主区块文件);将选取出的主区块文件的区块标识、以及该主区块文件所在的存储服务器的服务器标识发送给客户端,以指示客户端将用户上传的对象转发到该服务器标识对应的存储服务器(即本实施例中在后续提及到的第一存储服务器)上,从而由该存储服务器对用户上传的对象添加对象标识,并将添加了对象标识的对象写入到与该区块标识对应的主区块文件中。其中,存储服务器向用户依次上传的对象所添加的对象标识是从小到大连续递增的。Step 2: When the control terminal detects that the client has an object uploaded by the user, it can select a storage server from all storage servers in the distributed object storage system. For example, the storage server can be selected based on the remaining storage capacity of the disk of the storage server. Server; after selecting the storage server, further select a main block file from the storage server as the main block file to store the object (or data block) uploaded by the user this time, example Optionally, the main block file that stores the object uploaded by the user this time can be selected based on the remaining storage capacity of each main block file in the memory (for example, select the main block file with the largest remaining storage capacity as the main block file that stores the user's current uploaded object). The main block file of the uploaded object); send the block ID of the selected main block file and the server ID of the storage server where the main block file is located to the client to instruct the client to upload the object uploaded by the user. Forwarded to the storage server corresponding to the server identifier (that is, the first storage server mentioned later in this embodiment), so that the storage server adds an object identifier to the object uploaded by the user, and adds the object identifier to the object Write to the main block file corresponding to the block ID. Among them, the object identifiers added by the storage server to the objects uploaded by the user in sequence increase continuously from small to large.
步骤三、当存储服务器将用户上传的对象写入至对应的主区块文件中后,该存储服务器将已写入的对象,以及主区块文件的区块标识转发到主区块文件对应的从区块文件所在存储服务器(即本实施例中在后续提及到的第二存储服务器)。以使得从区块文件所在存储服务器,将接收到的数据块写入到与接收到的主区块文件标识相同的从区块文件中。需要说明的是,存储服务器事先从控制端获取到每一主区块文件对应的从区块文件所在存储服务器的服务器标识。Step 3: When the storage server writes the object uploaded by the user into the corresponding main block file, the storage server forwards the written object and the block identifier of the main block file to the corresponding main block file. From the storage server where the block file is located (that is, the second storage server mentioned later in this embodiment). This causes the storage server where the slave block file is located to write the received data block into the slave block file with the same identifier as the received master block file. It should be noted that the storage server obtains in advance from the control terminal the server identifier of the storage server where the slave block file corresponding to each master block file is located.
另外,存储服务器中通常将对象写入至对应的区块文件的过程中,首先是将对象先写入至内存中,然后再在存储服务器运行的操作系统的作用下,将内存中的数据刷新至磁盘中的区块文件中。In addition, in the process of writing objects to the corresponding block files in the storage server, the object is first written into the memory, and then the data in the memory is refreshed under the action of the operating system running on the storage server. to a block file on disk.
<方法实施例><Method Example>
如图2所示,本实施例提供的一种数据同步方法,该方法应用于第一存储服务器,第一存储服务器用于存储主区块文件的数据块。As shown in Figure 2, this embodiment provides a data synchronization method, which is applied to a first storage server, and the first storage server is used to store data blocks of the main block file.
可以理解的是,虽然第一存储服务器还用于存储从区块文件的数据块,但是,本发明实施例中,第一存储服务器用于存储主区块文件的数据块,因此,该主区块文件关联的从区块文件即不能存储在第一存储服务器中。本申请中,采用第一存储服务器和第二存储服务器的描述,以将任一区块文件的主区块文件和从区块文件所在的存储服务器进行区分。另外,上述的数据块即为分布式存储系统中的对象。It can be understood that although the first storage server is also used to store data blocks of the slave block file, in this embodiment of the present invention, the first storage server is used to store data blocks of the main block file. Therefore, the main area The slave block file associated with the block file cannot be stored in the first storage server. In this application, the description of the first storage server and the second storage server is used to distinguish the storage server where the master block file and the slave block file of any block file are located. In addition, the above data blocks are objects in the distributed storage system.
图2是本发明实施例提供的一种数据同步方法的流程图。Figure 2 is a flow chart of a data synchronization method provided by an embodiment of the present invention.
如图2所示,该方法包括如下S2100-S2500:As shown in Figure 2, the method includes the following S2100-S2500:
S2100、向第二存储服务器发送查询请求,以查询第二存储服务器中的第一标识值,第一标识值为第二存储服务器中与主区块文件的标识相同的从区块文件中数据块的最大标识值。S2100. Send a query request to the second storage server to query the first identification value in the second storage server. The first identification value is the data block in the slave block file in the second storage server that has the same identification as the main block file. The maximum identification value.
在一个实施例中,上述S2100的具体实现可以为:实时的向第二存储服务器发送查询请求,以查询第二存储服务器中的第一标识值。In one embodiment, the specific implementation of the above S2100 may be: sending a query request to the second storage server in real time to query the first identification value in the second storage server.
在另一个实施例中,上述S2100的具体实现可以为如下的S2110:In another embodiment, the specific implementation of the above S2100 may be the following S2110:
S2110、按照第一时间间隔,定期向第二存储服务器发送查询请求,以查询所述第二存储服务器中的第一标识值。S2110. According to the first time interval, periodically send a query request to the second storage server to query the first identification value in the second storage server.
在本实施例中,第一时间间隔可根据实际需求进行设置。在一个例子中,可以根据实际数据的上传和更新情况设置,示例性地,第一时间间隔可以为1s-60s中的任一个时间,例如,第一时间间隔可以为1s、5s、10s、15s、30s、1min中任一个。另外,通过按照第一时间间隔,定期向第二存储服务器发送查询请求的方式,可降低第一存储服务器的运算资源的浪费,此外,根据不同的应用和实际数据上传、更新需求来设施第一时间间隔,满足实际需求的同时,还可以降低存储服务器运算资源的浪费。In this embodiment, the first time interval can be set according to actual requirements. In one example, it can be set according to the actual data upload and update situation. For example, the first time interval can be any time from 1s to 60s. For example, the first time interval can be 1s, 5s, 10s, or 15s. , 30s, 1min any one. In addition, by regularly sending query requests to the second storage server according to the first time interval, the waste of computing resources of the first storage server can be reduced. In addition, the first storage server can be configured according to different applications and actual data upload and update requirements. The time interval can not only meet actual needs, but also reduce the waste of storage server computing resources.
需要说明的是,每一主区块文件和从区块文件中写入的数据块的标识都是连续的,数据块的标识值中最大标识值对应的数据块是最新写入的,且最大标识值之前的标识值对应的数据块均已成功写入磁盘中。另外,第一存储服务器中在操作系统的作用下,按照数据块的标识值从小到的大的顺序将内存中的数据块刷新至磁盘中区块文件中。It should be noted that the identifiers of each main block file and the data blocks written in the slave block file are consecutive. The data block corresponding to the largest identifier value among the identifier values of the data blocks is the latest written, and the largest The data blocks corresponding to the identification value before the identification value have been successfully written to the disk. In addition, under the action of the operating system, the first storage server refreshes the data blocks in the memory to the block file in the disk in order of the identification values of the data blocks from small to large.
另外,第二存储服务器在掉电后重启的情况下,会造成第一存储服务器在向其转发数据块时不能接收,导致丢失的数据块,并且丢失的数据块对应的标识值是连续的。例如,若第二存储服务器中已经写入的数据块为数据块1、数据块2、数据块3、数据块4、……、数据块20。其中,“1”、“2”、“3”、“4”、……“20”指的是数据块的标识值。当第二存储服务器掉电后重启,第二存储服务器丢失的数据块为数据块20、数据块19、数据块18。因此,可能导致第一存储服务器中数据块的标识值与第二存储服务器中数据块的标识值不一致。In addition, when the second storage server is restarted after a power failure, the first storage server may not be able to receive data blocks when forwarding them to it, resulting in lost data blocks, and the identification values corresponding to the lost data blocks are continuous. For example, if the data blocks that have been written in the second storage server are data block 1, data block 2, data block 3, data block 4, ..., data block 20. Among them, "1", "2", "3", "4", ... "20" refer to the identification value of the data block. When the second storage server is powered off and restarted, the data blocks lost by the second storage server are data block 20, data block 19, and data block 18. Therefore, the identification value of the data block in the first storage server may be inconsistent with the identification value of the data block in the second storage server.
在一个实施例中,上述S2110的具体实现可通过如下S2111来实现:In one embodiment, the specific implementation of the above S2110 can be achieved through the following S2111:
S2111、在第一预设时间段之内,按照第一时间间隔,定期向第二存储服务器发送查询请求,以查询所述第二存储服务器中的第一标识值。S2111. Within the first preset time period, regularly send query requests to the second storage server according to the first time interval to query the first identification value in the second storage server.
在本实施例中,上述的S2111中限定的第一预设时间段,可以为第二存储服务器掉电后重启至运行稳定的时间段。在一些实施方式中,第一预设时间段可以通过技术人员的经验值进行预先设置。在另一些实施方式中,可以统计大量存储服务器掉电重启至运行稳定的时间,进行数据建模,进而通过数学模型预测的时间段,将该时间段作为第一预设时间段。In this embodiment, the first preset time period defined in the above-mentioned S2111 may be a time period during which the second storage server restarts to stable operation after power failure. In some implementations, the first preset time period may be preset based on experience values of technicians. In other embodiments, the time required for a large number of storage servers to be powered off and restarted until stable operation can be calculated, data modeling is performed, and then the time period predicted by the mathematical model is used as the first preset time period.
示例性地,假设第一预设时间段为1min,第一时间间隔为15s,则在第一预设时间段内,第一存储服务器可以向第二存储服务器发送4次查询请求。需要说明的是,该示例中,第一预设时间段、第一时间间隔均为示例性的,本发明对此不作限制。For example, assuming that the first preset time period is 1 minute and the first time interval is 15 seconds, within the first preset time period, the first storage server can send four query requests to the second storage server. It should be noted that in this example, the first preset time period and the first time interval are exemplary, and the present invention is not limited thereto.
在本实施例中,在第一预设时间段之内,按照第一时间间隔,定期向第二存储服务器发送查询请求,以查询所述第二存储服务器中的第一标识值的方式,可在第二存储器内存中存在数据丢失可能性的时间段内,再执行发送查询请求的步骤。而无需在第二存储服务器运行稳定后,不再有内存中数据丢失时,执行发送查询请求的步骤。这样可避免第一存储服务器和第二存储服务器的运算资源的浪费。In this embodiment, within the first preset time period, query requests are periodically sent to the second storage server according to the first time interval to query the first identification value in the second storage server. During the time period when there is a possibility of data loss in the second memory, the step of sending the query request is performed again. There is no need to perform the step of sending a query request after the second storage server runs stably and no more data is lost in the memory. This can avoid a waste of computing resources of the first storage server and the second storage server.
S2200、接收第二存储服务器发送的第一标识值。S2200. Receive the first identification value sent by the second storage server.
在本步骤中,第一存储服务器接收第二存储服务器响应于查询请求返回的第一标识值。例如,第二存储服务器当前的存储的数据块的最大标识值为20,则将20作为第一标识值返回给第一存储服务器。In this step, the first storage server receives the first identification value returned by the second storage server in response to the query request. For example, if the maximum identification value of the data blocks currently stored by the second storage server is 20, 20 will be returned to the first storage server as the first identification value.
S2300、比较第一标识值和第二标识值,第二标识值为第一存储服务器中主区块文件中数据块的最大标识值。S2300. Compare the first identification value and the second identification value. The second identification value is the maximum identification value of the data block in the main block file in the first storage server.
本发明实施例中,在第二存储服务器未出现数据丢失的情况下,第一标识值和第二标识值应该是相同的。但是如果第二存储服务器出现数据丢失,则第一标识值和第二标识值会不相同,示例性地,第二标识值大于第一标识值。In this embodiment of the present invention, when no data loss occurs on the second storage server, the first identification value and the second identification value should be the same. However, if data loss occurs in the second storage server, the first identification value and the second identification value will be different. For example, the second identification value is greater than the first identification value.
在本步骤中,第一存储服务器接收到第二存储服务器返回的第一标识值。第一存储服务器会将其存储的数据块的第二标识值与第一标识值进行比较。In this step, the first storage server receives the first identification value returned by the second storage server. The first storage server will compare the second identification value of the data block it stores with the first identification value.
S2400、当第一标识值小于第二标识值时,根据第一标识值确定第二服务器的从区块文件中丢失的数据块。S2400. When the first identification value is less than the second identification value, determine the data blocks lost from the block file of the second server based on the first identification value.
在本实施例中,若第一标识值小于第二标识值时,可以确定第二存储服务器中的从区块文件中数据块有丢失。In this embodiment, if the first identification value is less than the second identification value, it can be determined that the data block in the secondary block file in the second storage server is lost.
在本实施例中,上述S2400中的根据第一标识值确定第二服务器的从区块文件中丢失的数据块,可具体通过如下S2410来实现:In this embodiment, the determination of the data blocks lost from the block file of the second server based on the first identification value in the above S2400 can be specifically implemented through the following S2410:
S2410、将主区块文件中、大于第一标识值且小于和等于第二标识值的所有标识值对应的数据块,确定为第二存储服务器的从区块文件中丢失的数据块。S2410. Determine the data blocks corresponding to all identification values in the main block file that are greater than the first identification value and less than and equal to the second identification value as data blocks lost from the secondary block file of the second storage server.
例如,第一标识值为20,第二标识值为25,可以确定第二存储服务器中的标识值为21-25的数据块丢失。For example, if the first identification value is 20 and the second identification value is 25, it can be determined that the data blocks with identification values 21-25 in the second storage server are lost.
在本发明另一些实施例中,若第一标识值等于第二标识值时,可以确定第二存储服务器中的从区块文件中的数据块没有丢失。In other embodiments of the present invention, if the first identification value is equal to the second identification value, it can be determined that the data blocks in the secondary block file in the second storage server are not lost.
S2500、将丢失的数据块发送至第二存储服务器中,以同步主区块文件的数据块和从区块文件的数据块。S2500. Send the lost data blocks to the second storage server to synchronize the data blocks of the master block file and the data blocks of the slave block file.
在本实施例中,第一存储服务器在将丢失的数据块发送至第二存储服务器中之后,第二存储服务器会将丢失数据块重新写入至从区块文件中,从而同步主区块文件和从区块文件的数据。In this embodiment, after the first storage server sends the lost data blocks to the second storage server, the second storage server will rewrite the lost data blocks into the slave block file, thereby synchronizing the master block file. and data from chunk files.
在一些实施例中,本步骤可以实现为,将主区块文件中的、大于第一标识值小于和等于第二标识值的所有标识值对应的数据块发送至第二存储服务器,从而同步主区块文件和与其对应的从区块文件的数据块。In some embodiments, this step can be implemented by sending data blocks corresponding to all identification values greater than the first identification value and less than and equal to the second identification value in the main block file to the second storage server, thereby synchronizing the main The block file and its corresponding data blocks from the block file.
举例来讲,第一标识值为20,第二标识为25,则大于第一标识值且小于和等于第二标识值的所有标识值对应的数据块可以包括标识值为21、22、23、24和25对应的数据块,在本步骤中,第一存储服务器将标识值为21、22、23、24和25对应的数据块发送给第二存储服务器,以使第二存储服务器将这些数据块存入对应的从区块文件。For example, if the first identification value is 20 and the second identification value is 25, then the data blocks corresponding to all identification values greater than the first identification value and less than and equal to the second identification value may include identification values 21, 22, 23, The data blocks corresponding to 24 and 25. In this step, the first storage server sends the data blocks corresponding to the identification values 21, 22, 23, 24 and 25 to the second storage server, so that the second storage server can The blocks are stored in the corresponding slave block files.
在本实施例中,第一存储服务器向第二存储服务器发送查询请求,以查询第二存储服务器中的第一标识值;在接收到第二存储服务器发送的第一标识值之后,比较自身的第二标识值和第一标识值。在第一标识值小于第二标识值时,确定出第二存储服务器中的从区块文件中有数据块丢失。此时根据第一标识值确定第二存储服务去的从区块文件中丢失的数据块。最后将确定出的数据块发送至第二存储服务器中,由第二存储服务器将丢失的数据块写入至从区块文件中。这样,即使第二存储服务器在因掉电重启而有数据块丢失时,第二存储服务器中的从区块文件中的数据可以及时与第一存储服务器中的主区块文件中的数据同步。In this embodiment, the first storage server sends a query request to the second storage server to query the first identification value in the second storage server; after receiving the first identification value sent by the second storage server, it compares its own The second identification value and the first identification value. When the first identification value is less than the second identification value, it is determined that a data block is lost in the secondary block file in the second storage server. At this time, the data blocks lost from the block file sent by the second storage service are determined according to the first identification value. Finally, the determined data blocks are sent to the second storage server, and the second storage server writes the lost data blocks into the slave block file. In this way, even if the second storage server loses data blocks due to power failure and restart, the data in the slave block file in the second storage server can be synchronized in time with the data in the master block file in the first storage server.
此外,本发明中,第一存储服务器定时地向第二存储服务器发送查询请求,一方面可以节约第一存储服务器和第二存储服务器的运算资源,另一方面,还能够及时发现第二存储服务器中是否丢失数据,进而可以及时地进行数据同步,为分布式存储系统的数据存储提供安全保障。In addition, in the present invention, the first storage server regularly sends query requests to the second storage server. On the one hand, it can save the computing resources of the first storage server and the second storage server. On the other hand, it can also discover the second storage server in time. Whether data is lost in the system, data can be synchronized in a timely manner, providing security guarantee for data storage in distributed storage systems.
在一个实施例中,本实施例提供的数据同步方法在上述S2100之前还包括如下S2120和S2130:In one embodiment, the data synchronization method provided by this embodiment also includes the following S2120 and S2130 before the above S2100:
S2120、确定第二预设时间段内主区块文件内是否写入新数据块。S2120. Determine whether a new data block is written in the main block file within the second preset time period.
S2130、在不存在的情况下,执行向第二存储服务器发送查询请求,以查询第二存储服务器中的第一标识值的步骤。S2130. If it does not exist, perform the step of sending a query request to the second storage server to query the first identification value in the second storage server.
在本实施例中,若在第一时间段内主区块文件中写入新数据块,此时,第一存储服务器会将该新数据块转发至第二存储服务器中。若在第一时间段内,第二存储服务器掉电重启后有数据块丢失,在此情况下执行上述S2100时,第一主存储服务器将会重复的向第二存储服务器发送上述新数据块。因此,为了避免第一主存储服务器重复的向第二存储服务器发送上述新数据块,可执行上述的S2120。In this embodiment, if a new data block is written in the main block file within the first time period, at this time, the first storage server will forward the new data block to the second storage server. If data blocks are lost after the second storage server is powered off and restarted during the first period of time, in this case, when executing the above S2100, the first primary storage server will repeatedly send the above new data blocks to the second storage server. Therefore, in order to avoid the first primary storage server from repeatedly sending the new data block to the second storage server, the above-mentioned S2120 may be executed.
在一个实施例中,在上一实施例的基础上,上述S2120还可通过如下S2121来实现:In one embodiment, based on the previous embodiment, the above S2120 can also be implemented through the following S2121:
S2121、响应于设定事件的触发,执行确定第二预设时间段内主区块文件内是否写入新数据块的操作。S2121. In response to the triggering of the set event, perform an operation of determining whether a new data block is written in the main block file within the second preset time period.
在本实施例中设定事件可以为指示第一存储服务器执行,本实施例提供的包括上述S2120和S2130的数据同步方法的事件。基于此,在一个例子中,在第一存储服务器的显示界面上设置一个选择框,当该选择框处于选中状态,即设定事件被触发时,第一存储服务器可执行本实施例提供的包括上述S2120和S2130的数据同步方法。其中,可以检测来自用户的鼠标点击操作或者触摸操作的方式确定选择框是否处于选中状态。In this embodiment, setting an event may be an event that instructs the first storage server to execute the data synchronization method including the above S2120 and S2130 provided in this embodiment. Based on this, in one example, a selection box is set on the display interface of the first storage server. When the selection box is in the selected state, that is, when the set event is triggered, the first storage server can execute the steps provided in this embodiment, including: The above data synchronization method of S2120 and S2130. Among them, the user's mouse click operation or touch operation can be detected to determine whether the selection box is in a selected state.
在本实施例中,可进一步提高本实施例提供的数据同步方法的智能性。In this embodiment, the intelligence of the data synchronization method provided in this embodiment can be further improved.
在一个实施例中,在上述任一实施例的基础上,本实施例提供的数据同步方法还包括如下S2610-S2630:In one embodiment, based on any of the above embodiments, the data synchronization method provided by this embodiment also includes the following S2610-S2630:
S2610、当接收到待存储的数据块时,将待存储的数据块保存至内存中。S2610. When receiving the data block to be stored, save the data block to be stored in the memory.
在本实施例中,上述的待存储的数据块为客户端上传的数据块。In this embodiment, the above-mentioned data blocks to be stored are data blocks uploaded by the client.
S2620、按照第二时间间隔,将内存中的待存储的数据块定期刷新至主区块文件,其中,在主区块文件中,每个待存储的数据块获得对应的标识值。S2620. According to the second time interval, regularly refresh the data blocks to be stored in the memory to the main block file, where in the main block file, each data block to be stored obtains a corresponding identification value.
在一个实施例中,第二时间间隔可以根据实际需求进行设置。示例性的,第二时间间隔可以为10s、20s等。在另一个实施例中,第二时间间隔可以为一个默认的时间间隔,例如为默认的10s。In one embodiment, the second time interval can be set according to actual needs. For example, the second time interval may be 10s, 20s, etc. In another embodiment, the second time interval may be a default time interval, such as the default 10s.
在本实施例中,在第一存储服务器接收到待存储的数据块时,或者在第一存储服务器将接收到的待存储的数据块保存至内存时,第一存储服务器向该待存储的数据块添加标识,该标识对应于一个标识值。这样,每个待存储的数据块将获得对应的标识值。In this embodiment, when the first storage server receives the data block to be stored, or when the first storage server saves the received data block to be stored into the memory, the first storage server sends the data block to be stored to the memory. Block adds an identifier that corresponds to an identifier value. In this way, each data block to be stored will obtain a corresponding identification value.
需要说明的是,当第一存储服务器将待存储的数据块刷新至主区块文件后,该待存储的数据块将不会丢失。It should be noted that after the first storage server refreshes the data blocks to be stored to the main block file, the data blocks to be stored will not be lost.
S2630、将待存储的数据块转发至第二存储服务器中,以将待存储的数据块保存至第二存储服务器的从区块文件中,其中,在从区块文件中,每个待存储的数据块获得对应的标识值。S2630. Forward the data block to be stored to the second storage server to save the data block to be stored in the slave block file of the second storage server. In the slave block file, each block file to be stored is The data block obtains the corresponding identification value.
在本实施例中,在第一存储服务器在将待存储的数据块保存至内存中之后,或者在第一存储服务器在将待存储的数据块刷新至主区块文件之后,第一存储服务器将待存储的数据块转发至第二存储服务器中,以由第二存储服务器将接收到的待存储的数据块保存至从区块文件中。In this embodiment, after the first storage server saves the data blocks to be stored into the memory, or after the first storage server refreshes the data blocks to be stored to the main block file, the first storage server will The data blocks to be stored are forwarded to the second storage server, so that the second storage server saves the received data blocks to be stored into the slave block file.
在第二存储服务器接收到待存储的数据块时,或在第二存储服务器将接收到的待存储的数据块保存时,第二存储服务器为该待存储数据块添加标识,该标识对应于一个标识值。此时,每一个待存储数据块获得对应的标识值。When the second storage server receives the data block to be stored, or when the second storage server saves the received data block to be stored, the second storage server adds an identifier to the data block to be stored, and the identifier corresponds to a Identity value. At this time, each data block to be stored obtains the corresponding identification value.
在一个实施例中,当第二存储服务器将接收到的待存储的数据块保存至从区块文件的过程可以为:将接收到的待存储的数据块存储在内存中;按照第三时间间隔将内存中的待存储的数据块定期刷新至从区块文件中。这样,该待存储的数据块将不会丢失。其中,第三时间间隔的说明可参见第二时间间隔的说明,这里不再赘述。In one embodiment, when the second storage server saves the received data block to be stored to the slave block file, the process may be: store the received data block to be stored in the memory; according to the third time interval Periodically refresh the data blocks to be stored in the memory to the slave block file. In this way, the data block to be stored will not be lost. For the description of the third time interval, please refer to the description of the second time interval, which will not be described again here.
在本实施例中,由于第一存储服务器当接收到待存储的数据块时,将待存储的数据块保存至内存中。之后会按照第二时间间隔,将内存中的待存储的数据块定期刷新至主区块文件中。这样可降低因第一存储服务器掉电重启而导致数据块丢失的可能性。In this embodiment, when the first storage server receives the data block to be stored, it saves the data block to be stored in the memory. After that, the data blocks to be stored in the memory will be periodically refreshed to the main block file according to the second time interval. This can reduce the possibility of data block loss due to power outage and restart of the first storage server.
<装置实施例><Device Example>
如图3所示,本发明实施例还提供了一种数据同步装置30,该服务器中包括:查询模块31、接收模块32、比较模块33、确定模块34、发送模块35;其中:As shown in Figure 3, the embodiment of the present invention also provides a data synchronization device 30. The server includes: a query module 31, a receiving module 32, a comparison module 33, a determination module 34, and a sending module 35; wherein:
查询模块31,用于向第二存储服务器发送查询请求,以查询所述第二存储服务器中的第一标识值,所述第一标识值为第二存储服务器中与所述主区块文件的标识相同的从区块文件中数据块的最大标识值;Query module 31, configured to send a query request to the second storage server to query the first identification value in the second storage server, where the first identification value is the link between the second storage server and the main block file. The maximum identification value of data blocks in the slave block file that identifies the same;
接收模块32,用于接收所述第二存储服务器发送的所述第一标识值;Receiving module 32, configured to receive the first identification value sent by the second storage server;
比较模块33,用于比较所述第一标识值与第二标识值,所述第二标识值为所述第一存储服务器中所述主区块文件中数据块的最大标识值;The comparison module 33 is used to compare the first identification value with the second identification value, where the second identification value is the maximum identification value of the data block in the main block file in the first storage server;
确定模块34,用于当所述第一标识值小于所述第二标识值时,根据所述第一标识值确定所述第二存储服务器的所述从区块文件中丢失的数据块;Determining module 34, configured to determine the data blocks lost from the block file of the second storage server according to the first identification value when the first identification value is less than the second identification value;
发送模块35,用于将所述丢失的数据块发送至所述第二存储服务器,以同步所述主区块文件的数据块和所述从区块文件的数据块。The sending module 35 is configured to send the lost data blocks to the second storage server to synchronize the data blocks of the master block file and the data blocks of the slave block file.
在一个实施例中,发送模块35,具体用于:In one embodiment, the sending module 35 is specifically used for:
按照第一时间间隔,定期向第二存储服务器发送查询请求,以查询所述第二存储服务器中的第一标识值。According to the first time interval, a query request is periodically sent to the second storage server to query the first identification value in the second storage server.
在一个实施例中,发送模块35,还具体用于:在第一预设时间段之内,按照第一时间间隔,定期向第二存储服务器发送查询请求,以查询所述第二存储服务器中的第一标识值。In one embodiment, the sending module 35 is also specifically configured to regularly send query requests to the second storage server according to the first time interval within the first preset time period to query the second storage server. the first identification value.
在一个实施例中,确定模块34,具体用于:将所述主区块文件中、大于所述第一标识值且小于和等于第二标识值的所有标识值对应的数据块,确定为所述第二存储服务器的所述从区块文件中丢失的数据块。In one embodiment, the determination module 34 is specifically configured to: determine the data blocks corresponding to all identification values in the main block file that are greater than the first identification value and less than and equal to the second identification value as the The data blocks lost from the block file of the second storage server.
在一个实施例中,所述发送模块35,具体用于将所述主区块文件中、大于所述第一标识值且小于和等于第二标识值的所有标识值对应的数据块发送至第二存储服务器,以同步所述主区块文件的数据块和所述从区块文件的数据块。In one embodiment, the sending module 35 is specifically configured to send data blocks corresponding to all identification values in the main block file that are greater than the first identification value and less than and equal to the second identification value to the third identification value. and two storage servers to synchronize the data blocks of the master block file and the data blocks of the slave block file.
在一个实施例中,查询模块31包括确定单元和查询单元。其中,确定单元,用于确定第二预设时间段内所述主区块文件内是否写入新数据块;In one embodiment, the query module 31 includes a determination unit and a query unit. Wherein, the determining unit is used to determine whether a new data block is written in the main block file within the second preset time period;
查询单元,用于在不存在的情况下,执行所述向第二存储服务器发送查询请求,以查询所述第二存储服务器中的第一标识值的步骤。A query unit, configured to perform the step of sending a query request to the second storage server to query the first identification value in the second storage server if it does not exist.
在一个实施例中,本实施例提供的数据同步装置30还包括响应模块,其中,响应模块,用于响应于设定事件的触发,执行所述确定第二预设时间段内所述主区块文件内是否写入新数据块的操作。In one embodiment, the data synchronization device 30 provided in this embodiment further includes a response module, wherein the response module is configured to, in response to the triggering of a set event, execute the determination of the main area within the second preset time period. Whether to write new data blocks into the block file.
在一个实施例中,本实施例提供的数据同步装置30还包括刷新模块,所述刷新模块包括保存单元和刷新单元。In one embodiment, the data synchronization device 30 provided in this embodiment also includes a refresh module, which includes a saving unit and a refreshing unit.
其中,保存单元,用于当接收到待存储的数据块时,将所述待存储的数据块保存至内存中;Wherein, the saving unit is used to save the data block to be stored into the memory when receiving the data block to be stored;
刷新单元,用于按照第二时间间隔,将所述内存中的待存储的数据块定期刷新至所述主区块文件,其中,在所述主区块文件中,每个所述待存储的数据块获得对应的标识值;A refresh unit, configured to regularly refresh the data blocks to be stored in the memory to the main block file according to a second time interval, wherein in the main block file, each of the data blocks to be stored The data block obtains the corresponding identification value;
所述发送模块,还用于将所述待存储的数据块转发至所述第二存储服务器中,以将所述待存储的数据块保存至所述第二存储服务器的从区块文件中,其中,在所述从区块文件中,每个所述待存储的数据块获得对应的标识值。The sending module is also used to forward the data block to be stored to the second storage server, so as to save the data block to be stored in the secondary block file of the second storage server, Wherein, in the slave block file, each data block to be stored obtains a corresponding identification value.
需要说明的是,本发明装置实施例中各模块的具体实现方式可以参见本发明方法实施例的相关内容,在此不再赘述。It should be noted that the specific implementation of each module in the device embodiment of the present invention can be found in the relevant content of the method embodiment of the present invention, and will not be described again here.
<存储服务器><storage server>
如图4所示,本发明实施例还提供一种存储服务器40。该储服务器包括存储器41和处理器42。其中:As shown in Figure 4, an embodiment of the present invention also provides a storage server 40. The storage server includes a memory 41 and a processor 42. in:
所述存储器41用于存储可执行指令;所述指令用于控制所述处理器42执行根据上述方法实施例中任一项所述的方法。The memory 41 is used to store executable instructions; the instructions are used to control the processor 42 to execute the method according to any one of the above method embodiments.
其中,存储服务器40可以为分布式对象存储系统中的任一存储服务器。The storage server 40 may be any storage server in the distributed object storage system.
<计算机可读存储介质><Computer-readable storage medium>
在本实施例中,还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序在被处理器执行时,实现根据上述方法实施例中任一项所述的方法。In this embodiment, a computer-readable storage medium is also provided, on which a computer program is stored. When executed by a processor, the computer program implements the method according to any one of the above method embodiments.
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。The invention may be a system, method and/or computer program product. A computer program product may include a computer-readable storage medium having computer-readable program instructions thereon for causing a processor to implement various aspects of the invention.
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。Computer-readable storage media may be tangible devices that can retain and store instructions for use by an instruction execution device. The computer-readable storage medium may be, for example, but not limited to, an electrical storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the above. More specific examples (non-exhaustive list) of computer-readable storage media include: portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM) or Flash memory), Static Random Access Memory (SRAM), Compact Disk Read Only Memory (CD-ROM), Digital Versatile Disk (DVD), Memory Stick, Floppy Disk, Mechanical Coding Device, such as a printer with instructions stored on it. Protruding structures in hole cards or grooves, and any suitable combination of the above. As used herein, computer-readable storage media are not to be construed as transient signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through waveguides or other transmission media (e.g., light pulses through fiber optic cables), or through electrical wires. transmitted electrical signals.
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。Computer-readable program instructions described herein may be downloaded from a computer-readable storage medium to various computing/processing devices, or to an external computer or external storage device over a network, such as the Internet, a local area network, a wide area network, and/or a wireless network. The network may include copper transmission cables, fiber optic transmission, wireless transmission, routers, firewalls, switches, gateway computers, and/or edge servers. A network adapter card or network interface in each computing/processing device receives computer-readable program instructions from the network and forwards the computer-readable program instructions for storage on a computer-readable storage medium in the respective computing/processing device .
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。Computer program instructions for performing operations of the present invention may be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-related instructions, microcode, firmware instructions, state setting data, or instructions in one or more programming languages. Source code or object code written in any combination of object-oriented programming languages - such as Smalltalk, C++, etc., and conventional procedural programming languages - such as the "C" language or similar programming languages. The computer-readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server implement. In situations involving remote computers, the remote computer can be connected to the user's computer through any kind of network, including a local area network (LAN) or a wide area network (WAN), or it can be connected to an external computer (such as an Internet service provider through the Internet). connect). In some embodiments, by utilizing state information of computer-readable program instructions to personalize an electronic circuit, such as a programmable logic circuit, a field programmable gate array (FPGA), or a programmable logic array (PLA), the electronic circuit can Computer readable program instructions are executed to implement various aspects of the invention.
这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。Aspects of the present invention are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer-readable program instructions.
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。These computer-readable program instructions may be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing apparatus, thereby producing a machine that, when executed by the processor of the computer or other programmable data processing apparatus, , resulting in an apparatus that implements the functions/actions specified in one or more blocks in the flowchart and/or block diagram. These computer-readable program instructions can also be stored in a computer-readable storage medium. These instructions cause the computer, programmable data processing device and/or other equipment to work in a specific manner. Therefore, the computer-readable medium storing the instructions includes An article of manufacture that includes instructions that implement aspects of the functions/acts specified in one or more blocks of the flowcharts and/or block diagrams.
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other equipment, causing a series of operating steps to be performed on the computer, other programmable data processing apparatus, or other equipment to produce a computer-implemented process , thereby causing instructions executed on a computer, other programmable data processing apparatus, or other equipment to implement the functions/actions specified in one or more blocks in the flowcharts and/or block diagrams.
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人员来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。The flowcharts and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions that embody one or more elements for implementing the specified logical function(s). Executable instructions. In some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two consecutive blocks may actually execute substantially in parallel, or they may sometimes execute in the reverse order, depending on the functionality involved. It will also be noted that each block of the block diagram and/or flowchart illustration, and combinations of blocks in the block diagram and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts. , or can be implemented using a combination of specialized hardware and computer instructions. It is well known to those skilled in the art that implementation through hardware, implementation through software, and implementation through a combination of software and hardware are all equivalent.
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。本发明的范围由所附权利要求来限定。The embodiments of the present invention have been described above. The above description is illustrative, not exhaustive, and is not limited to the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the described embodiments. The terminology used herein is chosen to best explain the principles of the embodiments, practical applications, or technical improvements to the technology in the market, or to enable other persons of ordinary skill in the art to understand the embodiments disclosed herein. The scope of the invention is defined by the appended claims.
Claims (11)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911051155.7A CN112749228B (en) | 2019-10-31 | 2019-10-31 | Data synchronization method, device, storage server and storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911051155.7A CN112749228B (en) | 2019-10-31 | 2019-10-31 | Data synchronization method, device, storage server and storage medium |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112749228A CN112749228A (en) | 2021-05-04 |
CN112749228B true CN112749228B (en) | 2024-01-26 |
Family
ID=75641413
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911051155.7A Active CN112749228B (en) | 2019-10-31 | 2019-10-31 | Data synchronization method, device, storage server and storage medium |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112749228B (en) |
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 (en) * | 2009-10-26 | 2012-09-05 | 亚马逊技术股份有限公司 | Failover and recovery for replicated data instances |
CN102843264A (en) * | 2012-09-21 | 2012-12-26 | 中国航空无线电电子研究所 | Control method of double hosts in high-speed serial bus network |
EP2924953A1 (en) * | 2014-03-25 | 2015-09-30 | Thorsten Sprenger | Method and system for encrypted data synchronization for secure data management |
CN108304503A (en) * | 2018-01-18 | 2018-07-20 | 阿里巴巴集团控股有限公司 | A kind of processing method of data, device and equipment |
CN109558421A (en) * | 2018-10-29 | 2019-04-02 | 中国建设银行股份有限公司 | Data processing method, system, device and storage medium based on caching |
CN110059135A (en) * | 2019-04-12 | 2019-07-26 | 阿里巴巴集团控股有限公司 | A kind of method of data synchronization and device |
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/en 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 (en) * | 2009-10-26 | 2012-09-05 | 亚马逊技术股份有限公司 | Failover and recovery for replicated data instances |
CN102843264A (en) * | 2012-09-21 | 2012-12-26 | 中国航空无线电电子研究所 | Control method of double hosts in high-speed serial bus network |
EP2924953A1 (en) * | 2014-03-25 | 2015-09-30 | Thorsten Sprenger | Method and system for encrypted data synchronization for secure data management |
CN108304503A (en) * | 2018-01-18 | 2018-07-20 | 阿里巴巴集团控股有限公司 | A kind of processing method of data, device and equipment |
CN109558421A (en) * | 2018-10-29 | 2019-04-02 | 中国建设银行股份有限公司 | Data processing method, system, device and storage medium based on caching |
CN110059135A (en) * | 2019-04-12 | 2019-07-26 | 阿里巴巴集团控股有限公司 | A kind of method of data synchronization and device |
Also Published As
Publication number | Publication date |
---|---|
CN112749228A (en) | 2021-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10313761B2 (en) | Media playback across multiple devices | |
US11221995B2 (en) | Data replication from a cloud-based storage resource | |
US11340970B2 (en) | Distributed queueing over a Redis cluster | |
CN112073994A (en) | Method and device for over-the-air upgrading, electronic equipment and readable storage medium | |
WO2016078380A1 (en) | Display method, terminal, and computer storage medium | |
US11188560B2 (en) | Synchronizing object in local object storage node | |
JP2017538178A (en) | Split application presentation between devices | |
CN112559025B (en) | Configuration information updating synchronization method and device | |
CN106357808A (en) | Data synchronization method and device | |
US20240031120A1 (en) | System and method for automatically synchronizing responses to conditions on devices | |
WO2023093016A1 (en) | Cloud code development system, method, and apparatus, device, and storage medium | |
WO2021093735A1 (en) | Data synchronization method, apparatus and device for distributed storage system, and storage medium | |
CN113254274A (en) | Message processing method, device, storage medium and server | |
CN112751693B (en) | Data processing method and device of distributed storage system and electronic equipment | |
US20200403850A1 (en) | Facilitating resilient and fault tolerant asynchronous messaging | |
CN109213955B (en) | Data processing method and related equipment | |
CN112749228B (en) | Data synchronization method, device, storage server and storage medium | |
CN104332170B (en) | A kind of storage device and date storage method | |
CN117112690A (en) | Data synchronization method of distributed cluster and related equipment thereof | |
WO2016061890A1 (en) | Resource sharing method, terminal, system and computer storage medium | |
CN108717375A (en) | Resolution ratio synchronous method and device | |
CN112770415B (en) | Information processing method and device for wireless hotspot | |
CN114969206A (en) | Data processing method, device, equipment and storage medium | |
CN110851192B (en) | Method and device for responding to degraded switch configuration | |
CN113297158A (en) | Cloud security product management method, device, equipment and storage medium |
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 |