本发明涉及数据存储技术领域,尤其涉及一种基于多数派数据存储方法、装置及系统。
背景技术:
在大规模分布式存储系统中,设备的宕机、网络的异常和磁盘的故障随处可见,为解决这些异常情况,分布式存储系统往往会将数据冗余存储多份,每一份数据称为一个副本。这样当某个设备出现故障时,可以从其他的设备上访问到数据。同时当某个副本的数据丢失时,可以从其他副本恢复,保证了数据的可靠性。
由于写入数据时,需要写多副本,因此就需要一种方法如何写多个副本才算一次成功的请求。现有写入多副本的方法有:
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、光学存储单元等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储单元中,使得存储在该计算机可读存储单元中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。