分布式存储系统及其数据处理方法和装置制造方法及图纸

技术编号:19690825 阅读:42 留言:0更新日期:2018-12-08 10:55
本申请公开了分布式存储系统及其数据处理方法和装置,以方便读用户能够及时的从磁盘上读取到新的内容。该方法包括:接收客户端发送的原始数据,将其写入一个虚拟组块上;在接收到客户端发送的fflush()函数调用请求时,确定第一条块区域和第二条块区域,对第一条块区域进行数据编码,得到的编码数据写入第二条块区域;对于所述原始数据在虚拟组块的原始数据块上占用的区域,虚拟组块的所有原始数据块上的所述区域共同组成第一条块区域,虚拟组块的所有编码数据块上的所述区域共同组成第二条块区域;将所述原始数据和所述编码数据写入一个物理组块上,所述原始数据和所述编码数据在所述物理组块上的位置与在所述虚拟组块上的位置相同。

【技术实现步骤摘要】
分布式存储系统及其数据处理方法和装置
本专利技术涉及分布式存储
,更具体地说,涉及分布式存储系统及其数据处理方法和装置。
技术介绍
分布式存储系统,是指将数据分散存储在多台服务器的磁盘上,各服务器通过网络互联,对外作为一个整体提供存储服务。这些磁盘被划分成多个组,磁盘进行数据读/写的最小单位称为数据块,同一磁盘上各数据块按顺序编号,一组磁盘上同一编号的数据块合称为一个组块。所述组块采用m+n模式,即所述组块包含m+n个数据块,m>0,n>0,其中的m个数据块用来存储原始数据,称为原始数据块,其余的n个数据块用来存储编码数据,称为编码数据块。目前,写用户在写入文件的时候,分布式存储系统是在每写满m个数据块容量的原始数据后,才把所述原始数据和对所述原始数据进行编码得到的编码数据写入到磁盘的一个组块中。但是,当写用户写入文件的速度比较慢,很长时间都无法写满m个数据块容量时,读用户就难以及时地从磁盘上读取到新的内容。
技术实现思路
有鉴于此,本专利技术提供了分布式存储系统及其数据处理方法和装置,以方便读用户能够及时的从磁盘上读取到新的内容。一种分布式存储系统的数据处理方法,包括:接收客户端发送的原始数据;将所述原始数据写入一个虚拟组块上,所述虚拟组块是通过软件在内存上模拟出的一个组块,所述组块包括m个用来存储原始数据的原始数据块和n个用来存储编码数据的编码数据块,m>0,n>0;判断是否接收到客户端发送的fflush()函数调用请求,当接收到客户端发送的fflush()函数调用请求时,确定第一条块区域和第二条块区域,对所述第一条块区域进行数据编码,得到的编码数据写入所述第二条块区域;其中,对于所述原始数据在所述虚拟组块的原始数据块上占用的区域,所述虚拟组块的所有原始数据块上的所述区域共同组成所述第一条块区域,所述虚拟组块的所有编码数据块上的所述区域共同组成所述第二条块区域;将所述原始数据和所述编码数据写入一个物理组块上,所述原始数据和所述编码数据在所述物理组块上的位置与在所述虚拟组块上的位置相同。可选的,所述将所述原始数据写入一个虚拟组块上,包括:将所述原始数据写入一个虚拟组块的原始数据块上,一个原始数据块写满后再写下一个原始数据块,而且同一原始数据块上,新数据接着旧数据的尾部写。可选的,所述确定第一条块区域和第二条块区域,包括:如果所述原始数据位于所述虚拟组块的一个原始数据块上并且不足一个原始数据块的容量,则对于所述原始数据在这一原始数据块上占用的区域,将所述虚拟组块的所有原始数据块上的这一区域共同确定为第一条块区域,所述虚拟组块的所有编码数据块上的这一区域共同确定为第二条块区域;对应的,所述对所述第一条块区域进行数据编码,得到的编码数据写入所述第二条块区域,包括:对所述虚拟组块的所有原始数据块上的这一区域进行数据编码,得到的编码数据写入所述虚拟组块的所有编码数据块上的这一区域。可选的,所述确定第一条块区域和第二条块区域,包括:如果所述原始数据位于两个原始数据块上并且不足一个原始数据块的容量,则将所述原始数据在这两个原始数据块上分别占用的区域称为第一子区和第二子区,则所述虚拟组块的所有原始数据块上的所述第一子区合称为第一条块子区,所述虚拟组块的所有原始数据块上的所述第二子区合称为第二条块子区,所述虚拟组块的所有编码数据块上的所述第一子区合称为第三条块子区,所述虚拟组块的所有编码数据块上的所述第二子区合称为第四条块子区,将所述第一条块子区和所述第二条块子区共同确定为第一条块区域,将所述第三条块子区和所述第四条块子区共同确定为第二条块区域;对应的,所述对所述第一条块区域进行数据编码,得到的编码数据写入所述第二条块区域,包括:先对所述第一条块子区进行数据编码,得到的编码数据写入所述第三条块子区上;再对所述第二条块子区进行数据编码,得到的编码数据写入所述第四条块子区上。可选的,所述确定第一条块区域和第二条块区域,包括:如果所述原始数据等于或超过一个原始数据块的容量,则将所述虚拟组块的所有原始数据块确定为第一条块区域,将所述虚拟组块的所有编码数据块确定为第二条块区域;对应的,所述对所述第一条块区域进行数据编码,得到的编码数据写入所述第二条块区域,包括:对所述虚拟组块的所有原始数据块进行数据编码,得到的编码数据写入所述虚拟组块的所有编码数据块上。可选的,所述将所述原始数据写入一个虚拟组块上之后,还包括:判断所述虚拟组块的所有原始数据块是否已写满,若是,执行所述确定第一条块区域和第二条块区域的步骤,以及在执行所述将所述原始数据和所述编码数据写入一个物理组块上的步骤之后,清空所述虚拟组块。一种分布式存储系统的数据处理装置,包括:用户模块,用于接收客户端发送的原始数据;数据管理模块,用于将所述原始数据写入一个虚拟组块上,所述虚拟组块是通过软件在内存上模拟出的一个组块,所述组块包括m个用来存储原始数据的原始数据块和n个用来存储编码数据的编码数据块,m>0,n>0;判断是否接收到客户端发送的fflush()函数调用请求,当接收到客户端发送的fflush()函数调用请求时,确定第一条块区域和第二条块区域,对所述第一条块区域进行数据编码,得到的编码数据写入所述第二条块区域;其中,对于所述原始数据在所述虚拟组块的原始数据块上占用的区域,所述虚拟组块的所有原始数据块上的所述区域共同组成所述第一条块区域,所述虚拟组块的所有编码数据块上的所述区域共同组成所述第二条块区域;磁盘管理模块,用于将所述原始数据和所述编码数据写入一个物理组块上,所述原始数据和所述编码数据在所述物理组块上的位置与在所述虚拟组块上的位置相同。可选的,所述数据管理模块具体用于将所述原始数据写入虚拟组块的原始数据块上,一个原始数据块写满后再写下一个原始数据块,而且同一原始数据块上,新数据接着旧数据的尾部写。可选的,所述数据管理模块还用于,在所述虚拟组块的所有原始数据块写满时,执行所述确定第一条块区域和第二条块区域的步骤,并且在执行所述将所述原始数据和所述编码数据写入一个物理组块上的步骤之后,清空所述虚拟组块。一种分布式存储系统,包括:如上述公开的任一种数据处理装置。从上述的技术方案可以看出,写用户可以根据读用户的需求,在任意时刻通过客户端发送fflush()函数调用请求,分布式存储系统响应该请求,对写用户写入的原始数据进行编码,然后将所述原始数据和编码数据写入磁盘的相应位置上,从而读用户能够及时的从磁盘上读取到新的内容。相较于现有技术,读用户无需等到写用户写入足够的原始数据后才从磁盘上读取到新的内容,而是随时可读。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例公开的一种分布式存储系统的数据处理方法流程图;图2为一个组块的结构示意图;图3为本专利技术实施例公开的一种虚拟组块上第一次写入原始数据的示意图;图4为所述虚拟组块上第二次写入原始数据的示意图;图5为所本文档来自技高网...

【技术保护点】
1.一种分布式存储系统的数据处理方法,其特征在于,包括:接收客户端发送的原始数据;将所述原始数据写入一个虚拟组块上,所述虚拟组块是通过软件在内存上模拟出的一个组块,所述组块包括m个用来存储原始数据的原始数据块和n个用来存储编码数据的编码数据块,m>0,n>0;判断是否接收到客户端发送的fflush()函数调用请求,当接收到客户端发送的fflush()函数调用请求时,确定第一条块区域和第二条块区域,对所述第一条块区域进行数据编码,得到的编码数据写入所述第二条块区域;其中,对于所述原始数据在所述虚拟组块的原始数据块上占用的区域,所述虚拟组块的所有原始数据块上的所述区域共同组成所述第一条块区域,所述虚拟组块的所有编码数据块上的所述区域共同组成所述第二条块区域;将所述原始数据和所述编码数据写入一个物理组块上,所述原始数据和所述编码数据在所述物理组块上的位置与在所述虚拟组块上的位置相同。

【技术特征摘要】
1.一种分布式存储系统的数据处理方法,其特征在于,包括:接收客户端发送的原始数据;将所述原始数据写入一个虚拟组块上,所述虚拟组块是通过软件在内存上模拟出的一个组块,所述组块包括m个用来存储原始数据的原始数据块和n个用来存储编码数据的编码数据块,m>0,n>0;判断是否接收到客户端发送的fflush()函数调用请求,当接收到客户端发送的fflush()函数调用请求时,确定第一条块区域和第二条块区域,对所述第一条块区域进行数据编码,得到的编码数据写入所述第二条块区域;其中,对于所述原始数据在所述虚拟组块的原始数据块上占用的区域,所述虚拟组块的所有原始数据块上的所述区域共同组成所述第一条块区域,所述虚拟组块的所有编码数据块上的所述区域共同组成所述第二条块区域;将所述原始数据和所述编码数据写入一个物理组块上,所述原始数据和所述编码数据在所述物理组块上的位置与在所述虚拟组块上的位置相同。2.根据权利要求1所述的分布式存储系统的数据处理方法,其特征在于,所述将所述原始数据写入一个虚拟组块上,包括:将所述原始数据写入一个虚拟组块的原始数据块上,一个原始数据块写满后再写下一个原始数据块,而且同一原始数据块上,新数据接着旧数据的尾部写。3.根据权利要求2所述的分布式存储系统的数据处理方法,其特征在于,所述确定第一条块区域和第二条块区域,包括:如果所述原始数据位于所述虚拟组块的一个原始数据块上并且不足一个原始数据块的容量,则对于所述原始数据在这一原始数据块上占用的区域,将所述虚拟组块的所有原始数据块上的这一区域共同确定为第一条块区域,所述虚拟组块的所有编码数据块上的这一区域共同确定为第二条块区域;对应的,所述对所述第一条块区域进行数据编码,得到的编码数据写入所述第二条块区域,包括:对所述虚拟组块的所有原始数据块上的这一区域进行数据编码,得到的编码数据写入所述虚拟组块的所有编码数据块上的这一区域。4.根据权利要求2所述的分布式存储系统的数据处理方法,其特征在于,所述确定第一条块区域和第二条块区域,包括:如果所述原始数据位于两个原始数据块上并且不足一个原始数据块的容量,则将所述原始数据在这两个原始数据块上分别占用的区域称为第一子区和第二子区,则所述虚拟组块的所有原始数据块上的所述第一子区合称为第一条块子区,所述虚拟组块的所有原始数据块上的所述第二子区合称为第二条块子区,所述虚拟组块的所有编码数据块上的所述第一子区合称为第三条块子区,所述虚拟组块的所有编码数据块上的所述第二子区合称为第四条块子区,将所述第一条块子区和所述第二条块子区共同确定为第一条块区域,将所述第三条块子区和所述第四条块子区共同确定为第二条块区域;对应的,所述对所述第一条块区域进行数据编码,得到的编码数据写入所述第二条块区域,...

【专利技术属性】
技术研发人员:徐佳宏李银
申请(专利权)人:深圳市茁壮网络股份有限公司
类型:发明
国别省市:广东,44

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

1