CN108206839B - 一种基于多数派数据存储方法、装置及系统 - Google Patents

一种基于多数派数据存储方法、装置及系统 Download PDF

Info

Publication number
CN108206839B
CN108206839B CN201611168618.4A CN201611168618A CN108206839B CN 108206839 B CN108206839 B CN 108206839B CN 201611168618 A CN201611168618 A CN 201611168618A CN 108206839 B CN108206839 B CN 108206839B
Authority
CN
China
Prior art keywords
file
data
received
storage units
preset value
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
Application number
CN201611168618.4A
Other languages
English (en)
Other versions
CN108206839A (zh
Inventor
吴义谱
张炎泼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guizhou Baishan Cloud Polytron Technologies Inc
Original Assignee
Guizhou Baishan Cloud Polytron Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guizhou Baishan Cloud Polytron Technologies Inc filed Critical Guizhou Baishan Cloud Polytron Technologies Inc
Priority to CN201611168618.4A priority Critical patent/CN108206839B/zh
Priority to PCT/CN2017/116513 priority patent/WO2018108158A1/zh
Publication of CN108206839A publication Critical patent/CN108206839A/zh
Application granted granted Critical
Publication of CN108206839B publication Critical patent/CN108206839B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]

Abstract

本发明公开了一种基于多数派数据存储方法、装置及系统,在该方法中,前端服务器可根据接收到的文件上传请求从第一预设值个数的文件组中选取一个文件组,将接收到的文件中的数据分别上传至选取的文件组对应的第二预设值个数的存储单元上,在确定文件中的数据上传完成,并接收到大于等于第三预设值个数的存储单元返回的文件物理信息时,则数据写入成功,再将文件中的元数据信息更新至数据库,此时,返回文件上传请求成功。本发明所述技术方案,通过采用多数派成功方法写入文件,不会出现单点问题,且任意少数派的副本设备出现故障,都不会造成数据丢失,另服务器采用流式代理,将文件内容传输到各副本上,可减少磁盘IO占用。

Description

一种基于多数派数据存储方法、装置及系统
技术领域
本发明涉及数据存储技术领域,尤其涉及一种基于多数派数据存储方法、装置及系统。
背景技术
在大规模分布式存储系统中,设备的宕机、网络的异常和磁盘的故障随处可见,为解决这些异常情况,分布式存储系统往往会将数据冗余存储多份,每一份数据称为一个副本。这样当某个设备出现故障时,可以从其他的设备上访问到数据。同时当某个副本的数据丢失时,可以从其他副本恢复,保证了数据的可靠性。
由于写入数据时,需要写多副本,因此就需要一种方法如何写多个副本才算一次成功的请求。现有写入多副本的方法有:
1、暂存和异步分发方法
在接收处理客户端请求的设备上,将上传文件的全部内容接收并临时存储在该设备的磁盘,并更新对应的文件元数据信息,最后返回一个成功响应。与此同时,调度进程异步的将磁盘的临时文件分发写入多个存储设备,每一个存储设备上的数据作为该文件的一个副本,多个副本都同时写入成功后,再删除前端设备上的临时存储文件,若一次分发写入失败采用循环重试机制。这种方式的特点是,对于最近上传文件的访问采用N + 1方式,N为文件副本数,这种机制避免了在未分发写入完成之前,不能访问的问题。
2、写一主和多从方法
一个分布式系统集群中,文件被存储在一个分片中,系统中预先分配一定数量的分片,分片采用多副本的方式,分片的多个副本被存储在不同的存储机器上,多个副本采用某种算法(如paxos算法)选举出一个主,当原来的主宕机或者失联时,选举算法再选择一个主,主负责分片的写入操作。这种方式的特点是,对于一个文件的写入请求,按照一定的策略(如hash策略)将文件写入到某个分片上,写操作必须先写主分片,然后由主分片去写多个从分片,当大于等于N/2个从分片写成功后,再由主分片返回成功响应,N为从分数。
对于上述现有数据写入方式存在以下问题:
1、文件暂存在设备磁盘上,会出现单点问题,当文件还未分发到存储设备之前,若该设备宕机或者存储文件的磁盘出现故障,将会导致文件永久的丢失;
2、暂存接收文件写磁盘再异步分发,将导致暂存机器磁盘IO增大,当负载高时,将严重影响该设备的性能;
3、写主和多从方法,需要维护分片之间的主从关系,当主异常时,还未选举新的主之前,所有映射到该分片的写入操作都将失败。
因此,亟需提供一种防止文件丢失、提高数据写入成功率且不会出现单点问题以及减少磁盘IO占用的数据存储方法。
发明内容
本发明实施例提供了一种基于多数派数据存储方法、装置及系统,用以实现防止文件丢失、提高数据写入成功率且不会出现单点问题以及减少磁盘IO占用的效果。
本发明实施例提供了一种基于多数派数据存储方法,包括:
前端服务器接收文件上传请求,并根据所述文件上传请求从第一预设值个数的文件组中选取一个文件组,其中,每一文件组对应第二预设值个数的存储单元;
接收文件中的数据,并根据选取的所述文件组,将接收到的文件中的数据分别上传至选取的所述文件组对应的第二预设值个数的存储单元上;
当确定文件中的数据上传完成,且接收到大于等于第三预设值个数的存储单元返回的文件物理信息时,则数据写入成功,再将文件中的元数据信息更新至数据库,此时,返回文件上传请求成功;
其中,所述第一预设值、第二预设值和第三预设值均为大于1的正整数,且第三预设值小于等于第二预设值。
进一步的,作为一个可执行的方案,每一文件组中分别存储有各存储单元对应的地址;则,
在将接收到的文件中的数据分别上传至选取的所述文件组对应的第二预设值个数的存储单元上之前,所述方法还包括:
根据选取的所述文件组中存储的各存储单元对应的地址,同时与选取的所述文件组中的每一存储单元建立HTTP连接。
具体地,所述接收文件中的数据,并根据选取的所述文件组,将接收到的文件中的数据分别上传至选取的所述文件组对应的第二预设值个数的存储单元上,包括:
接收文件中的数据,且每当接收到的文件中的数据的容量达到预设阈值时,根据选取的所述文件组,将接收到的文件中的数据分别通过HTTP连接并行上传至选取的所述文件组对应的第二预设值个数的存储单元上。
进一步的,作为一个可执行的方案,所述方法还包括:
检测每个存储单元的传输速度,并选取出传输速度最慢的存储单元;
判断连接的存储单元数量是否大于第三预设值;
若是,断开与选取出传输速度最慢的存储单元之间的HTTP连接,将所述选取出传输速度最慢的存储单元从选取的所述文件组中剔除;
在文件中的数据上传完成后,检测是否接收到大于等于第三预设置个数的存储单元返回的文件物理信息;
若是,则确定数据写入成功。
优选地,所述将接收到的文件中的数据分别通过HTTP连接并行上传至选取的所述文件组对应的第二预设值个数的存储单元上,包括:
将接收到的文件中的数据分别通过HTTP连接并以字节流的方式并行上传至选取的所述文件组对应的第二预设值个数的存储单元上。
进一步的,作为一个可执行的方案,所述当接收到大于等于第三预设值个数的存储单元返回的文件物理信息时,确定数据写入成功,包括:
接收到各存储单元返回SHA1、MD5、SIZE的文件物理信息;
当接收到相同SHA1的文件物理信息大于等于第三预设值个数时,确定数据写入成功。
进一步地,本发明实施例还提供了一种基于多数派数据存储方法,包括:
存储单元接收前端服务器上传的文件中的数据;
当确定所述文件中的数据接收完成后,向所述前端服务器发送文件物理信息。
进一步的,作为一个可执行的方案,所述当确定所述文件中的数据接收完成后,向所述前端服务器发送文件物理信息,包括:
当确定所述文件中的数据接收完成后,向所述前端服务器发送SHA1、MD5、SIZE的文件物理信息。
进一步地,本发明实施例还提供了一种前端服务器,包括:
接收单元,用于接收文件上传请求,并根据所述文件上传请求从第一预设值个数的文件组中选取一个文件组,其中,每一文件组对应第二预设值个数的存储单元;
上传单元,用于接收文件中的数据,并根据选取的所述文件组,将接收到的文件中的数据分别上传至选取的所述文件组对应的第二预设值个数的存储单元上;
处理单元,用于当确定文件中的数据上传完成,且接收到大于等于第三预设值个数的存储单元返回的文件物理信息时,则数据写入成功,再将文件中的元数据信息更新至数据库,此时,返回文件上传请求成功;
其中,所述第一预设值、第二预设值和第三预设值均为大于1的正整数,且第三预设值小于等于第二预设值。
进一步的,作为一个可执行的方案,每一文件组中分别存储有各存储单元对应的地址;则,
所述上传单元,还用于在将接收到的文件中的数据分别上传至选取的所述文件组对应的第二预设值个数的存储单元上之前,根据选取的所述文件组中存储的各存储单元对应的地址,同时与选取的所述文件组中的每一存储单元建立HTTP连接。
进一步的,作为一个可执行的方案,所述上传单元,具体用于接收文件中的数据,且每当接收到的文件中的数据的容量达到预设阈值时,根据选取的所述文件组,将接收到的文件中的数据分别通过HTTP连接并行上传至选取的所述文件组对应的第二预设值个数的存储单元上。
进一步的,作为一个可执行的方案,所述前端服务器还包括检测单元:
所述检测单元,用于检测每个存储单元的传输速度,并选取出传输速度最慢的存储单元;判断连接的存储单元数量是否大于第三预设值;若是,断开与选取出传输速度最慢的存储单元之间的HTTP连接,将所述选取出传输速度最慢的存储单元从选取的所述文件组中剔除;在文件中的数据上传完成后,检测是否接收到大于等于第三预设置个数的存储单元返回的文件物理信息;若是,则确定数据写入成功。
进一步的,作为一个可执行的方案,所述上传单元,具体用于将接收到的文件中的数据分别通过HTTP连接并以字节流的方式并行上传至选取的所述文件组对应的第二预设值个数的存储单元上。
进一步的,作为一个可执行的方案,所述处理单元,具体用于接收到各存储单元返回SHA1、MD5、SIZE的文件物理信息;当接收到相同SHA1的文件物理信息大于等于第三预设值个数时,确定数据写入成功。
进一步地,本发明实施例还提供了一种存储单元,包括:
接收单元,用于接收前端服务器上传的文件中的数据;
发送单元,用于当确定所述文件中的数据接收完成后,向所述前端服务器发送文件物理信息。
进一步的,作为一个可执行的方案,所述发送单元,具体用于当确定所述文件中的数据接收完成后,向所述前端服务器发送SHA1、MD5、SIZE的文件物理信息。
进一步地,本发明实施例还提供了一种基于多数派数据存储系统,包括:
前端服务器,用于接收文件上传请求,并根据所述文件上传请求从第一预设值个数的文件组中选取一个文件组,其中,每一文件组对应第二预设值个数的存储单元;接收文件中的数据,并根据选取的所述文件组,将接收到的文件中的数据分别上传至选取的所述文件组对应的第二预设值个数的存储单元上;当确定文件中的数据上传完成,且接收到大于等于第三预设值个数的存储单元返回的文件物理信息时,则定数据写入成功,再将文件中的元数据信息更新至数据库,此时,返回文件上传请求成功;其中,所述第一预设值、第二预设值和第三预设值均为大于1的正整数,且第三预设值小于等于第二预设值。
存储单元,用于接收前端服务器上传的文件中的数据,并当确定所述文件中的数据接收完成后,向所述前端服务器发送文件物理信息。
本发明有益效果如下:
本发明实施例提供了一种基于多数派数据存储方法、装置及系统,在该方法中,前端服务器可根据接收到的文件上传请求从第一预设值个数的文件组中选取一个文件组,并根据选取的文件组,将接收到的文件中的数据分别上传至选取的文件组对应的第二预设值个数的存储单元上,且在确定文件中的数据上传完成,并接收到大于等于第三预设值个数的存储单元返回的文件物理信息时,则数据写入成功,再将文件中的元数据信息更新至数据库,此时,返回文件上传请求成功。本发明所述技术方案,写入文件通过采用多数派成功方法,不会出现单点问题,且任意少数派的副本设备出现故障,都不会造成数据丢失,另外,服务器采用流式透明代理的机制,将文件内容传输到每个文件副本上,减少了不必要的磁盘IO,且每个副本都是对等关系,不用维护设备之间的主从关系,从而提高了数据写入成功率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1所示为本发明实施例一所述的基于多数派数据存储方法的流程示意图;
图2所示为本发明实施例一所述的拓扑结构图;
图3所示为本发明实施例二所述的基于多数派数据存储方法的流程示意图;
图4所示为本发明实施例三所述的前端服务器的结构示意图;
图5所示为本发明实施例四所述的存储单元的结构示意图;
图6所示为本发明实施例五所述的一种基于多数派数据存储系统的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
实施例一:
本发明实施例一提供了一种基于多数派数据存储方法,如图1所示,其为本发明实施例一所述的基于多数派数据存储方法的流程示意图,所述方法可包括以下步骤:
步骤101:前端服务器接收文件上传请求,并根据所述文件上传请求从第一预设值个数的文件组中选取一个文件组,其中,每一文件组对应第二预设值个数的存储单元。
步骤102:接收文件中的数据,并根据选取的所述文件组,将接收到的文件中的数据分别上传至选取的所述文件组对应的第二预设值个数的存储单元上。
步骤103:当确定文件中的数据上传完成,且接收到大于等于第三预设值个数的存储单元返回的文件物理信息时,则数据写入成功,再将文件中的元数据信息更新至数据库,此时,返回文件上传请求成功。
其中,所述第一预设值、第二预设值和第三预设值均为大于1的正整数,且第三预设值小于等于第二预设值。
例如,假设第一预设值为2,第二预设值为3,第三预设值为2,如图2所示(本发明实施例拓扑结构图),在3个存储单元Store中存储数据副本,当有2个存储单元Store返回文件物理信息后(即多数派副本返回写入成功),前端服务器Front即可确定数据写入成功,并将文件中的元数据信息更新至数据库DB,此时,返回文件上传请求成功,以供用户了解反馈信息,图中Group-x为文件组x,Group-y为文件组y,本发明实施例对此不做赘述。
也就是说,在本发明实施例所述技术方案中,写入文件通过采用多数派成功方法,不会出现单点问题,且任意少数派的副本设备出现故障,都不会造成数据丢失,另外,服务器采用流式透明代理的机制,将文件内容传输到每个文件副本上,减少了不必要的磁盘IO,且每个副本都是对等关系,不用维护设备之间的主从关系,从而提高了数据写入成功率。
进一步地,每一文件组中分别存储有各存储单元对应的地址;则,对于步骤102中,在将接收到的文件中的数据分别上传至选取的所述文件组对应的第二预设值个数的存储单元上之前,所述方法还可包括以下步骤:
根据选取的所述文件组中存储的各存储单元对应的地址,同时与选取的所述文件组中的每一存储单元建立HTTP连接。
优选地,作为一个可执行方案,对于步骤102中,所述接收文件中的数据,并根据选取的所述文件组,将接收到的文件中的数据分别上传至选取的所述文件组对应的第二预设值个数的存储单元上,具体可包括:接收文件中的数据,且每当接收到的文件中的数据的容量达到预设阈值时,根据选取的所述文件组,将接收到的文件中的数据分别通过HTTP连接并行上传至选取的所述文件组对应的第二预设值个数的存储单元上。
例如,数据容量对应的预设阈值为1MB的数据,第二预设值为3个,这样每次前端服务器接收到1MB的数据后,就可以根据选取的文件组,将接收到的1MB的数据分别通过HTTP连接并行上传至选取的文件组对应的3个存储单元上。需要说明的是,前端服务器可为一个直接接收用户请求的nginx服务,可循环读取1M的缓冲区数据,同时处理数据库的访问,本发明实施例对此不作赘述。
优选地,作为一个可执行方案,将接收到的文件中的数据分别通过HTTP连接并行上传至选取的所述文件组对应的第二预设值个数的存储单元上,可具体执行为:将接收到的文件中的数据分别通过HTTP连接并以字节流的方式并行上传至选取的所述文件组对应的第二预设值个数的存储单元上。服务器采用流式透明代理的机制,将文件内容传输到每个文件副本上,减少了不必要的磁盘IO。
进一步地,为了提高文件的写入效率,所述方法还可包括以下步骤A1-A5:
步骤A1:检测每个存储单元的传输速度,并选取出传输速度最慢的存储单元。
步骤A2:判断连接的存储单元数量是否大于第三预设值。
步骤A3:若是,断开与选取出传输速度最慢的存储单元之间的HTTP连接,将所述选取出传输速度最慢的存储单元从选取的所述文件组中剔除。
步骤A4:在文件中的数据上传完成后,检测是否接收到大于等于第三预设置个数的存储单元返回的文件物理信息。
步骤A5:若是,则确定数据写入成功。
这样能够保证数据传输中的各通信线路的高效性,从而提高了数据写入的效率。
具体地,对于步骤103,所述当接收到大于等于第三预设值个数的存储单元返回的文件物理信息时,确定数据写入成功,可具体包括如下步骤B1-B2:
步骤B1:接收到各存储单元返回SHA1、MD5、SIZE的文件物理信息;
步骤B2:当接收到相同SHA1的文件物理信息大于等于第三预设值个数时,确定数据写入成功。
本发明实施例一提供了一种基于多数派数据存储方法,在该方法中,前端服务器可根据接收到的文件上传请求从第一预设值个数的文件组中选取一个文件组,并根据选取的文件组,将接收到的文件中的数据分别上传至选取的文件组对应的第二预设值个数的存储单元上,且在确定文件中的数据上传完成,并接收到大于等于第三预设值个数的存储单元返回的文件物理信息时,则数据写入成功,再将文件中的元数据信息更新至数据库,此时,返回文件上传请求成功。本发明所述技术方案,写入文件通过采用多数派成功方法,不会出现单点问题,且任意少数派的副本设备出现故障,都不会造成数据丢失,另外,服务器采用流式透明代理的机制,将文件内容传输到每个文件副本上,减少了不必要的磁盘IO,且每个副本都是对等关系,不用维护设备之间的主从关系,提高了数据写入成功率。
实施例二
基于与本发明实施例一相同的发明构思,本发明实施例二以存储单元为执行主体,提供了一种基于多数派数据存储方法,其流程示意图如图3所示,所述方法可包括以下步骤:
步骤301:存储单元接收前端服务器上传的文件中的数据。
步骤302:当确定所述文件中的数据接收完成后,向所述前端服务器发送文件物理信息。
进一步地,对于步骤302,当确定所述文件中的数据接收完成后,向所述前端服务器发送文件物理信息,可具体之行为:当确定所述文件中的数据接收完成后,向所述前端服务器发送SHA1、MD5、SIZE的文件物理信息。
本发明所述技术方案,写入文件通过采用多数派成功方法,不会出现单点问题,且任意少数派的副本设备出现故障,都不会造成数据丢失,另外,服务器采用流式透明代理的机制,将文件内容传输到每个文件副本上,减少了不必要的磁盘IO,且每个副本都是对等关系,不用维护设备之间的主从关系,提高了数据写入成功率。
进一步地,以前端服务器和存储单元交互为例,对本发明所述技术方案进行详细说明,具体细节描述可参见上述实施例一和实施例二中的相关描述,重复之处不再赘述,下面简单描述一下整体流程。
1、前端服务器接收到一个文件上传写入请求,选择1个文件组,文件组中保存了3个存储单元对应的存储地址,前端服务器同时建立到3个前端服务器到存储单元的HTTP连接。
2、前端服务器循环读取1M的缓冲区数据,每一个存储单元创建一个线程,并发的将缓冲区数据传输到3个存储单元,与此同时,检测每个存储单元的传输速度,每次发送完缓冲区数据时检查是否能构成多数派的存储单元能成功,且在能保证多数派成功的情况下,将传输速度慢的存储单元主动剔除,即断开该数据传输的HTTP链接。
3、文件内容全部发送完后,接收3个存储单元返回SHA1,MD5, SIZE的文件物理信息,由于同一个物理文件的SHA1一定相同,当有2(3/2+1=2)以上的多数派存储单元返回的SHA1相同时,则存储单元写入成功。
4、前端服务器更新完元数据信息后,返回一次文件上传请求成功。
需要说明的是,对于返回文件上传请求成功后,多数派副本被正确的写入的数据,文件的访问可以从任何一个正确写入的副本读取数据。
本发明实施例二提供了一种基于多数派数据存储方法,写入文件通过采用多数派成功方法,不会出现单点问题,且任意少数派的副本设备出现故障,都不会造成数据丢失,另外,服务器采用流式透明代理的机制,将文件内容传输到每个文件副本上,减少了不必要的磁盘IO,且每个副本都是对等关系,不用维护设备之间的主从关系,提高了数据写入成功率。
实施例三
基于与本发明实施例一相同的发明构思,本发明实施例三提供了一种前端服务器,该前端服务器的具体实施可参见上述方法实施例一中的相关描述,重复之处不再赘述,其结构示意图如图4所示,该前端服务器主要可包括:
接收单元41,可用于接收文件上传请求,并根据所述文件上传请求从第一预设值个数的文件组中选取一个文件组,其中,每一文件组对应第二预设值个数的存储单元;
上传单元42,可用于接收文件中的数据,并根据选取的所述文件组,将接收到的文件中的数据分别上传至选取的所述文件组对应的第二预设值个数的存储单元上;
处理单元43,可用于当确定文件中的数据上传完成,且接收到大于等于第三预设值个数的存储单元返回的文件物理信息时,则数据写入成功,再将文件中的元数据信息更新至数据库,此时,返回文件上传请求成功;
其中,所述第一预设值、第二预设值和第三预设值均为大于1的正整数,且第三预设值小于等于第二预设值。
进一步地,每一文件组中分别存储有各存储单元对应的地址;则,
所述上传单元42,还可用于在将接收到的文件中的数据分别上传至选取的所述文件组对应的第二预设值个数的存储单元上之前,根据选取的所述文件组中存储的各存储单元对应的地址,同时与选取的所述文件组中的每一存储单元建立HTTP连接。
进一步地,作为一个可执行方法,所述上传单元42,可具体用于接收文件中的数据,且每当接收到的文件中的数据的容量达到预设阈值时,根据选取的所述文件组,将接收到的文件中的数据分别通过HTTP连接并行上传至选取的所述文件组对应的第二预设值个数的存储单元上。
进一步地,作为一个可执行方法,所述前端服务器还包括检测单元44:
所述检测单元44,可用于检测每个存储单元的传输速度,并选取出传输速度最慢的存储单元;判断连接的存储单元数量是否大于第三预设值;若是,断开与选取出传输速度最慢的存储单元之间的HTTP连接,将所述选取出传输速度最慢的存储单元从选取的所述文件组中剔除;在文件中的数据上传完成后,检测是否接收到大于等于第三预设置个数的存储单元返回的文件物理信息;若是,则确定数据写入成功。
优选地,所述上传单元42,可具体用于所述将接收到的文件中的数据分别通过HTTP连接并以字节流的方式并行上传至选取的所述文件组对应的第二预设值个数的存储单元上。
进一步地,所述处理单元43,可具体用于接收到各存储单元返回SHA1、MD5、SIZE的文件物理信息;当接收到相同SHA1的文件物理信息大于等于第三预设值个数时,确定数据写入成功。
本发明实施例三提供了一种前端服务器,前端服务器可根据接收到的文件上传请求从第一预设值个数的文件组中选取一个文件组,并根据选取的文件组,将接收到的文件中的数据分别上传至选取的文件组对应的第二预设值个数的存储单元上,且在确定文件中的数据上传完成,并接收到大于等于第三预设值个数的存储单元返回的文件物理信息时,则数据写入成功,再将文件中的元数据信息更新至数据库,此时,返回文件上传请求成功。本发明所述技术方案,写入文件通过采用多数派成功方法,不会出现单点问题,且任意少数派的副本设备出现故障,都不会造成数据丢失,另外,服务器采用流式透明代理的机制,将文件内容传输到每个文件副本上,减少了不必要的磁盘IO,且每个副本都是对等关系,不用维护设备之间的主从关系,提高了数据写入成功率。
实施例四
基于与本发明实施例二相同的发明构思,本发明实施例四提供了一种存储单元,该存储单元的具体实施可参见上述方法实施例二中的相关描述,重复之处不再赘述,其结构示意图如图5所示,该存储单元主要可包括:
接收单元51,可用于接收前端服务器上传的文件中的数据;
发送单元52,可用于当确定所述文件中的数据接收完成后,向所述前端服务器发送文件物理信息。
进一步地,所述发送单元52,可具体用于当确定所述文件中的数据接收完成后,向所述前端服务器发送SHA1、MD5、SIZE的文件物理信息。
本发明实施例四提供了一种存储单元,写入文件通过采用多数派成功方法,不会出现单点问题,且任意少数派的副本设备出现故障,都不会造成数据丢失,另外,服务器采用流式透明代理的机制,将文件内容传输到每个文件副本上,减少了不必要的磁盘IO,且每个副本都是对等关系,不用维护设备之间的主从关系,提高了数据写入成功率。
实施例五
基于与本发明实施例一、二相同的发明构思,本发明实施例五提供了一种基于多数派数据存储系统,该系统的具体实施可参见上述方法实施例一、二中的相关描述,重复之处不再赘述,其结构示意图如图6所示,该系统主要可包括:
前端服务器61,可用于接收文件上传请求,并根据所述文件上传请求从第一预设值个数的文件组中选取一个文件组,其中,每一文件组对应第二预设值个数的存储单元;接收文件中的数据,并根据选取的所述文件组,将接收到的文件中的数据分别上传至选取的所述文件组对应的第二预设值个数的存储单元上;当确定文件中的数据上传完成,且接收到大于等于第三预设值个数的存储单元返回的文件物理信息时,则数据写入成功,再将文件中的元数据信息更新至数据库,此时,返回文件上传请求成功;其中,所述第一预设值、第二预设值和第三预设值均为大于1的正整数,且第三预设值小于等于第二预设值。
存储单元62,可用于接收前端服务器上传的文件中的数据,并当确定所述文件中的数据接收完成后,向所述前端服务器发送文件物理信息。
本发明实施例五提供了一种基于多数派数据存储系统,前端服务器可根据接收到的文件上传请求从第一预设值个数的文件组中选取一个文件组,并根据选取的文件组,将接收到的文件中的数据分别上传至选取的文件组对应的第二预设值个数的存储单元上,且在确定文件中的数据上传完成,并接收到大于等于第三预设值个数的存储单元返回的文件物理信息时,则数据写入成功,再将文件中的元数据信息更新至数据库,此时,返回文件上传请求成功。本发明所述技术方案,写入文件通过采用多数派成功方法,不会出现单点问题,且任意少数派的副本设备出现故障,都不会造成数据丢失,另外,服务器采用流式透明代理的机制,将文件内容传输到每个文件副本上,减少了不必要的磁盘IO,且每个副本都是对等关系,不用维护设备之间的主从关系,提高了数据写入成功率。
本领域技术人员应明白,本发明的可提供为方法、装置(设备)、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储单元、CD-ROM、光学存储单元等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储单元中,使得存储在该计算机可读存储单元中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (13)

1.一种基于多数派数据存储方法,其特征在于,包括:
前端服务器接收文件上传请求,并根据所述文件上传请求从第一预设值个数的文件组中选取一个文件组,其中,每一文件组对应第二预设值个数的存储单元;
接收文件中的数据,并根据选取的所述文件组,将接收到的文件中的数据分别上传至选取的所述文件组对应的第二预设值个数的存储单元上;
当确定文件中的数据上传完成,且接收到大于等于第三预设值个数的存储单元返回的文件物理信息时,则数据写入成功,再将文件中的元数据信息更新至数据库,此时,返回文件上传请求成功;
其中,所述第一预设值、第二预设值和第三预设值均为大于1的正整数,且第三预设值小于等于第二预设值并且大于第二预设值的一半。
2.如权利要求1所述的方法,其特征在于,每一文件组中分别存储有各存储单元对应的地址;则,
在将接收到的文件中的数据分别上传至选取的所述文件组对应的第二预设值个数的存储单元上之前,所述方法还包括:
根据选取的所述文件组中存储的各存储单元对应的地址,同时与选取的所述文件组中的每一存储单元建立HTTP连接。
3.如权利要求1-2中任一所述的方法,其特征在于,所述接收文件中的数据,并根据选取的所述文件组,将接收到的文件中的数据分别上传至选取的所述文件组对应的第二预设值个数的存储单元上,包括:
接收文件中的数据,且每当接收到的文件中的数据的容量达到预设阈值时,根据选取的所述文件组,将接收到的文件中的数据分别通过HTTP连接并行上传至选取的所述文件组对应的第二预设值个数的存储单元上。
4.如权利要求3所述的方法,其特征在于,所述方法还包括:
检测每个存储单元的传输速度,并选取出传输速度最慢的存储单元;
判断连接的存储单元数量是否大于第三预设值;
若是,断开与选取出传输速度最慢的存储单元之间的HTTP连接,将所述选取出传输速度最慢的存储单元从选取的所述文件组中剔除;
在文件中的数据上传完成后,检测是否接收到大于等于第三预设置个数的存储单元返回的文件物理信息;
若是,则确定数据写入成功。
5.如权利要求3所述的方法,其特征在于,所述将接收到的文件中的数据分别通过HTTP连接并行上传至选取的所述文件组对应的第二预设值个数的存储单元上,包括:
将接收到的文件中的数据分别通过HTTP连接并以字节流的方式并行上传至选取的所述文件组对应的第二预设值个数的存储单元上。
6.如权利要求1所述的方法,其特征在于,所述当接收到大于等于第三预设值个数的存储单元返回的文件物理信息时,确定数据写入成功,包括:
接收到各存储单元返回SHA1、MD5、SIZE的文件物理信息;
当接收到相同SHA1的文件物理信息大于等于第三预设值个数时,确定数据写入成功。
7.一种前端服务器,其特征在于,包括:
接收单元,用于接收文件上传请求,并根据所述文件上传请求从第一预设值个数的文件组中选取一个文件组,其中,每一文件组对应第二预设值个数的存储单元;
上传单元,用于接收文件中的数据,并根据选取的所述文件组,将接收到的文件中的数据分别上传至选取的所述文件组对应的第二预设值个数的存储单元上;
处理单元,用于当确定文件中的数据上传完成,且接收到大于等于第三预设值个数的存储单元返回的文件物理信息时,则数据写入成功,再将文件中的元数据信息更新至数据库,此时,返回文件上传请求成功;
其中,所述第一预设值、第二预设值和第三预设值均为大于1的正整数,且第三预设值小于等于第二预设值并且大于第二预设值的一半。
8.如权利要求7所述的前端服务器,其特征在于,每一文件组中分别存储有各存储单元对应的地址;则,
所述上传单元,还用于在将接收到的文件中的数据分别上传至选取的所述文件组对应的第二预设值个数的存储单元上之前,根据选取的所述文件组中存储的各存储单元对应的地址,同时与选取的所述文件组中的每一存储单元建立HTTP连接。
9.如权利要求7-8中任一所述的前端服务器,其特征在于,
所述上传单元,具体用于接收文件中的数据,且每当接收到的文件中的数据的容量达到预设阈值时,根据选取的所述文件组,将接收到的文件中的数据分别通过HTTP连接并行上传至选取的所述文件组对应的第二预设值个数的存储单元上。
10.如权利要求9所述的前端服务器,其特征在于,所述前端服务器还包括检测单元:
所述检测单元,用于检测每个存储单元的传输速度,并选取出传输速度最慢的存储单元;判断连接的存储单元数量是否大于第三预设值;若是,断开与选取出传输速度最慢的存储单元之间的HTTP连接,将所述选取出传输速度最慢的存储单元从选取的所述文件组中剔除;在文件中的数据上传完成后,检测是否接收到大于等于第三预设置个数的存储单元返回的文件物理信息;若是,则确定数据写入成功。
11.如权利要求10所述的前端服务器,其特征在于,
所述上传单元,具体用于将接收到的文件中的数据分别通过HTTP连接并以字节流的方式并行上传至选取的所述文件组对应的第二预设值个数的存储单元上。
12.如权利要求7所述的前端服务器,其特征在于,
所述处理单元,具体用于接收到各存储单元返回SHA1、MD5、SIZE的文件物理信息;当接收到相同SHA1的文件物理信息大于等于第三预设值个数时,确定数据写入成功。
13.一种基于多数派数据存储系统,其特征在于,包括:
前端服务器,用于接收文件上传请求,并根据所述文件上传请求从第一预设值个数的文件组中选取一个文件组,其中,每一文件组对应第二预设值个数的存储单元;接收文件中的数据,并根据选取的所述文件组,将接收到的文件中的数据分别上传至选取的所述文件组对应的第二预设值个数的存储单元上;当确定文件中的数据上传完成,且接收到大于等于第三预设值个数的存储单元返回的文件物理信息时,则数据写入成功,再将文件中的元数据信息更新至数据库,此时,返回文件上传请求成功;其中,所述第一预设值、第二预设值和第三预设值均为大于1的正整数,且第三预设值小于等于第二预设值并且大于第二预设值的一半;存储单元,用于接收前端服务器上传的文件中的数据,并当确定所述文件中的数据接收完成后,向所述前端服务器发送文件物理信息。
CN201611168618.4A 2016-12-16 2016-12-16 一种基于多数派数据存储方法、装置及系统 Active CN108206839B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201611168618.4A CN108206839B (zh) 2016-12-16 2016-12-16 一种基于多数派数据存储方法、装置及系统
PCT/CN2017/116513 WO2018108158A1 (zh) 2016-12-16 2017-12-15 一种基于多数派的数据存储方法、装置、存储介质及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611168618.4A CN108206839B (zh) 2016-12-16 2016-12-16 一种基于多数派数据存储方法、装置及系统

Publications (2)

Publication Number Publication Date
CN108206839A CN108206839A (zh) 2018-06-26
CN108206839B true CN108206839B (zh) 2020-02-07

Family

ID=62557999

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611168618.4A Active CN108206839B (zh) 2016-12-16 2016-12-16 一种基于多数派数据存储方法、装置及系统

Country Status (2)

Country Link
CN (1) CN108206839B (zh)
WO (1) WO2018108158A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109992209B (zh) * 2019-03-29 2023-02-03 新华三技术有限公司成都分公司 数据处理方法、装置及分布式存储系统
CN112383628B (zh) * 2020-11-16 2021-06-18 北京中电兴发科技有限公司 一种基于流式存储的存储网关资源分配方法
CN112511633B (zh) * 2020-12-03 2022-11-29 苏州浪潮智能科技有限公司 一种海量小文件分块传输的方法、系统、设备及介质
CN114936010B (zh) * 2022-07-20 2022-12-27 阿里巴巴(中国)有限公司 数据处理方法、装置、设备及介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101741911A (zh) * 2009-12-18 2010-06-16 中兴通讯股份有限公司 基于多副本协同的写操作方法、系统及节点
CN103186554A (zh) * 2011-12-28 2013-07-03 阿里巴巴集团控股有限公司 分布式数据镜像方法及存储数据节点
CN103207867A (zh) * 2012-01-16 2013-07-17 联想(北京)有限公司 处理数据块的方法、发起恢复操作的方法和节点
CN105577776A (zh) * 2015-12-17 2016-05-11 上海爱数信息技术股份有限公司 基于数据仲裁者副本的分布式存储系统及方法
CN105760556A (zh) * 2016-04-19 2016-07-13 江苏物联网研究发展中心 低延时高吞吐量的多副本文件读写优化方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5685454B2 (ja) * 2010-02-18 2015-03-18 富士通株式会社 ストレージ装置およびストレージシステム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101741911A (zh) * 2009-12-18 2010-06-16 中兴通讯股份有限公司 基于多副本协同的写操作方法、系统及节点
CN103186554A (zh) * 2011-12-28 2013-07-03 阿里巴巴集团控股有限公司 分布式数据镜像方法及存储数据节点
CN103207867A (zh) * 2012-01-16 2013-07-17 联想(北京)有限公司 处理数据块的方法、发起恢复操作的方法和节点
CN105577776A (zh) * 2015-12-17 2016-05-11 上海爱数信息技术股份有限公司 基于数据仲裁者副本的分布式存储系统及方法
CN105760556A (zh) * 2016-04-19 2016-07-13 江苏物联网研究发展中心 低延时高吞吐量的多副本文件读写优化方法

Also Published As

Publication number Publication date
CN108206839A (zh) 2018-06-26
WO2018108158A1 (zh) 2018-06-21

Similar Documents

Publication Publication Date Title
US10261853B1 (en) Dynamic replication error retry and recovery
CN108206839B (zh) 一种基于多数派数据存储方法、装置及系统
US10496489B1 (en) Storage system configured for controlled transition between asynchronous and synchronous replication modes
CN111818112B (zh) 一种基于Kafka系统的发送消息的方法和装置
US10496668B1 (en) Optimized tender processing of hash-based replicated data
US20190034465A1 (en) Blockchain logging of data from multiple systems
CN105426439A (zh) 一种元数据的处理方法和装置
CN106708653B (zh) 一种基于纠删码与多副本的混合税务大数据安全保护方法
WO2011140991A1 (zh) 分布式文件系统的文件处理方法及装置
GB2484086A (en) Reliability and performance modes in a distributed storage system
EP4213038A1 (en) Data processing method and apparatus based on distributed storage, device, and medium
CN103942112A (zh) 磁盘容错方法、装置及系统
CN111124277A (zh) 一种深度学习数据集缓存方法、系统、终端及存储介质
CN109408280A (zh) 数据备份方法、装置及系统
CN105493474A (zh) 用于支持用于同步分布式数据网格中的数据的分区级别日志的系统及方法
CN112052230B (zh) 多机房数据同步方法、计算设备及存储介质
CN105162879A (zh) 实现多机房数据一致性的方法、装置及系统
CN109254998B (zh) 数据管理方法、物联网设备、数据库服务器及系统
CN111049928A (zh) 数据同步方法、系统、电子设备及计算机可读存储介质
CN107295030B (zh) 一种数据写入方法、装置、数据处理方法、装置及系统
CN109714430A (zh) 分布式缓存方法、装置、计算机系统及存储介质
US20110078383A1 (en) Cache Management for Increasing Performance of High-Availability Multi-Core Systems
CN113347238A (zh) 基于区块链的消息分区方法及系统、设备、存储介质
CN109992447B (zh) 数据复制方法、装置及存储介质
EP3167372B1 (en) Methods for facilitating high availability storage services and corresponding devices

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
CB02 Change of applicant information

Address after: 550000 Fuyuan Medical Logistics Park Phase II 41, No. 22 Fuyuan North Road, Nanming District, Guiyang City, Guizhou Province

Applicant after: Guizhou Baishan cloud Polytron Technologies Inc

Address before: 550000 Fuyuan Medical Logistics Park Phase II 41, No. 22 Fuyuan North Road, Nanming District, Guiyang City, Guizhou Province

Applicant before: Guizhou white cloud Technology Co., Ltd.

CB02 Change of applicant information
CB03 Change of inventor or designer information

Inventor after: Wu Yipu

Inventor after: Zhang Yanpo

Inventor before: Peng Shuwen

Inventor before: Zhang Yanpo

CB03 Change of inventor or designer information
GR01 Patent grant
GR01 Patent grant