CN106406770A - 一种数据写入方法及系统 - Google Patents
一种数据写入方法及系统 Download PDFInfo
- Publication number
- CN106406770A CN106406770A CN201610862429.0A CN201610862429A CN106406770A CN 106406770 A CN106406770 A CN 106406770A CN 201610862429 A CN201610862429 A CN 201610862429A CN 106406770 A CN106406770 A CN 106406770A
- Authority
- CN
- China
- Prior art keywords
- copy
- data
- asynchronous
- write
- clean
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
- G06F3/0622—Securing storage systems in relation to access
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
本发明实施例提供一种数据写入方法及系统。所述方法,包括:接收副本参数,所述副本参数包括文件名、原始副本个数和异步副本个数;向所述文件名对应的原始副本中写入数据,若判断获知所述文件名对应的原始副本写入数据成功,则返回写入成功消息;根据所述异步副本个数判断是否配置了异步副本,若判断获知所述异步副本个数为正整数,则根据所述原始副本写入的数据对所述文件名对应的异步副本进行写入操作。所述系统用于执行所述方法。本发明提供的一种数据写入方法通过根据原始副本写入的数据对文件名对应的异步副本进行写入操作,在不降低写入性能的同时,保证了数据的副本个数,提高了数据的安全性和可靠性。
Description
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种数据写入方法及系统。
背景技术
分布式存储系统是将数据按照一定规则切分并打散存储在多台独立通用存储服务器上。传统的网络存储系统采用集中的存储服务器存放所有数据,因此,存储服务器成为系统性能的瓶颈,也是可靠性和安全性的焦点,不能满足大规模存储应用的需要。而分布式存储系统采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,它不但提高了系统的可靠性、可用性和存取效率,还易于扩展。存储集群的成千上万台服务器可以将数据充分冗余,从而可以显著提高数据的安全性。
分布式存储系统是上层服务的基础,通常都会基于分布式存储来构建更灵活的存储服务,比如基于分布式存储而构建的对象存储服务能够提供HTTP接口的数据存储服务,在互联网背景下非常流行且运用非常广泛。
存储于分布式存储系统中的数据重要性并不相同,比如前述对象存储的例子中,第一是用户上传的文件,第二则是用户的文件列表,在这种情况下,如果第一种数据丢失通常损失的是一两个文件,而如果丢失的是用户的文件列表,那么影响将会大的多,因为这个列表如果丢失,即使存储的第一种文件没有丢失,也无法为用户提供访问,因为当用户进行文件下载时,首先需要访问的便是用户的文件列表,判断此文件是否在此列表中,如果列表都丢失了,那么就没有办法判断这个文件是否在列表中,用户的下载请求也会失败,即在此种情况下,用户的数据全部丢失了。
在实现本发明实施例的过程中,发明人发现,一般情况下都是将重要的数据多存储几个副本,通过同步写入多个副本的方式以提高数据的可靠性,但是这种方案通常是不可行的,因为当同时写入多个副本时,数据的写入性能将会极大降低,因为需要每一个副本写入成功的情况下,数据才算写入成功,这样的结果就是写入的延时决定于最慢的一个副本。在出现网络抖动、磁盘变慢等情况下,这种同步写入的多副本方式带来的将是灾难性的写入性能,根本无法满足实际的商业运用场景。
因此,在不降低写入性能的同时,保证多个副本的冗余,以提高数据的安全性和可靠性是现如今亟待解决的课题。
发明内容
针对现有技术存在的问题,本发明实施例提供一种数据写入方法及系统。
一方面,本发明实施例提供一种数据写入方法,包括:
接收副本参数,所述副本参数包括文件名、原始副本个数和异步副本个数;
向所述文件名对应的原始副本中写入数据,若判断获知所述文件名对应的原始副本写入数据成功,则返回写入成功消息;
根据所述异步副本个数判断是否配置了异步副本,若判断获知所述异步副本个数为正整数,则根据所述原始副本写入的数据对所述文件名对应的异步副本进行写入操作。
另一方面,本发明实施例提供一种系统,包括:
副本配置模块,用于接收副本参数,所述副本参数包括文件名、原始副本个数和异步副本个数;
第一数据写入模块,用于向所述文件名对应的原始副本中写入数据,若判断获知所述文件名对应的原始副本写入成功,则返回写入成功消息;
第二数据写入模块,用于根据所述异步副本个数判断是否配置了异步副本,若判断获知所述异步副本个数为正整数,则根据所述原始副本写入的数据对所述文件名对应的异步副本进行写入操作。
本发明实施例提供的一种数据写入方法及系统,通过根据原始副本写入的数据对文件名对应的异步副本进行写入操作,在不降低写入性能的同时,保证了数据的副本个数,提高了数据的安全性和可靠性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种数据写入方法的流程示意图;
图2为本发明另一实施例提供的一种数据写入方法流程示意图;
图3为本发明又一实施例提供的一种数据写入方法流程示意图;
图4为本发明实施例提供的系统结构示意图;
图5为本发明另一实施例提供的系统结构示意图;
图6为本发明又一实施例提供的系统结构示意图;
图7为本发明再一实施例提供的系统结构示意图;
图8为本发明实施例提供的系统实体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的一种数据写入方法的流程示意图,如图1所示,所述方法,包括:
步骤101:接收副本参数,所述副本参数包括文件名、原始副本个数和异步副本个数;
具体地,系统接收管理员配置的副本参数,其中,副本参数中包括要写入的文件名、该文件名对应的原始副本个数和该文件名对应的异步副本个数。可以理解的是,副本参数中还可以包括其他参数,本实施例对此不作具体限定。应当说明的是,系统将文件名对应的数据写入磁盘时,最开始写入磁盘的副本为原始副本。异步副本是在原始副本写入成功后通过异步写入的方式写入磁盘的副本。
步骤102:向所述文件名对应的原始副本中写入数据,若判断获知所述文件名对应的原始副本写入数据成功,则返回写入成功消息;
具体地,系统在接收到副本参数后,根据副本参数中包括的文件名,将文件名对应的原始副本中写入数据,当所有的原始副本都写入成功后,向用户返回写入成功消息。
步骤103:根据所述异步副本个数判断是否配置了异步副本,若判断获知所述异步副本个数为正整数,则根据所述原始副本写入的数据对所述文件名对应的异步副本进行写入操作。
具体地,系统根据副本参数中的异步副本个数判断是否配置了异步副本,其中副本参数为非负整数,如果异步副本个数为0,则表示没有配置异步副本。如果异步副本个数为正整数,例如异步副本个数为2,则表示管理员配置了2个异步副本,应当说明的是,异步副本个数不局限于2个,本实施例对此不作具体限定。此时,根据原始副本写入的数据对文件名对应的异步副本进行写入操作。
例如:管理员配置了一个文件名为filename,原始副本个数为2和异步副本个数为2的副本参数,并将配置的副本参数发送给系统,系统接收到该副本参数后,首先需要将文件名filename对应的数据写入原始副本中,原始副本需要写入两个,第一原始副本写入到第一磁盘中,第二原始副本写入到第二磁盘中,另外第三磁盘中有一个与用户进行交互的进程,该进程用于接收原始副本的写入成功消息,即第一原始副本写入第一磁盘成功后将写入成功消息发送给上述进程,第二原始副本写入第二磁盘成功过后将写入成功消息同样发送给上述进程,此时,第三磁盘中的与用户进行交互的进程判断所有的原始副本都写入成功后,向系统返回原始副本的写入成功消息,系统接收到返回的原始副本的写入成功消息后,向用户返回写入成功消息,并判断副本参数中的异步副本个数,如果判断异步副本个数为2,则表示写入2个异步副本,应当说明的是,异步副本个数为非负整数,本实施例对异步副本个数不作具体限定。此时根据原始副本写入的数据对filename对应的异步副本进行写入操作。
本发明实施例通过根据原始副本写入的数据对文件名对应的异步副本进行写入操作,在不降低写入性能的同时,保证了数据的副本个数,提高了数据的安全性和可靠性。
图2为本发明另一实施例提供的一种数据写入方法流程示意图,如图2所示,所述方法,包括:
步骤201:接收副本参数,所述副本参数包括文件名、原始副本个数和异步副本个数;
具体地,系统接收管理员配置的副本参数,其中,副本参数中包括要写入的文件名、该文件名对应的原始副本个数和该文件名对应的异步副本个数。可以理解的是,副本参数中还可以包括其他参数,本实施例对此不作具体限定。应当说明的是,系统将文件名对应的数据写入磁盘时,最开始写入磁盘的副本为原始副本。异步副本是在原始副本写入成功后通过异步写入的方式写入磁盘的副本。
步骤202:向所述文件名对应的原始副本中写入数据,若判断获知所述文件名对应的原始副本写入数据成功,则返回写入成功消息;
具体地,系统在接收到副本参数后,根据副本参数中包括的文件名,将文件名对应的原始副本中写入数据,当所有的原始副本都写入成功后,向用户返回写入成功消息。
步骤203:根据所述异步副本个数判断是否配置了异步副本,若判断获知所述异步副本个数为正整数,则根据所述原始副本写入的数据对所述文件名对应的异步副本进行写入操作。
具体地,系统根据副本参数中的异步副本个数判断是否配置了异步副本,其中副本参数为非负整数,如果异步副本个数为0,则表示没有配置异步副本。如果异步副本个数为正整数,例如异步副本个数为2,则表示管理员配置了2个异步副本,应当说明的是,异步副本个数不局限于2个,本实施例对此不作具体限定。此时,根据原始副本写入的数据对文件名对应的异步副本进行写入操作。
步骤204:设置所述原始副本对应的版本号,将数据写入所述文件名对应的异步副本时,设置与所述原始副本一致的所述版本号。
具体地,在将文件名对应的数据写入原始副本时,设置原始副本的版本号,原始副本写入成功后,将数据写入文件名对应的异步副本时,设置与原始副本一致的版本号。应当说明的是,文件在第一次写入时都会初始化版本号,其初始化的版本号为0,若第二次写入该文件时,更新原始副本和异步副本的版本号为1,版本号随写入次数的逐步增加而依次增加。
例如:管理员配置了一个文件名为filename,原始副本个数为2和异步副本个数为2的副本参数,并将配置的副本参数发送给系统,系统接收到该副本参数后,首先需要将文件名filename对应的数据写入原始副本中,若是第一次写入,则将该原始副本的版本号设置为0,然后版本号根据写入次数依次增加。原始副本需要写入两个,第一原始副本写入到第一磁盘中,第二原始副本写入到第二磁盘中,另外第三磁盘中有一个与用户进行交互的进程,该进程用于接收原始副本的写入成功消息,即第一原始副本写入第一磁盘成功后将写入成功消息发送给上述进程,第二原始副本写入第二磁盘成功过后将写入成功消息同样发送给上述进程,此时,第三磁盘中的与用户进行交互的进程判断所有的原始副本都写入成功后,向系统返回原始副本的写入成功消息,系统接收到返回的原始副本的写入成功消息后,向用户返回写入成功消息,并判断副本参数中的异步副本个数,如果判断异步副本个数为2,则表示写入2个异步副本,应当说明的是,异步副本个数为非负整数,本实施例对异步副本个数不作具体限定。此时根据原始副本写入的数据对filename对应的异步副本进行写入操作,写入时,需要设定与原始副本一致的版本号。
本发明实施例通过在写入原始副本时,设置原始副本对应的版本号,以及对异步副本设置与原始副本一致的版本号,从而保证原始副本和异步副本中的数据的一致性。
图3为本发明又一实施例提供的一种数据写入方法流程示意图,如图3所示,所述方法,包括:
步骤301:接收副本参数,所述副本参数包括文件名、原始副本个数和异步副本个数;
具体地,系统接收管理员配置的副本参数,其中,副本参数中包括要写入的文件名、该文件名对应的原始副本个数和该文件名对应的异步副本个数。可以理解的是,副本参数中还可以包括其他参数,本实施例对此不作具体限定。应当说明的是,系统将文件名对应的数据写入磁盘时,最开始写入磁盘的副本为原始副本。异步副本是在原始副本写入成功后通过异步写入的方式写入磁盘的副本。
步骤302:向所述文件名对应的原始副本中写入数据,若判断获知所述文件名对应的原始副本写入数据成功,则返回写入成功消息;
具体地,系统在接收到副本参数后,根据副本参数中包括的文件名,将文件名对应的原始副本中写入数据,当所有的原始副本都写入成功后,向用户返回写入成功消息。
步骤303:根据所述异步副本个数判断是否配置了异步副本,若判断获知所述异步副本个数为正整数,则根据所述原始副本写入的数据对所述文件名对应的异步副本进行写入操作。
具体地,系统根据副本参数中的异步副本个数判断是否配置了异步副本,其中副本参数为非负整数,如果异步副本个数为0,则表示没有配置异步副本。如果异步副本个数为正整数,例如异步副本个数为2,则表示管理员配置了2个异步副本,应当说明的是,异步副本个数不局限于2个,本实施例对此不作具体限定。此时,根据原始副本写入的数据对文件名对应的异步副本进行写入操作。
步骤304:设置所述原始副本对应的版本号,将数据写入所述文件名对应的异步副本时,设置与所述原始副本一致的所述版本号。
具体地,在将文件名对应的数据写入原始副本时,设置原始副本的版本号,原始副本写入成功后,将数据写入文件名对应的异步副本时,设置与原始副本一致的版本号。应当说明的是,文件在第一次写入时都会初始化版本号,其初始化的版本号为0,若第二次写入该文件时,更新原始副本和异步副本的版本号为1,版本号随写入次数的逐步增加而依次增加。
步骤305:定时核对所述原始副本对应的版本号和所述异步副本对应的版本号。
具体地,当系统中的某些文件有原始副本和与原始副本对应的异步副本时,将定时核对文件名对应的原始副本版本号和与原始副本对应的异步副本版本号。如:系统中设置每天中午12:00对系统中具有原始副本和与原始副本对应的异步副本的文件进行版本号核对。
本发明通过定时核对原始副本对应的版本号和异步副本对应的版本号,进一步地保证了原始副本中的数据和与原始副本对应的异步副本中的数据的一致性。
在上述实施例的基础上,所述定时核对所述原始副本对应的版本号和所述异步副本对应的版本号,包括:
读取所述原始副本对应的版本号和所述异步副本对应的版本号;
若读取所述原始副本对应的版本号失败,则进行数据恢复,所述数据恢复包括,通过将所述异步副本中的数据复制到对应的所述原始副本中;
若判断获知所述原始副本对应的版本号大于或小于所述异步副本对应的版本号,则需要数据同步,所述数据同步包括,将所述原始副本中的数据复制到对应的所述异步副本中,且更新所述异步副本对应的版本号。
具体地,在定时核对原始副本对应的版本号和异步副本对应的版本号时,首先需要获取原始副本的版本号和与原始副本对应的异步副本的版本号,如果原始副本版本号获取失败,导致该情况的原因有可能是原始副本已经丢失,此时需要对原始副本进行数据恢复操作,即,将与原始副本对应的异步副本中的数据复制到对应的原始副本中。应当说明的是,导致原始副本对应的版本号获取失败的原因不局限于上述情况,本实施例对此不作具体限定。另外,当获取到原始副本对应的版本号和异步副本对应的版本号后,判断原始副本和异步副本对应的版本号是否一致,如果原始副本对应的版本号大于异步副本对应的版本号,则说明异步副本在写入的过程中失败了,此时需要进行数据同步,即,将原始副本中的数据复制到对应的异步副本中,并更新异步副本的版本号;如果原始副本对应的版本号小于异步副本对应的版本号,则说明异步副本的版本号出现了问题,此时也需要对异步副本进行数据同步,其数据同步的方法与上述一致,此处不再赘述。可以理解的是,如果原始副本对应的版本号与异步副本对应的版本号相等,则说明原始副本和异步副本处于正常状态。
本发明实施例通过获取原始副本对应的版本号和异步副本对应的版本号,若获取原始副本对应的版本号失败,则进行数据恢复,若判断原始副本和异步副本的版本号不相等,则进行数据同步,存在多个副本的同时,保证了各副本中数据的一致性。
在上述各实施例的基础上,所述根据所述原始副本写入的数据对所述文件名对应的异步副本进行写入操作在系统后台进程中进行。
具体地,当文件名对应的数据写入原始副本成功后,向用户返回写入成功消息,如果异步副本个数为正整数,则将原始副本写入的数据对文件名对应的异步副本进行写入操作,且该写入操作是在系统后台进程中进行的,即,当原始副本写入成功后就表示文件名对应的数据写入成功,不用等待所有的异步副本写入成功,且与原始副本对应的异步副本写入操作在后台进程中进行,这种方式降低了对副本写入性能的影响。
本发明实施例通过获取原始副本对应的版本号和异步副本对应的版本号,若获取原始副本对应的版本号失败,则进行数据恢复,若判断原始副本和异步副本的版本号不相等,则进行数据同步,存在多个副本的同时,保证了各副本中数据的一致性。
图4为本发明实施例提供的系统结构示意图,如图4所示,所述系统,包括副本配置模块401、第一数据写入模块402和第二数据写入模块403,其中:
副本配置模块401用于接收副本参数,所述副本参数包括文件名、原始副本个数和异步副本个数;第一数据写入模块402用于向所述文件名对应的原始副本中写入数据,若判断获知所述文件名对应的原始副本写入成功,则返回写入成功消息;第二数据写入模块403用于根据所述异步副本个数判断是否配置了异步副本,若判断获知所述异步副本个数为正整数,则根据所述原始副本写入的数据对所述文件名对应的异步副本进行写入操作。
具体地,副本配置模块401接收管理员配置的副本参数,其中,副本参数中包括文件名、原始副本个数和异步副本个数,但不局限于以上参数;第一数据写入模块402首先需要向文件名对应的原始副本中写入数据,如果文件名对应的原始副本写入成功,则向用户返回写入成功的消息;第二数据写入模块403根据异步副本个数判断是否配置了异步副本,如判断获知异步副本个数为正整数,则说明配置了异步副本,根据原始副本写入的数据对文件名对应的异步副本进行写入操作。
本发明提供的系统的实施例具体可以用于执行上述各方法实施例的处理流程,其功能在此不再赘述,可以参照上述方法实施例的详细描述。
本发明实施例通过根据原始副本写入的数据对文件名对应的异步副本进行写入操作,在不降低写入性能的同时,保证了数据的副本个数,提高了数据的安全性和可靠性。
图5为本发明另一实施例提供的系统结构示意图,如图5所示,所述系统,包括副本配置模块501、第一数据写入模块502、第二数据写入模块503和版本设置模块504,其中:
副本配置模块501用于接收副本参数,所述副本参数包括文件名、原始副本个数和异步副本个数;第一数据写入模块502用于向所述文件名对应的原始副本中写入数据,若判断获知所述文件名对应的原始副本写入成功,则返回写入成功消息;第二数据写入模块503用于根据所述异步副本个数判断是否配置了异步副本,若判断获知所述异步副本个数为正整数,则根据所述原始副本写入的数据对所述文件名对应的异步副本进行写入操作。版本设置模块504用于设置所述原始副本对应的版本号,将数据写入所述文件名对应的异步副本时,设置与所述原始副本一致的所述版本号。
具体地,副本配置模块501接收管理员配置的副本参数,其中,副本参数中包括文件名、原始副本个数和异步副本个数,但不局限于以上参数;第一数据写入模块502首先需要将文件名对应的原始副本中写入数据,如果文件名对应的原始副本写入成功,则向用户返回写入成功的消息;第二数据写入模块503根据异步副本个数判断是否配置了异步副本,如判断获知异步副本个数为正整数,则说明配置了异步副本,根据原始副本写入的数据对文件名对应的异步副本进行写入操作;第一数据写入模块502在将文件名对应的数据写入原始副本时,设置原始副本的版本号,应当说明的是,每一个文件在第一次写入时都会初始化版本号,其初始化的版本号为0,若第二次写入该文件时,更新其版本号为1,版本号随写入次数的逐步增加而依次增加。原始副本写入成功后,第二数据写入模块503将数据写入文件名对应的异步副本时,设置与原始副本一致的版本号。
本发明实施例通过在写入原始副本时,设置原始副本的版本号,以及对异步副本设置与原始副本一致的版本号,来保证原始副本和异步副本中的数据的一致性。
图6为本发明又一实施例提供的系统结构示意图,如图6所示,所述系统,包括:副本配置模块601、第一数据写入模块602、第二数据写入模块603、版本设置模块604和版本核对模块605,其中:
副本配置模块601用于接收副本参数,所述副本参数包括文件名、原始副本个数和异步副本个数;第一数据写入模块602用于向所述文件名对应的原始副本中写入数据,若判断获知所述文件名对应的原始副本写入成功,则返回写入成功消息;第二数据写入模块603用于根据所述异步副本个数判断是否配置了异步副本,若判断获知所述异步副本个数为正整数,则根据所述原始副本写入的数据对所述文件名对应的异步副本进行写入操作。版本设置模块604用于设置所述原始副本对应的版本号,将数据写入所述文件名对应的异步副本时,设置与所述原始副本一致的所述版本号;版本核对模块605用于定时核对所述原始副本对应的版本号和所述异步副本对应的版本号。
具体地,副本配置模块601接收管理员配置的副本参数,其中,副本参数中包括文件名、原始副本个数和异步副本个数,但不局限于以上参数;第一数据写入模块602首先需要将文件名对应的原始副本中写入数据,如果文件名对应的原始副本写入成功,则向用户返回写入成功的消息;第二数据写入模块603根据异步副本个数判断是否配置了异步副本,如判断获知异步副本个数为正整数,则说明配置了异步副本,根据原始副本写入的数据对文件名对应的异步副本进行写入操作;第一数据写入模块602在将文件名对应的数据写入原始副本时,设置原始副本的版本号,应当说明的是,每一个文件在第一次写入时都会初始化版本号,其初始化的版本号为0,若第二次写入该文件时,更新其版本号为1,版本号随写入次数的逐步增加而依次增加。原始副本写入成功后,第二数据写入模块603将数据写入文件名对应的异步副本时,设置与原始副本一致的版本号;当系统中的某些文件有原始副本和与原始副本对应的异步副本时,版本核对模块605将定时核对文件名对应的原始副本和与原始副本对应的异步副本中的版本号。如:版本核对模块605设置每天中午12:00对系统中具有原始副本和与原始副本对应的异步副本的文件进行版本号核对。
本发明通过定时核对原始副本对应的版本号和异步副本对应的版本号,进一步地保证了原始副本中的数据和与原始副本对应的异步副本中的数据的一致性。
在上述实施例的基础上,图7为本发明再一实施例提供的系统结构示意图,如图7所示,所述版本核对模块,还包括:
读取模块7051用于读取所述原始副本对应的版本号和所述异步副本对应的版本号;数据恢复模块7052用于若读取所述原始副本对应的版本号失败,则进行数据恢复,所述数据恢复,通过将所述异步副本中的数据复制到对应的所述原始副本中;数据同步模块7053用于若判断获知所述原始副本对应的版本号大于或小于所述异步副本对应的版本号,则需要数据同步,所述数据同步,将所述原始副本中的数据复制到对应的所述异步副本中,且更新所述异步副本对应的版本号。
具体地,读取模块7051读取原始副本对应的版本号和异步副本对应的版本号,若读取模块7051读取原始副本对应的版本号失败时,数据恢复模块7052将异步副本中的数据复制到对应的原始副本中;若读取模块7051读取原始副本对应的版本号和异步副本对应的版本号成功后,对原始副本对应的版本号和异步副本对应的版本号进行核对,若原始副本对应的版本号和异步副本对应的版本号不相等,则数据同步模块将原始副本中的数据复制到对应的异步副本中,并更新异步副本对应的版本号。
本发明实施例通过获取原始副本对应的版本号和异步副本对应的版本号,若获取原始副本对应的版本号失败,则进行数据恢复,若判断原始副本和异步副本的版本号不相等,则进行数据同步,存在多个副本的同时,保证了各副本中数据的一致性。
在上述各实施例的基础上,所述根据所述原始副本写入的数据对所述文件名对应的异步副本进行写入操作在系统后台进程中进行。
具体地,当文件名对应的数据写入原始副本成功后,向用户返回写入成功消息,如果异步副本个数为正整数,则将原始副本写入的数据对文件名对应的异步副本进行写入操作,且该写入操作是在系统后台进程中进行的,本发明实施例通过在系统后台进程中写入异步副本的方式降低了对性能的影响。
本发明提供的系统的实施例具体可以用于执行上述各方法实施例的处理流程,其功能在此不再赘述,可以参照上述方法实施例的详细描述。
本发明实施例通过根据原始副本写入的数据对文件名对应的异步副本进行写入操作,在不降低写入性能的同时,保证了数据的副本个数,提高了数据的安全性和可靠性。
图8为本发明实施例提供的系统实体结构示意图,如图8所示所述系统可以包括:处理器(processor)801、通信接口(Communications Interface)802、存储器(memory)803和通信总线804,其中,处理器801,通信接口802,存储器803通过通信总线804完成相互间的通信。通信接口802可以用于系统与管理员之间的信息传输。处理器801可以调用存储器803中的逻辑指令,以执行如下方法:接收副本参数,所述副本参数包括文件名、原始副本个数和异步副本个数;向所述文件名对应的原始副本中写入数据,若判断获知所述文件名对应的原始副本写入数据成功,则返回写入成功消息;根据所述异步副本个数判断是否配置了异步副本,若判断获知所述异步副本个数为正整数,则根据所述原始副本写入的数据对所述文件名对应的异步副本进行写入操作。
此外,上述的存储器803中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种数据写入方法,其特征在于,包括:
接收副本参数,所述副本参数包括文件名、原始副本个数和异步副本个数;
向所述文件名对应的原始副本中写入数据,若判断获知所述文件名对应的原始副本写入数据成功,则返回写入成功消息;
根据所述异步副本个数判断是否配置了异步副本,若判断获知所述异步副本个数为正整数,则根据所述原始副本写入的数据对所述文件名对应的异步副本进行写入操作。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
设置所述原始副本对应的版本号,将数据写入所述文件名对应的异步副本时,设置与所述原始副本一致的所述版本号。
3.根据权利要求2所述的方法,其特征在于,所述方法,还包括:
定时核对所述原始副本对应的版本号和所述异步副本对应的版本号。
4.根据权利要求3所述的方法,其特征在于,所述定时核对所述原始副本对应的版本号和所述异步副本对应的版本号,包括:
读取所述原始副本对应的版本号和所述异步副本对应的版本号;
若读取所述原始副本对应的版本号失败,则进行数据恢复,所述数据恢复包括,通过将所述异步副本中的数据复制到对应的所述原始副本中;
若判断获知所述原始副本对应的版本号大于或小于所述异步副本对应的版本号,则需要数据同步,所述数据同步包括,将所述原始副本中的数据复制到对应的所述异步副本中,且更新所述异步副本对应的版本号。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述根据所述原始副本写入的数据对所述文件名对应的异步副本进行写入操作在系统后台进程中进行。
6.一种系统,其特征在于,包括:
副本配置模块,用于接收副本参数,所述副本参数包括文件名、原始副本个数和异步副本个数;
第一数据写入模块,用于向所述文件名对应的原始副本中写入数据,若判断获知所述文件名对应的原始副本写入成功,则返回写入成功消息;
第二数据写入模块,用于根据所述异步副本个数判断是否配置了异步副本,若判断获知所述异步副本个数为正整数,则根据所述原始副本写入的数据对所述文件名对应的异步副本进行写入操作。
7.根据权利要求6所述的系统,其特征在于,所述系统,还包括:
版本设置模块,用于设置所述原始副本对应的版本号,将数据写入所述文件名对应的异步副本时,设置与所述原始副本一致的所述版本号。
8.根据权利要求7所述的系统,其特征在于,所述系统,还包括:
版本核对模块,用于定时核对所述原始副本对应的版本号和所述异步副本对应的版本号。
9.根据权利要求8所述的系统,其特征在于,所述版本核对模块,还包括:
读取模块,用于读取所述原始副本对应的版本号和所述异步副本对应的版本号;
数据恢复模块,用于若读取所述原始副本对应的版本号失败,则进行数据恢复,所述数据恢复包括,通过将所述异步副本中的数据复制到对应的所述原始副本中;
数据同步模块,用于若判断获知所述原始副本对应的版本号大于或小于所述异步副本对应的版本号,则需要数据同步,所述数据同步包括,将所述原始副本中的数据复制到对应的所述异步副本中,且更新所述异步副本对应的版本号。
10.根据权利要求6-9任一项所述的系统,其特征在于,所述根据所述原始副本写入的数据对所述文件名对应的异步副本进行写入操作在系统后台进程中进行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610862429.0A CN106406770A (zh) | 2016-09-28 | 2016-09-28 | 一种数据写入方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610862429.0A CN106406770A (zh) | 2016-09-28 | 2016-09-28 | 一种数据写入方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106406770A true CN106406770A (zh) | 2017-02-15 |
Family
ID=59227986
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610862429.0A Pending CN106406770A (zh) | 2016-09-28 | 2016-09-28 | 一种数据写入方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106406770A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107807797A (zh) * | 2017-11-17 | 2018-03-16 | 北京联想超融合科技有限公司 | 数据写入的方法、装置及服务器 |
CN112486932A (zh) * | 2020-12-09 | 2021-03-12 | 北京金山云网络技术有限公司 | 一种数据并发写入方法及分布式数据并发写入系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102622284A (zh) * | 2012-02-21 | 2012-08-01 | 上海交通大学 | 面向海量存储系统的数据异步复制方法 |
CN103294675A (zh) * | 2012-02-23 | 2013-09-11 | 上海盛霄云计算技术有限公司 | 一种分布式存储系统中的数据更新方法及装置 |
CN105516230A (zh) * | 2014-10-15 | 2016-04-20 | 深圳市腾讯计算机系统有限公司 | 一种数据处理方法及装置 |
-
2016
- 2016-09-28 CN CN201610862429.0A patent/CN106406770A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102622284A (zh) * | 2012-02-21 | 2012-08-01 | 上海交通大学 | 面向海量存储系统的数据异步复制方法 |
CN103294675A (zh) * | 2012-02-23 | 2013-09-11 | 上海盛霄云计算技术有限公司 | 一种分布式存储系统中的数据更新方法及装置 |
CN105516230A (zh) * | 2014-10-15 | 2016-04-20 | 深圳市腾讯计算机系统有限公司 | 一种数据处理方法及装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107807797A (zh) * | 2017-11-17 | 2018-03-16 | 北京联想超融合科技有限公司 | 数据写入的方法、装置及服务器 |
CN107807797B (zh) * | 2017-11-17 | 2021-03-23 | 北京联想超融合科技有限公司 | 数据写入的方法、装置及服务器 |
CN112486932A (zh) * | 2020-12-09 | 2021-03-12 | 北京金山云网络技术有限公司 | 一种数据并发写入方法及分布式数据并发写入系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111183625B (zh) | 用于在区块链网络中删除节点的系统和方法 | |
US11966818B2 (en) | System and method for self-healing in decentralized model building for machine learning using blockchain | |
US10025681B2 (en) | Data recovery in multi-target data storage networks | |
CA3054040A1 (en) | Synchronously replicating datasets and other managed objects to cloud-based storage systems | |
CN107710215A (zh) | 在测试设施中的移动计算装置安全的方法和设备 | |
CN103034564B (zh) | 数据容灾演练方法、数据容灾演练装置及系统 | |
Mu et al. | When paxos meets erasure code: Reduce network and storage cost in state machine replication | |
CN113568566A (zh) | 利用索引物件来进行简易存储服务无缝迁移的方法、主装置以及存储服务器 | |
CN108874912A (zh) | 一种销户方法和服务器 | |
KR100922584B1 (ko) | 객체 기반 분산 공유 시스템 및 그의 방법 | |
CN110737504A (zh) | 一种深度学习模型训练容错方法、系统、终端及存储介质 | |
CN110286852A (zh) | 双控构架分布式存储系统、数据读取方法、装置和存储介质 | |
CN103064759B (zh) | 数据修复的方法及装置 | |
CN106406770A (zh) | 一种数据写入方法及系统 | |
CN112486942B (zh) | 一种文件数据的多副本存储方法及多副本存储系统 | |
US11263091B2 (en) | Using inode entries to mirror data operations across data storage sites | |
CN105892954A (zh) | 基于多副本的数据存储方法和装置 | |
JP7416768B2 (ja) | 分散コンピューティング環境で分散調整エンジンを非破壊的にアップグレードする方法、装置およびシステム | |
CN115955488A (zh) | 基于副本冗余的分布式存储副本跨机房放置方法与装置 | |
CN106250264A (zh) | 用于分布式存储的数据恢复方法及系统 | |
CN115698955A (zh) | 事务镜像的容错 | |
Wu et al. | Bolt-on global consistency for the cloud | |
CN106445419A (zh) | 一种数据存储方法、装置及分布式存储系统 | |
US20240338283A1 (en) | Method for establishing byzantine fault tolerance for a state machine replication system | |
KR102626108B1 (ko) | 인공지능 플랫폼에서 사용자를 인증하는 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20170215 |
|
WD01 | Invention patent application deemed withdrawn after publication |