CN103631539B - 基于擦除编码机制的分布式存储***及其存储方法 - Google Patents
基于擦除编码机制的分布式存储***及其存储方法 Download PDFInfo
- Publication number
- CN103631539B CN103631539B CN201310683621.XA CN201310683621A CN103631539B CN 103631539 B CN103631539 B CN 103631539B CN 201310683621 A CN201310683621 A CN 201310683621A CN 103631539 B CN103631539 B CN 103631539B
- Authority
- CN
- China
- Prior art keywords
- data
- storage
- write
- erasure codes
- node device
- 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
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
提供一种基于擦除编码机制的分布式存储***及其存储方法。所述分布式存储***,包括:管理层***,包括多个节点装置,用于对写入的数据执行擦除编码,并将擦除编码后的数据提供给存储底层***;存储底层***,包括多个存储服务器,用于分布地存储擦除编码后的数据;其中,数据在存储底层***中的索引信息以副本的形式被分别存储在所述多个节点装置中的N个节点装置中,其中,N为大于1的整数。通过上述方式,可降低分布式存储所需的空间,并确保可靠性。
Description
技术领域
本申请涉及存储技术,更具体地说,涉及一种基于擦除编码机制来分布式地存储数据的存储***及其存储方法。
背景技术
随着互联网技术的发展,实现可靠的海量数据存储变为一个巨大的挑战。目前,互联网中的后端存储***多采用三副本机制(例如,键值对(key-value)分布式存储***),从而在三个不同位置分别对数据进行存储以提高数据存储的可靠性。例如,针对权限管理、命名空间、文件对象的数据和元数据均可被存放在云端的存储***,其中,每份云存储的数据或元数据被分别存储在三台不同的存储服务器上。
然而,基于三副本机制的分布式存储***具有以下缺点:
1、存储成本过高。由于数据被存储在三个不同的位置,所以冗余数据占用了大约66.7%的存储空间。随着存储数据量的增加,将会造成严重的存储空间冗余。以互联网的云端存储为例,假设当前的用户数据已经接近4PB之多,那么,由于冗余数据的存在,当前实际的存储容量将超过10PB。而随着云存储的用户数不断增加,预计在2014年底,用户数据将超过200PB,如果继续采用三副本机制,冗余数据所耗费的成本将达到无法容忍的地步。
2、数据的一致性较弱。由于后端存储***采用三副本机制,所以在存储***中刚写入的数据内容可能需要过段时间才能被客户端读到。这会增加用户在使用基于上述存储方式的应用时的复杂度。
发明内容
本发明的目的在于提供一种基于擦除编码机制来分布式地存储数据的存储***及其存储方法。
根据本发明的一方面,提供一种基于擦除编码机制的分布式存储***,包括:管理层***,包括多个节点装置,用于对写入的数据执行擦除编码,并将擦除编码后的数据提供给存储底层***;存储底层***,包括多个存储服务器,用于分布地存储擦除编码后的数据;其中,数据在存储底层***中的索引信息以副本的形式被分别存储在所述多个节点装置中的N个节点装置中,其中,N为大于1的整数。
在所述分布式存储***中,N可以为3。
在所述分布式存储***中,写入的数据可以指基于键值对的数据条目。
在所述分布式存储***中,管理层***还可包括:节点管理装置,用于根据数据的写入请求来指定执行数据写入的节点装置,并根据数据的读取请求来搜索执行了所述数据的写入操作的节点装置。
在所述分布式存储***中,存储底层***还可包括:元数据服务器,用于存储元数据,其中,所述元数据指示擦除编码后的数据如何分布地存储于多个存储服务器。
在所述分布式存储***中,节点管理装置可根据数据的写入请求来指定执行数据写入的主节点装置及其副节点装置。
在所述分布式存储***中,节点装置可包括:日志单元,用于临时存储写入的数据,直到写入的数据达到预定的块大小;内存单元,用于与日志单元镜像地存储写入的数据,接口单元,用于当节点装置作为主节点装置时,如果内存单元中写入的数据达到块大小,则对所述块大小的数据执行擦除编码,并将擦除编码后的数据提供给存储底层***;索引存储单元,用于持久地存储数据在存储底层***的索引信息,其中,所述索引信息指示数据条目中的值数据在存储底层***中所对应的块。
在所述分布式存储***中,节点管理装置可进行控制以将数据写入主节点装置和副节点装置的日志单元和内存单元,当写入主节点装置的内存单元的数据达到块大小时,主节点装置的接口单元从它的内存单元中取出写入的块大小的数据,将所述块大小的数据划分为k个部分数据,对k个部分数据执行擦除编码,以得到由k+m个部分数据组成的擦除编码后的块,并将擦除编码后的块所包括的k+m个部分数据分别写入存储底层***中的k+m个存储服务器,其中,k和m为整数,两者的关系符合擦除编码机制,其中,元数据指示分布地存储所述k+m个部分数据的k+m个存储服务器。
在所述分布式存储***中,当主节点装置的接口单元从它的内存单元中取出写入的块大小的数据时,主节点装置和副节点装置的日志单元和内存单元可清空并重新开始写入数据。
在所述分布式存储***中,节点管理装置可根据数据的读取请求来搜索执行了所述数据的写入操作的主节点装置,所述主节点装置从存储的所述数据的索引信息确定数据条目中的值数据在存储底层***中所对应的块,并将所述块告知元数据服务器,元数据服务器根据存储的所述块的元数据来确定分布地存储与所述块对应的k+m个部分数据的k+m个存储服务器,主节点装置分别从所述k+m个存储服务器中的至少一个存储服务器读取与数据条目对应的部分数据。
在所述分布式存储***中,当主节点装置无法读取所有与数据条目对应的部分数据时,主节点装置可仅读取所述块中的k个部分数据,并基于擦除编码机制来恢复其余m个部分数据。
所述分布式存储***可应用于云端存储。
根据本发明的另一方面,提供一种基于擦除编码机制的分布式存储方法,包括:在管理层***对写入的数据执行擦除编码;将擦除编码后的数据分布地存储于存储底层***中的多个存储服务器;将数据在存储底层***中的索引信息以副本的形式分别存储在管理层***所包括的多个节点装置中的N个节点装置中,其中,N为大于1的整数。
根据本发明的示例性实施例,可使得分布式数据存储的冗余度符合擦除编码机制,从而节省存储空间,并且,通过以副本的形式存储索引信息来确保数据存储的可靠性。
附图说明
通过下面结合附图对本发明示例性实施例的描述,本发明的上述和其它目的和特点将会变得更加清楚,其中:
图1示出根据本发明示例性实施例的基于擦除编码机制的分布式存储***的框图;
图2示出根据本发明示例性实施例的基于擦除编码机制的分布式存储方法的流程图;
图3示出根据本发明示例性实施例的节点装置的框图;
图4示出根据本发明示例性实施例的元数据的示例;
图5示出根据本发明示例性实施例的基于擦除编码机制来写入数据的方法的流程图;
图6示出根据本发明示例性实施例的基于擦除编码机制来读取数据的方法的流程图。
具体实施方式
现将详细参照本发明的实施例,所述实施例的示例在附图中示出,其中,相同的标号始终指的是相同的部件。以下将通过参照附图来说明所述实施例,以便解释本发明。
图1示出根据本发明示例性实施例的基于擦除编码机制的分布式存储***的框图。参照图1,根据本发明示例性实施例的分布式存储***包括:管理层***10和存储底层***20,其中,管理层***10包括多个节点装置,用于对写入的数据执行擦除编码,并将擦除编码后的数据提供给存储底层***20;存储底层***20包括多个存储服务器,用于分布此存储擦除编码后的数据。这里,数据在存储底层***中的索引信息以副本的形式被分别存储在所述多个节点装置中的N个节点装置中,其中,N为大于1的整数。这里,作为优选示例,N可以是3。作为优选示例,图1所示的分布式存储***可应用于云端存储,但本发明并不受限于云端存储。
以下将参照图2来描述根据本发明示例性实施例的基于擦除编码机制的分布式存储方法。参照图2,在步骤S10,在管理层***对写入的数据执行擦除编码。这里,擦除编码是本领域技术人员已知的通过加入冗余来进行编码的算法,例如,当对k个有效数据部分执行擦除编码时,可获得(k+m)个编码后的数据部分,其中,m个校验部分被添加到k个有效数据部分,这里,k和m为整数,两者之间的关系符合所采用的擦除编码机制。
作为优选示例,写入的数据可指的是基于键值对(key-value)的数据条目。在基于键值对的数据条目中,包括值(value)数据(对应于待写入的有效数据)和相应的键(key)数据(用于检索值数据)两者。在这种情况下,可通过以基于键值对的数据条目为单位来划分将被存储的数据内容,从而获得将要写入分布式存储***的各个数据条目。
然而,本领域技术人员应知晓,根据本发明示例性实施例的分布式存储***及其方法并不受限于键值对数据,而是可根据所应用的环境来读写各种格式的数据。
接下来,在步骤S20,将擦除编码后的数据分布地存储于存储底层***中的多个存储服务器。例如,可将擦除编码后的(k+m)个数据部分分别存储在(k+m)个存储服务器中。由于数据采用分布式存储,且冗余度遵循擦除编码机制,因此,与传统的三副本存储机制相比,可有效地节省数据的存储空间。
然后,在步骤S30,将数据在存储底层***中的索引信息以副本的形式分别存储在管理层***所包括的多个节点装置中的N个节点装置中。由此可见,在根据本发明示例性实施例的分布式存储***中,索引信息以副本的形式分布地存储在管理层***中的N个节点装置中,使得在降低数据冗余度的情况下保证数据的可靠性。
从图1和图2可以看出,在根据本发明示例性实施例的分布式存储***及其方法中,分布地存储于存储底层***中的多个存储服务器的是擦除编码后的数据,而非数据的多个副本,这样,可降低数据存储的冗余度,特别是对于诸如存储海量数据的云端存储而言,将明显地节省存储空间。此外,由于采取了不同于数据本身的副本存储机制来存储索引信息,使得能够确保数据存储的可靠性。
参照回图1,作为附加部分,在图1所示的分布式存储***中,管理层***10还包括节点管理装置100,用于根据数据的写入请求来指定执行数据写入的节点装置,并根据数据的读取请求来搜索执行了所述数据的写入操作的节点装置。作为优选示例,节点管理装置100可根据数据的写入请求来指定执行数据写入的主节点装置及其副节点装置,这里,在写入完成之后,主节点装置和副节点装置均持久地存储有数据在存储底层***中的索引信息。
作为优选示例,节点管理装置100可具有两个从节点管理装置(未示出),作为节点管理装置100的备份装置。这里,可在管理层***中设置仲裁装置,以在节点管理装置100宕机时切换至作为备份装置的从节点管理装置。
此外,作为附加部分,在图1所示的分布式存储***中,存储底层***20还包括元数据服务器200,用于存储元数据,其中,所述元数据指示擦除编码后的数据如何分布地存储于多个存储服务器。类似地,元数据服务器200也可以具有其备份服务器(未示出),以用于在元数据服务器200宕机时,切换到备份服务器来继续提供数据存储服务。
作为优选示例,为了进一步提高数据读取的速度,可在节点装置与元数据服务器200之间设置多个元数据代理服务器(未示出),作为元数据的前端缓存代理,以减少元数据服务器200的操作压力。这里,可将各个数据块均匀地映射到所述多个元数据代理服务器,从而主节点装置可根据上述映射关系将数据块ID提供给对应的元数据代理服务器。
以下参照图3来描述根据本发明示例性实施例的节点装置。参照图3,根据本发明示例性实施例的节点装置包括:日志单元300、内存单元310、接口单元320和索引存储单元330。
具体说来,日志单元300用于临时存储写入的数据,直到写入的数据达到预定的块大小。这里,可基于“块”这一单位来向存储底层***写入数据,也就是说,每当待写入的数据在管理层***中累积到一个数据块时,可对所述数据块执行擦除编码,并将擦除编码后的数据块提供给存储底层***。
内存单元310用于与日志单元300镜像地存储写入的数据。通过这种方式,当节点装置宕机时,可通过从日志单元300中恢复数据来避免由于内存单元310中的数据丢失所造成的损失。
这里,作为优选示例,当写入的数据为基于键值对的数据条目时,键数据与值数据两者均被写入日志单元300和内存单元310,从而当接收到读取数据的请求时,如果该数据仍旧保存在内存单元310中,则可优先基于键数据在内存单元310中找到相应的值数据,提高数据读取速度。
接口单元320用于当节点装置作为主节点装置时,如果内存单元310中写入的数据达到块大小,则对所述块大小的数据执行擦除编码,并将擦除编码后的数据提供给存储底层***。
这里,作为示例,在节点管理装置100根据数据的写入请求指定了执行数据写入的主节点装置(例如,节点装置1),并指定了主节点装置的副节点装置(例如,节点装置2和节点装置3)之后,节点管理装置100可进行控制以将数据写入主节点装置以及各个副节点装置的日志单元300和内存单元310,当写入主节点装置的内存单元310的数据达到块大小时,主节点装置的接口单元320可从内存单元310中取出写入的块大小的数据,将所述块大小的数据划分为k个部分数据,对k个部分数据执行擦除编码,以得到由k+m个部分数据组成的擦除编码后的块,并将擦除编码后的块所包括的k+m个部分数据分别提供给存储底层***20中的k+m个存储服务器,其中,k和m为整数,两者的关系符合擦除编码机制。
在这种情况下,在数据块的各个部分数据均被成功存储到各个存储服务器之后,主节点装置将相应的元数据存储在元数据服务器200中,从而该数据块变为可读状态。这里,所述元数据指示数据块中的k+m个部分数据被分别存储到的k+m个存储服务器。
例如,参照图4,根据本发明的示例性实施例,对于存储在存储底层***中的某个数据块(由数据块的标识符(ID)来标识),它的元数据被用于指示分别存储了所述数据块中的(k+m)个部分数据的(k+m)个存储服务器。通过存储该元数据,对于特定数据块,元数据服务器200可确定分布地存储与所述数据块对应的k+m个部分数据的k+m个存储服务器,以便在后续完成数据块的读取。
索引存储单元330用于持久地存储数据在存储底层***的索引信息,这里,对于基于键值对的数据条目而言,所述索引信息指示数据条目中的值数据在存储底层***中所对应的块。作为示例,所述索引信息可包括以下项:数据条目的值数据所对应的数据块的标识符(ID)、数据条目的值数据在所述数据块中的偏移位置、数据条目的值数据的长度。根据本发明的示例性实施例,当接收到读取数据的请求时,节点管理装置100根据所述请求来搜索存储了所述数据的索引信息的主节点装置,所述主节点装置从索引信息确定数据条目中的值数据在存储底层***中所对应的数据块,并将所述数据块告知元数据服务器200,从而元数据服务器200可确定分布地存储与所述数据块对应的k+m个部分数据的k+m个存储服务器,以便主节点装置从k+m个存储服务器中的至少一个存储服务器读取与期望读取的数据(例如,数据条目)对应的各个部分数据。
图5示出根据本发明示例性实施例的基于擦除编码机制来写入数据的方法的流程图。
参照图5,在步骤S100,主节点装置通过接口单元320接收用于写入数据的请求。这里,所述主节点装置是由节点管理装置100根据所述用于写入数据的请求在管理层***10中的多个节点装置中所指定的。并且,节点管理装置100还相应地指定了主节点装置的副节点装置。
作为优选示例,待写入的数据可以是划分好的基于键值对的数据条目,其中,每个数据条目的大小可被设置为小于数据块的大小,这里,仅作为示例,数据块的大小可以是64M。
接下来,在步骤S200,主节点装置的接口单元320将key-value数据条目的键数据和值数据写入主节点装置和副节点装置的日志单元300,并镜像地将所述键数据和值数据写入主节点装置和副节点装置的内存单元310。
当写入内存单元310的数据达到预定的块大小时,在步骤S300,主节点装置的接口单元320从主节点装置的内存单元310中取出写入的数据块,相应地,日志单元300和内存单元310被清空并重新开始写入后续的数据。
接下来,在步骤S400,主节点装置的接口单元320将所述数据块划分为k个部分数据,对k个部分数据执行擦除编码,以得到由k+m个部分数据组成的擦除编码后的块,这里,k和m为整数,可根据应用的需要来设置,两者的关系符合擦除编码机制。此外,仅作为示例,可采用柯西里德所罗门编码(Cauchy Reed-Solomon)作为擦除编码的具体算法。
然后,在步骤S500,主节点装置的接口单元320将擦除编码后的块所包括的k+m个部分数据分别写入存储底层***中的k+m个存储服务器。这里,主节点装置的接口单元320可首先将擦除编码后的块提供给存储底层***中的元数据服务器200,以请求元数据服务器200为所述擦除编码后的块分配k+m个存储服务器。在获知分配的k+m个存储服务器之后,主节点装置的接口单元320并行地向所述k+m个存储服务器发起写请求,如果针对某个存储服务器的写入失败,则再次向该存储服务器发起写请求或请求元数据服务器200重新作出分配,直到所有k+m个部分数据被分别写入各自的存储服务器。
在步骤S600,主节点装置的接口单元320将指示实际上分布地存储所述k+m个部分数据的k+m个存储服务器的元数据提供给元数据服务器200。在这种情况下,相应的数据块变为可读状态。
然后,在步骤S700,主节点装置的接口单元320将指示数据条目中的值数据在存储底层***20中所对应的数据块的索引信息转发给它的副节点装置,以便主节点装置和副节点装置均将所述索引信息保存在各自的索引存储单元330中。
图6示出根据本发明示例性实施例的基于擦除编码机制来读取数据的方法的流程图。
参照图6,在步骤S1000,主节点装置通过接口单元320接收用于读取数据的请求。这里,所述主节点装置是由节点管理装置100根据所述用于读取数据的请求在管理层***10中的多个节点装置中搜索到的执行了所述数据的写入操作的节点装置。并且,节点管理装置100可相应地确定所述主节点装置的副节点装置。
接下来,作为可选方式,在步骤S2000,主节点装置可首先通过接口单元210在它的内存单元310中搜索期望读取的数据。如果主节点装置的接口单元210在步骤S3000确定期望读取的数据被找到,则主节点装置的接口单元210在步骤S4000从内存单元310中读取数据。具体说来,如之前所述,由于当写入的数据为基于键值对的数据条目时,键数据与值数据两者均被写入日志单元300和内存单元310,所以当接收到读取数据的请求时,如果该数据仍旧保存在内存单元310中,则可优先基于键数据在内存单元310中找到相应的值数据,提高数据读取速度。
如果主节点装置的接口单元210在步骤S3000确定没有找到期望读取的数据,则在步骤S5000,主节点装置的接口单元210根据存储在索引存储单元330中的索引信息确定数据条目中的值数据在存储底层***20中所对应的数据块,并向元数据服务器200通知所述数据块。相应地,在步骤S6000,元数据服务器200根据存储的所述数据块的元数据来确定分布地存储与所述数据块对应的k+m个部分数据的k+m个存储服务器。这里,作为可选示例,在主节点装置的接口单元210确定所述数据块之后,其可以向对应的元数据代理服务器通知所述数据块,以便由所述对应的元数据代理服务器来确定分布地存储与所述数据块对应的k+m个部分数据的k+m个存储服务器。如果对应的元数据代理服务器未能直接将相应的元数据提供给主节点装置,则元数据代理服务器可向元数据服务器200请求相应的元数据,再将获得的元数据提供给主节点装置。然而,如果元数据代理服务器未能请求到相应的元数据,则主节点装置的接口单元320可直接向元数据服务器200请求刷新元数据代理服务器的分布,并向重新映射的元数据代理服务器请求相应的元数据。
由于索引信息包括了待读取数据(例如,数据条目)在数据块中的偏移位置和长度,并且,元数据指示了所述数据块中的各个部分数据分布于多个存储服务器的信息,因此,在步骤S7000,主节点装置的接口单元320分别从所述k+m个存储服务器中的至少一个存储服务器(其中,所述至少一个存储服务器中写入了与数据条目相关的部分数据)读取与数据条目对应的部分数据,并整合读取的数据。
作为优选方式,由于本发明的示例性实施例采用了基于擦除编码机制来生成各个部分数据的方式(其中,除了有效数据部分之外,还增加了相应的校验部分),因此,在读取数据时,可进一步采取降级读取的方式,即,当主节点装置无法读取所有与数据条目对应的部分数据时,主节点装置仅读取所述数据块中的k个部分数据,并基于擦除编码机制来恢复其余m个部分数据。
应注意,以上尽管以基于键值对的数据条目作为示例进行了描述,但本发明并不受限于基于键值对的分布式存储,任何适当格式的数据均可应用于本发明。
此外,在根据本发明示例性实施例的分布式存储***及其方法中,可使得分布式数据存储的冗余度符合擦除编码机制,从而节省存储空间,并且,通过以副本的形式存储索引信息来确保数据存储的可靠性。
本发明的以上各个实施例仅仅是示例性的,而本发明并不受限于此。本领域技术人员应该理解:在不脱离本发明的原理和精神的情况下,可对这些实施例进行改变,其中,本发明的范围在权利要求及其等同物中限定。
Claims (12)
1.一种基于擦除编码机制的分布式存储***,包括:
管理层***,包括多个节点装置,用于对写入的数据执行擦除编码,并将擦除编码后的数据提供给存储底层***;
存储底层***,包括多个存储服务器,用于分布地存储擦除编码后的数据;
其中,数据在存储底层***中的索引信息以副本的形式被分别存储在所述多个节点装置中的N个节点装置中,其中,N为大于1的整数,
其中,节点装置包括:
日志单元,用于临时存储写入的数据,直到写入的数据达到预定的块大小;
内存单元,用于与日志单元镜像地存储写入的数据,
接口单元,用于当节点装置作为主节点装置时,如果内存单元中写入的数据达到块大小,则对所述块大小的数据执行擦除编码,并将擦除编码后的数据提供给存储底层***;
索引存储单元,用于持久地存储数据在存储底层***的索引信息,其中,所述索引信息指示数据条目中的值数据在存储底层***中所对应的块。
2.如权利要求1所述的分布式存储***,其中,N为3。
3.如权利要求1所述的分布式存储***,其中,写入的数据是指基于键值对的数据条目。
4.如权利要求1到3之一中的任何一个所述的分布式存储***,其中,管理层***还包括:节点管理装置,用于根据数据的写入请求来指定执行数据写入的节点装置,并根据数据的读取请求来搜索执行了所述数据的写入操作的节点装置。
5.如权利要求4所述的分布式存储***,其中,存储底层***还包括:元数据服务器,用于存储元数据,其中,所述元数据指示擦除编码后的数据如何分布地存储于多个存储服务器。
6.如权利要求5所述的分布式存储***,其中,节点管理装置根据数据的写入请求来指定执行数据写入的主节点装置及其副节点装置。
7.如权利要求6所述的分布式存储***,其中,节点管理装置进行控制以将数据写入主节点装置和副节点装置的日志单元和内存单元,当写入主节点装置的内存单元的数据达到块大小时,主节点装置的接口单元从它的内存单元中取出写入的块大小的数据,将所述块大小的数据划分为k个部分数据,对k个部分数据执行擦除编码,以得到由k+m个部分数据组成的擦除编码后的块,并将擦除编码后的块所包括的k+m个部分数据分别写入存储底层***中的k+m个存储服务器,其中,k和m为整数,两者的关系符合擦除编码机制,
其中,元数据指示分布地存储所述k+m个部分数据的k+m个存储服务器。
8.如权利要求7所述的分布式存储***,其中,当主节点装置的接口单元从它的内存单元中取出写入的块大小的数据时,主节点装置的日志单元和内存单元以及副节点装置的日志单元和内存单元清空并重新开始写入数据。
9.如权利要求8所述的分布式存储***,其中,节点管理装置根据数据的读取请求来搜索执行了所述数据的写入操作的主节点装置,所述主节点装置从存储的所述数据的索引信息确定数据条目中的值数据在存储底层***中所对应的块,并将所述块告知元数据服务器,元数据服务器根据存储的所述块的元数据来确定分布地存储与所述块对应的k+m个部分数据的k+m个存储服务器,主节点装置分别从所述k+m个存储服务器中的至少一个存储服务器读取与数据条目对应的部分数据。
10.如权利要求9所述的分布式存储***,其中,当主节点装置无法读取所有与数据条目对应的部分数据时,主节点装置仅读取所述块中的k个部分数据,并基于擦除编码机制来恢复其余m个部分数据。
11.如权利要求1所述的分布式存储***,其中,所述分布式存储***应用于云端存储。
12.一种基于擦除编码机制的分布式存储方法,包括:
在管理层***对写入的数据执行擦除编码;
将擦除编码后的数据分布地存储于存储底层***中的多个存储服务器;
将数据在存储底层***中的索引信息以副本的形式分别存储在管理层***所包括的多个节点装置中的N个节点装置中,其中,N为大于1的整数,
其中,节点装置包括:
日志单元,用于临时存储写入的数据,直到写入的数据达到预定的块大小;
内存单元,用于与日志单元镜像地存储写入的数据,
接口单元,用于当节点装置作为主节点装置时,如果内存单元中写入的数据达到块大小,则对所述块大小的数据执行擦除编码,并将擦除编码后的数据提供给存储底层***;
索引存储单元,用于持久地存储数据在存储底层***的索引信息,其中,所述索引信息指示数据条目中的值数据在存储底层***中所对应的块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310683621.XA CN103631539B (zh) | 2013-12-13 | 2013-12-13 | 基于擦除编码机制的分布式存储***及其存储方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310683621.XA CN103631539B (zh) | 2013-12-13 | 2013-12-13 | 基于擦除编码机制的分布式存储***及其存储方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103631539A CN103631539A (zh) | 2014-03-12 |
CN103631539B true CN103631539B (zh) | 2016-08-24 |
Family
ID=50212650
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310683621.XA Active CN103631539B (zh) | 2013-12-13 | 2013-12-13 | 基于擦除编码机制的分布式存储***及其存储方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103631539B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103955532A (zh) * | 2014-05-13 | 2014-07-30 | 陈北宗 | 一种去中心化的分布式计算框架 |
CN105302660B (zh) * | 2015-11-06 | 2018-09-04 | 湖南安存科技有限公司 | 面向分布式存储***带流检测技术的纠删码写缓冲方法 |
CN106383665B (zh) * | 2016-09-05 | 2018-05-11 | 华为技术有限公司 | 数据存储***中的数据存储方法及协调存储节点 |
CN106487902A (zh) * | 2016-10-19 | 2017-03-08 | 华迪计算机集团有限公司 | 一种基于消息中间件的数据收集方法和*** |
CN108628539B (zh) | 2017-03-17 | 2021-03-26 | 杭州海康威视数字技术股份有限公司 | 数据存储、分散、重构、回收方法、装置及数据处理*** |
CN107766000A (zh) * | 2017-10-16 | 2018-03-06 | 北京易讯通信息技术股份有限公司 | 一种云计算中基于分布式存储的数据安全擦除方法 |
TWI750425B (zh) * | 2018-01-19 | 2021-12-21 | 南韓商三星電子股份有限公司 | 資料儲存系統和用於寫入鍵值對的物件的方法 |
CN108156040A (zh) * | 2018-01-30 | 2018-06-12 | 北京交通大学 | 一种分布式云存储***中的中央控制节点 |
CN112256657B (zh) * | 2019-07-22 | 2023-03-28 | 华为技术有限公司 | 日志镜像方法及*** |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1696936A (zh) * | 2004-05-14 | 2005-11-16 | 微软公司 | 使用部分复制的Web内容分布式寄放 |
CN101175011A (zh) * | 2007-11-02 | 2008-05-07 | 南京大学 | 基于dht的p2p***中获得高可用数据冗余的方法 |
CN101873335A (zh) * | 2009-04-24 | 2010-10-27 | 同济大学 | 一种跨域语义Web服务的分布式搜索方法 |
CN102375853A (zh) * | 2010-08-24 | 2012-03-14 | ***通信集团公司 | 分布式数据库***、在其中建立索引的方法和查询方法 |
CN103384211A (zh) * | 2013-06-28 | 2013-11-06 | 百度在线网络技术(北京)有限公司 | 一种具有容错性的数据操作方法及分布式的数据存储*** |
-
2013
- 2013-12-13 CN CN201310683621.XA patent/CN103631539B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1696936A (zh) * | 2004-05-14 | 2005-11-16 | 微软公司 | 使用部分复制的Web内容分布式寄放 |
CN101175011A (zh) * | 2007-11-02 | 2008-05-07 | 南京大学 | 基于dht的p2p***中获得高可用数据冗余的方法 |
CN101873335A (zh) * | 2009-04-24 | 2010-10-27 | 同济大学 | 一种跨域语义Web服务的分布式搜索方法 |
CN102375853A (zh) * | 2010-08-24 | 2012-03-14 | ***通信集团公司 | 分布式数据库***、在其中建立索引的方法和查询方法 |
CN103384211A (zh) * | 2013-06-28 | 2013-11-06 | 百度在线网络技术(北京)有限公司 | 一种具有容错性的数据操作方法及分布式的数据存储*** |
Also Published As
Publication number | Publication date |
---|---|
CN103631539A (zh) | 2014-03-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103631539B (zh) | 基于擦除编码机制的分布式存储***及其存储方法 | |
US11960777B2 (en) | Utilizing multiple redundancy schemes within a unified storage element | |
US11593036B2 (en) | Staging data within a unified storage element | |
US20230117542A1 (en) | Remote Data Replication Method and System | |
JP6294518B2 (ja) | 不揮発性メモリシステムにおける同期ミラーリング | |
US10152381B1 (en) | Using storage defragmentation function to facilitate system checkpoint | |
US10372537B2 (en) | Elastic metadata and multiple tray allocation | |
US11983407B2 (en) | Enhanced data compression in distributed datastores | |
US10365983B1 (en) | Repairing raid systems at per-stripe granularity | |
US10540102B2 (en) | Physical media aware spacially coupled journaling and replay | |
US10126946B1 (en) | Data protection object store | |
CN101410783B (zh) | 内容可寻址存储阵列元件 | |
CN102349053B (zh) | 用于冗余性保护的聚集体的***和方法 | |
US9317375B1 (en) | Managing cache backup and restore for continuous data replication and protection | |
US10489289B1 (en) | Physical media aware spacially coupled journaling and trim | |
US9405643B2 (en) | Multi-level lookup architecture to facilitate failure recovery | |
US10509708B2 (en) | Code block resynchronization for distributed multi-mirror erasure coding system | |
JP2022552804A (ja) | データ・ストレージ・システムにおけるガベージ・コレクション | |
US9619322B2 (en) | Erasure-coding extents in an append-only storage system | |
CN110196818A (zh) | 缓存数据的方法、缓存设备和存储*** | |
CN110134551B (zh) | 一种持续数据保护方法及装置 | |
US20230229363A1 (en) | Tiering Valid Data after a Disaster Recovery Operation | |
CN114676000A (zh) | 数据处理方法及其装置、存储介质、计算机程序产品 | |
US10769020B2 (en) | Sharing private space among data storage system data rebuild and data deduplication components to minimize private space overhead | |
CN111367712A (zh) | 一种数据处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |