一种基于多数派数据存储方法、装置及系统制造方法及图纸

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

Data storage method, device and system based on majority faction

The present invention discloses a method, device and system based on the majority of data storage. In this method, the front end server can select a file group from the file group of the number of first preset values according to the received file upload request, and the data in the received file is passed to the second pre-set of the selected file group, respectively. On the storage unit of the number of values, the data is uploaded in the file and the file physical information returned by the storage unit which is more than third preset values is received, then the data is written successfully, and then the metadata information in the file is updated to the database. At this time, the file upload request is successful. The technical scheme of the invention can not cause a single point problem by writing a majority of the successful methods in the file, and any minor copy equipment fails to cause data loss. The server uses a flow proxy to transfer the content of the file to each copy, which can reduce the IO occupation of the disk.

【技术实现步骤摘要】
一种基于多数派数据存储方法、装置及系统
本专利技术涉及数据存储
,尤其涉及一种基于多数派数据存储方法、装置及系统。
技术介绍
在大规模分布式存储系统中,设备的宕机、网络的异常和磁盘的故障随处可见,为解决这些异常情况,分布式存储系统往往会将数据冗余存储多份,每一份数据称为一个副本。这样当某个设备出现故障时,可以从其他的设备上访问到数据。同时当某个副本的数据丢失时,可以从其他副本恢复,保证了数据的可靠性。由于写入数据时,需要写多副本,因此就需要一种方法如何写多个副本才算一次成功的请求。现有写入多副本的方法有: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连接,将本文档来自技高网
...
一种基于多数派数据存储方法、装置及系统

【技术保护点】
1.一种基于多数派数据存储方法,其特征在于,包括:前端服务器接收文件上传请求,并根据所述文件上传请求从第一预设值个数的文件组中选取一个文件组,其中,每一文件组对应第二预设值个数的存储单元;接收文件中的数据,并根据选取的所述文件组,将接收到的文件中的数据分别上传至选取的所述文件组对应的第二预设值个数的存储单元上;当确定文件中的数据上传完成,且接收到大于等于第三预设值个数的存储单元返回的文件物理信息时,则数据写入成功,再将文件中的元数据信息更新至数据库,此时,返回文件上传请求成功;其中,所述第一预设值、第二预设值和第三预设值均为大于1的正整数,且第三预设值小于等于第二预设值。

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

【专利技术属性】
技术研发人员:彭书文张炎泼
申请(专利权)人:贵州白山云科技有限公司
类型:发明
国别省市:贵州,52

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1