CN103370113A - 数据存储方法及系统 - Google Patents

数据存储方法及系统 Download PDF

Info

Publication number
CN103370113A
CN103370113A CN2012800029422A CN201280002942A CN103370113A CN 103370113 A CN103370113 A CN 103370113A CN 2012800029422 A CN2012800029422 A CN 2012800029422A CN 201280002942 A CN201280002942 A CN 201280002942A CN 103370113 A CN103370113 A CN 103370113A
Authority
CN
China
Prior art keywords
data
stored
block
memory block
data block
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.)
Granted
Application number
CN2012800029422A
Other languages
English (en)
Other versions
CN103370113B (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN103370113A publication Critical patent/CN103370113A/zh
Application granted granted Critical
Publication of CN103370113B publication Critical patent/CN103370113B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • G06F12/1018Address translation using page tables, e.g. page table structures involving hashing techniques, e.g. inverted page tables

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例提供一种数据存储方法及系统,包括:接收一个待存储数据的数据块,所述数据块包括密钥和数据本身;采用所述待存储数据的一个数据块中的密钥进行哈希运算,得到哈希值;确定所述哈希值对应的存储区间所在的存储组,所述存储组为将存储系统中各个存储区间按照预设值进行均分得到,且位于同一存储组中的各个存储区间各自所在的物理硬盘互不相同,所述预设值为所有待存储数据各自的数据块个数中的最大值;将所述待存储数据的数据块依次存储在所述存储组的各个存储区间中,其中,所述存储组的一个存储区间存储所述待存储数据的一个数据块。

Description

数据存储方法及系统
技术领域
本发明涉及计算机存储技术领域,尤其涉及一种数据存储方法及系统。
背景技术
采用容删编码(Erasure code,EC)技术可以将待存储的原始数据分割成多个数据块,并新增一些数据块用于存放校验信息,这些存储有原始数据的数据块和存储有校验信息的数据块构成完整的待存储数据,并采用一定的存储方法存储到不同的存储位置。
现有技术中,提供一种数据存储方法,每个数据块按照(密钥key,value)的格式进行存储,其中,key用于唯一标识一个数据块,value用于存储原始数据或者校验信息。分别对每个数据块中的key进行哈希运算得到哈希值,一个哈希值属于一个存储区间(partition),一个所述存储区间对应一段整数区间,如果所述哈希值落入所述存储区间对应的一段整数区间中,亦即该哈希值属于所述存储区间,之后,将每个数据块存储在各自得到的哈希值对应的存储区间中即可。
为了提高数据存储的安全性,同一数据的各个数据块应该尽可能的分散在不同的存储区间中。然而,采用上述方法对多个数据块中的key进行哈希运算时,如果得到的哈希值对应的存储区间相同,将会导致多个数据块被存储在同一个存储区间中,因而降低了数据的安全性,
发明内容
本发明提供一种数据存储方法及系统,可以提高数据存储的安全性。
为了达到上述发明目的,本发明采用如下技术方案:
第一方面,提供一种数据存储方法,包括:
接收一个待存储数据的数据块,所述数据块包括密钥和数据本身;
采用所述待存储数据的一个数据块中的密钥进行哈希运算,得到哈希值;
确定所述哈希值对应的存储区间所在的存储组,所述存储组为将存储系统中各个存储区间按照预设值进行均分得到,且位于同一存储组中的各个存储区间各自所在的物理硬盘互不相同,所述预设值为所有待存储数据各自的数据块个数中的最大值;
将所述待存储数据的数据块依次存储在所述存储组的各个存储区间中,其中,所述存储组的一个存储区间存储所述待存储数据的一个数据块。
第一方面的第一种实现方式中,所述采用待存储数据的一个数据块中的密钥进行哈希运算,得到哈希值包括:
采用待存储数据的第一个数据块中的密钥进行哈希运算,得到哈希值,所述第一个数据块为在所述待存储数据中位置序号排在第一个的数据块。
结合第一方面的第一种实现方式,在第一方面的第二实现方式中,所述存储组的各个存储区间在逻辑上构成一个分布式哈希表DHT环,所述DHT环上的一个节点表示一个存储区间;
所述将所述待存储数据的数据块依次存储在所述存储组的各个存储区间中包括:
从所述DHT环的第一节点开始,将所述待存储数据中各个数据块依次存储在所述DHT环中所述第一节点及所述第一节点在顺时针或者逆时针方向之后连续的节点上,其中,所述待存储数据的第一个数据块存储在所述第一节点,所述第一节点表示所述哈希值对应的存储区间,所述待存储数据中各个数据块是按照各自在所述待存储数据中的位置序号有序排列的。
第二方面,提供一种数据存储系统,包括:
接收模块,用于接收一个待存储数据的数据块,所述数据块包括密钥和数据本身;
运算模块,用于采用待存储数据的一个数据块中的密钥进行哈希运算,得到哈希值;
确定模块,用于确定所述哈希值对应的存储区间所在的存储组,所述存储组为将存储系统中各个存储区间按照预设值进行均分得到,且位于同一存储组中的各个存储区间各自所在的物理硬盘互不相同,所述预设值为所有待存储数据各自的数据块个数中的最大值;
存储模块,用于将所述待存储数据的数据块依次存储在所述存储组的各个存储区间中,其中,所述存储组的一个存储区间存储所述待存储数据的一个数据块。
在第二方面的第一种实现方式中,所述运算模块,具体用于采用待存储数据的第一个数据块中的密钥进行哈希运算,得到哈希值,所述第一个数据块为在所述待存储数据中位置序号排在第一个的数据块。
结合第二方面的第一种实现方式,在第二方面的第二种实现方式中,所述存储组的各个存储区间在逻辑上构成一个分布式哈希表DHT环,所述DHT环上的一个节点表示一个存储区间;
所述存储模块,具体用于从所述DHT环的第一节点开始,将所述待存储数据中各个数据块依次存储在所述DHT环中所述第一节点及所述第一节点在顺时针或者逆时针方向之后连续的节点上,其中,所述待存储数据的第一个数据块存储在所述第一节点,所述第一节点表示所述哈希值对应的存储区间,所述待存储数据中各个数据块是按照各自在所述待存储数据中的位置序号有序排列的。
第三方面,提供一种数据存储系统,包括:
接收器,用于接收一个待存储数据的数据块,所述数据块包括密钥和数据本身;
处理器,用于采用待存储数据的一个数据块中的密钥进行哈希运算,得到哈希值;
所述处理器,还用于确定所述哈希值对应的存储区间所在的存储组,所述存储组为将存储系统中各个存储区间按照预设值进行均分得到,且位于同一存储组中的各个存储区间各自所在的物理硬盘互不相同,所述预设值为所有待存储数据各自的数据块个数中的最大值;
存储器,用于将所述待存储数据的数据块依次存储在所述存储组的各个存储区间中,其中,所述存储组的一个存储区间存储所述待存储数据的一个数据块。
在第三方面的第一种实现方式中,所述处理器,具体用于采用待存储数据的第一个数据块中的密钥进行哈希运算,得到哈希值,所述第一个数据块为在所述待存储数据中位置序号排在第一个的数据块。
结合第三方面的第一种实现方式,在第三方面的第二种实现方式中,所述存储组的各个存储区间在逻辑上构成一个分布式哈希表DHT环,所述DHT环上的一个节点表示一个存储区间;
所述存储器,具体用于从所述DHT环的第一节点开始,将所述待存储数据中各个数据块依次存储在所述DHT环中所述第一节点及所述第一节点在顺时针或者逆时针方向之后连续的节点上,其中,所述待存储数据的第一个数据块存储在所述第一节点,所述第一节点表示所述哈希值对应的存储区间,所述待存储数据中各个数据块是按照各自在所述待存储数据中的位置序号有序排列的。
通过上述技术方案,可以将所述待存储数据的数据块依次存储在所述存储组的各个存储区间中,且所述存储组的一个存储区间存储所述待存储数据的一个数据块。也就是说,同一数据的各个数据块存储在所述存储组互不相同的存储区间中,而同一存储组中的各个存储区间各自所在的物理硬盘互不相同,亦即实现了将同一数据的各个数据分散存储在不同物理硬盘上的存储区间中,与现有技术同一数据的各个数据块可能被存储在同一个存储区间中相比,本发明提高了数据存储的安全性。
同时,由于本发明实施例可以将同一数据的各个数据分散存储在不同物理硬盘上的存储区间中,使得数据的存储位置比较均衡,各个存储区间的存储压力也比较均衡。可以有效避免现有技术中同一数据的大量数据块集中存放在一个存储区间中导致该存储区间的存储压力过大的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种数据存储方法的流程示意图;
图2a为本发明实施例提供的一种存储区间在逻辑上构成的DHT环的第一种示意图;
图2b为本发明实施例提供的一种存储区间在逻辑上构成的DHT环的第二种示意图;
图2c为本发明实施例提供的一种存储区间在逻辑上构成的DHT环的第三种示意图;
图3为本发明实施例提供的数据存储系统的第一种结构示意图;
图4为本发明实施例提供的数据存储系统的第二种结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种数据存储方法,采用该方法存储数据时,可以使得同一待存储数据的数据块存储在互不相同的存储区间中,亦即一个存储区间仅存储同一待存储数据的一个数据块。可以理解的是,一个存储区间可以存储不同数据各自的一个数据块。
其中,所述存储区间为物理硬盘上一块真实的存储区域。在整个存储系统进行初始化时,可以将所有物理硬盘上的存储区域均分成若干个容量大小相等的存储区间。每个存储区间的容量足够存放一定数量的数据块。
如图1所示,本发明实施例提供的一种数据存储方法,包括如下步骤:
101、接收一个待存储数据的数据块,所述数据块包括密钥和数据。
其中,所述待存储数据可以是通过将待存储的原始数据采用EC技术进行分割得到,具体过程如下:采用EC技术将待存储的原始数据分割成多个数据块,并新增一些数据块用于存放校验信息,这些存储有原始数据的数据块和存储有校验信息的数据块构成完整的待存储数据。
每个数据块均采用(密钥key,value)形式进行存储,其中,key用于唯一标识所述数据块,value用于存储数据,例如,value存储的可以是原始数据本身,也可以是验证信息。
102、采用所述待存储数据的一个数据块中的密钥进行哈希运算,得到哈希值。
其中,一个哈希值只属于一个存储区间。
103、确定所述哈希值对应的存储区间所在的存储组。
其中,所述存储组为将存储系统中各个存储区间按照预设值进行均分得到,且位于同一存储组中的各个存储区间各自所在的物理硬盘互不相同,所述预设值为所有待存储数据各自的数据块个数中的最大值。
例如,在将存储系统中各个存储区间进行分组时,由于各个存储区间均有一个唯一的标识号,在系统进行初始化时,可以将位于同一物理硬盘上的各个存储区间的标识号设置为彼此间隔大于所述预设值,然后将存储系统中所有存储区间按照各自标识号进行排序,并将排序后的各个存储区间依次按照所述预设值划分为多个存储组,这样,可以得到位于同一存储组中的各个存储区间各自所在的物理硬盘互不相同。
104、将所述待存储数据的数据块依次存储在所述存储组的各个存储区间中,其中,所述存储组的一个存储区间存储所述待存储数据的一个数据块。
本发明实施例中,可以将所述待存储数据的数据块依次存储在所述存储组的各个存储区间中,且所述存储组的一个存储区间存储所述待存储数据的一个数据块。也就是说,同一数据的各个数据块存储在所述存储组互不相同的存储区间中,而同一存储组中的各个存储区间各自所在的物理硬盘互不相同,亦即实现了将同一数据的各个数据分散存储在不同物理硬盘上的存储区间中,与现有技术同一数据的各个数据块可能被存储在同一个存储区间中相比,本发明提高了数据存储的安全性。
同时,由于本发明实施例可以将同一数据的各个数据分散存储在不同物理硬盘上的存储区间中,使得数据的存储位置比较均衡,各个存储区间的存储压力也比较均衡。可以有效避免现有技术中同一数据的大量数据块集中存放在一个存储区间中导致该存储区间的存储压力过大的问题。
进一步地,上述步骤102具体可以采用如下替代方式执行:采用待存储数据的第一个数据块中的密钥进行哈希运算,得到哈希值,所述第一个数据块为在所述待存储数据中位置序号排在第一个的数据块。
本发明实施例中提到的存储系统中的各个存储区间在逻辑上可以构成一个分布式哈希表(Distributed Hash Table,DHT)环,如图2a所示,该DHT环中包括12个节点,每个节点表示一个存储区间。图2a中的每个节点存放的数字01-12分别表示相应存储区间的标识号。如果步骤103中所述预设值为6时,则可以将12个存储区间分成两个存储组,第一个存储组可以包括标识号为01-06的存储区间,第二个存储组包括标识号为07-12的存储区间,每个存储组的各个存储区间在逻辑上也是构成一个DHT环例如图2b表示第一个存储组构成的DHT环,图2c表示第二个存储组构成的DHT环。
进一步地,上述步骤104具体可以采用如下替代方式执行:从所述DHT环的第一节点开始,将所述待存储数据中各个数据块依次存储在所述DHT环中所述第一节点及所述第一节点在顺时针或者逆时针方向之后连续的节点上。
其中,所述待存储数据的第一个数据块存储在所述第一节点,所述第一节点表示所述哈希值对应的存储区间,所述待存储数据中各个数据块是按照各自在所述待存储数据中的位置序号有序排列的。
例如,有一个待存储数据包括4个数据块,所述4个数据块按照各自在所述待存储数据中的位置序号有序排列后的顺序为:数据块1、数据块2、数据块3、数据块4,数据块1即为所述待存储数据的第一个数据块。如果利用所述第一个数据块中的密钥进行哈希运算,得出的哈希值为11,那可以得知所述11表示的存储区间位于第二个存储组,之后,将数据块1、数据块2、数据块3、数据块4依次存放在图2c所示的11、12、07、08的节点中,或者,将数据块1、数据块2、数据块3、数据块4依次存放图2c所示的11、10、09、08中。
由于同一个存储组的各个存储区间各自所在的物理硬盘互不相同,因而可以将所述待存储数据的4个数据块分散存储在不同的物理硬盘上。
需要说明的是,步骤104的替代方式是一种有序存储方式,在数据恢复时,只需要按照存储区间的顺序依次读出数据既可以恢复各个数据块在整个待存储数据中的位置。当然,容易想到的是,也可以采用无序存储方式,但是需要保存各个数据块与存储区间的对应关系,以便于数据恢复时,可以恢复各个数据块在整个待存储数据中的位置,保证数据的连续性。
可以理解的是,上述实施例是以一个待存储数据为例进行说明的,如果有多个不同的待存储数据时,由于利用不同的待存储数据各自的一个数据块中的密钥进行哈希运算时得到的哈希值可能会相同,则多个不同的待存储数据可能会存放于同一组中,亦即,同一个组的一个存储区间可能会存放多个不同待存储数据各自的一个数据块。
如图3所示,本发明实施例提供一种数据存储系统,包括:
接收模块31,用于接收一个待存储数据的数据块,所述数据块包括密钥和数据本身;
有关待存储数据及其数据块的详细描述可以参见步骤101。
运算模块32,用于采用待存储数据的一个数据块中的密钥进行哈希运算,得到哈希值;
确定模块33,用于确定所述哈希值对应的存储区间所在的存储组,所述存储组为将存储系统中各个存储区间按照预设值进行均分得到,且位于同一存储组中的各个存储区间各自所在的物理硬盘互不相同,所述预设值为所有待存储数据各自的数据块个数中的最大值;
有关存储组的详细描述可以参见步骤103。
存储模块34,用于将所述待存储数据的数据块依次存储在所述存储组的各个存储区间中,其中,所述存储组的一个存储区间存储所述待存储数据的一个数据块。有关具体的存储实现过程可以参见步骤104。
本发明实施例中提供的存储系统,可以将所述待存储数据的数据块依次存储在所述存储组的各个存储区间中,且所述存储组的一个存储区间存储所述待存储数据的一个数据块。也就是说,同一数据的各个数据块存储在所述存储组互不相同的存储区间中,而同一存储组中的各个存储区间各自所在的物理硬盘互不相同,亦即实现了将同一数据的各个数据分散存储在不同物理硬盘上的存储区间中,与现有技术同一数据的各个数据块可能被存储在同一个存储区间中相比,本发明提高了数据存储的安全性。
同时,由于本发明实施例可以将同一数据的各个数据分散存储在不同物理硬盘上的存储区间中,使得数据的存储位置比较均衡,各个存储区间的存储压力也比较均衡。可以有效避免现有技术中同一数据的大量数据块集中存放在一个存储区间中导致该存储区间的存储压力过大的问题。
进一步地,所述运算模块,具体用于采用待存储数据的第一个数据块中的密钥进行哈希运算,得到哈希值,所述第一个数据块为在所述待存储数据中位置序号排在第一个的数据块。
进一步地,所述存储组的各个存储区间在逻辑上构成一个DHT环,所述DHT环上的一个节点表示一个存储区间;
所述DHT环可以参见步骤104的替代实行方式中有关DHT环的描述。
所述存储模块,具体用于从所述DHT环的第一节点开始,将所述待存储数据中各个数据块依次存储在所述DHT环中所述第一节点及所述第一节点在顺时针或者逆时针方向之后连续的节点上。
其中,所述待存储数据的第一个数据块存储在所述第一节点,所述第一节点表示所述哈希值对应的存储区间,所述待存储数据中各个数据块是按照各自在所述待存储数据中的位置序号有序排列的。
如图4所示,本发明实施例还提供一种数据存储系统,包括:总线4000、驱动电路4001、接收器41,处理器42、存储器43
接收器41,用于接收一个待存储数据的数据块,所述数据块包括密钥和数据本身;
有关待存储数据及其数据块的详细描述可以参见步骤101。
处理器42,用于采用待存储数据的一个数据块中的密钥进行哈希运算,得到哈希值;
所述处理器42,还用于确定所述哈希值对应的存储区间所在的存储组,所述存储组为将存储系统中各个存储区间按照预设值进行均分得到,且位于同一存储组中的各个存储区间各自所在的物理硬盘互不相同,所述预设值为所有待存储数据各自的数据块个数中的最大值;
有关存储组的详细描述可以参见步骤103。
存储器43,用于将所述待存储数据的数据块依次存储在所述存储组的各个存储区间中,其中,所述存储组的一个存储区间存储所述待存储数据的一个数据块。
有关具体的存储实现过程可以参见步骤104。
本发明实施例中提供的存储系统,可以将所述待存储数据的数据块依次存储在所述存储组的各个存储区间中,且所述存储组的一个存储区间存储所述待存储数据的一个数据块。也就是说,同一数据的各个数据块存储在所述存储组互不相同的存储区间中,而同一存储组中的各个存储区间各自所在的物理硬盘互不相同,亦即实现了将同一数据的各个数据分散存储在不同物理硬盘上的存储区间中,与现有技术同一数据的各个数据块可能被存储在同一个存储区间中相比,本发明提高了数据存储的安全性。
同时,由于本发明实施例可以将同一数据的各个数据分散存储在不同物理硬盘上的存储区间中,使得数据的存储位置比较均衡,各个存储区间的存储压力也比较均衡。可以有效避免现有技术中同一数据的大量数据块集中存放在一个存储区间中导致该存储区间的存储压力过大的问题。
需要说明的是,所述接收器41可以耦合到天线。
其中,驱动电路4001,用于为存储系统中的各个硬件提供驱动使得各个硬件能够正常工作。
本实施例在具体实现中,存储器43至少包括如下一个或者多个内存设备,一个只读存储器、一个随机存取存储器或者一个非易失行随机存取存储器,存储器为处理器提供指令和数据。
其中,所述处理器42可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。这些指令可以通过其中的处理器以配合实现及控制,用于执行本发明实施例揭示的方法。上述处理器还可以是通用处理器、数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(application specificintegrated circuit)、现成可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
其中,上述通用处理器42可以是微处理器或者该处理器也可以是任何常规的处理器,解码器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。
另外,存储系统中的各个硬件组件通过总线系统4000耦合在一起,其中总线系统4000除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起,在图4中将各种总线都标为总线系统4000。
进一步地,所述处理器42,具体用于采用待存储数据的第一个数据块中的密钥进行哈希运算,得到哈希值,所述第一个数据块为在所述待存储数据中位置序号排在第一个的数据块。
进一步地,所述存储组的各个存储区间在逻辑上构成一个DHT环,所述DHT环上的一个节点表示一个存储区间;
所述DHT环可以参见步骤104的替代实行方式中有关DHT环的描述。
所述存储器43,具体用于从所述DHT环的第一节点开始,将所述待存储数据中各个数据块依次存储在所述DHT环中所述第一节点及所述第一节点在顺时针或者逆时针方向之后连续的节点上,其中,所述待存储数据的第一个数据块存储在所述第一节点,所述第一节点表示所述哈希值对应的存储区间,所述待存储数据中各个数据块是按照各自在所述待存储数据中的位置序号有序排列的。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (9)

1.一种数据存储方法,其特征在于,包括:
接收一个待存储数据的数据块,所述数据块包括密钥和数据本身;
采用所述待存储数据的一个数据块中的密钥进行哈希运算,得到哈希值;
确定所述哈希值对应的存储区间所在的存储组,所述存储组为将存储系统中各个存储区间按照预设值进行均分得到,且位于同一存储组中的各个存储区间各自所在的物理硬盘互不相同,所述预设值为所有待存储数据各自的数据块个数中的最大值;
将所述待存储数据的数据块依次存储在所述存储组的各个存储区间中,其中,所述存储组的一个存储区间存储所述待存储数据的一个数据块。
2.根据权利要求1所述的方法,其特征在于,
所述采用待存储数据的一个数据块中的密钥进行哈希运算,得到哈希值包括:
采用待存储数据的第一个数据块中的密钥进行哈希运算,得到哈希值,所述第一个数据块为在所述待存储数据中位置序号排在第一个的数据块。
3.根据权利要求2所述的方法,其特征在于,所述存储组的各个存储区间在逻辑上构成一个分布式哈希表DHT环,所述DHT环上的一个节点表示一个存储区间;
所述将所述待存储数据的数据块依次存储在所述存储组的各个存储区间中包括:
从所述DHT环的第一节点开始,将所述待存储数据中各个数据块依次存储在所述DHT环中所述第一节点及所述第一节点在顺时针或者逆时针方向之后连续的节点上,其中,所述待存储数据的第一个数据块存储在所述第一节点,所述第一节点表示所述哈希值对应的存储区间,所述待存储数据中各个数据块是按照各自在所述待存储数据中的位置序号有序排列的。
4.一种数据存储系统,其特征在于,包括:
接收模块,用于接收一个待存储数据的数据块,所述数据块包括密钥和数据本身;
运算模块,用于采用待存储数据的一个数据块中的密钥进行哈希运算,得到哈希值;
确定模块,用于确定所述哈希值对应的存储区间所在的存储组,所述存储组为将存储系统中各个存储区间按照预设值进行均分得到,且位于同一存储组中的各个存储区间各自所在的物理硬盘互不相同,所述预设值为所有待存储数据各自的数据块个数中的最大值;
存储模块,用于将所述待存储数据的数据块依次存储在所述存储组的各个存储区间中,其中,所述存储组的一个存储区间存储所述待存储数据的一个数据块。
5.根据权利要求4所述的系统,其特征在于,
所述运算模块,具体用于采用待存储数据的第一个数据块中的密钥进行哈希运算,得到哈希值,所述第一个数据块为在所述待存储数据中位置序号排在第一个的数据块。
6.根据权利要求5所述的系统,其特征在于,所述存储组的各个存储区间在逻辑上构成一个分布式哈希表DHT环,所述DHT环上的一个节点表示一个存储区间;
所述存储模块,具体用于从所述DHT环的第一节点开始,将所述待存储数据中各个数据块依次存储在所述DHT环中所述第一节点及所述第一节点在顺时针或者逆时针方向之后连续的节点上,其中,所述待存储数据的第一个数据块存储在所述第一节点,所述第一节点表示所述哈希值对应的存储区间,所述待存储数据中各个数据块是按照各自在所述待存储数据中的位置序号有序排列的。
7.一种数据存储系统,其特征在于,包括:
接收器,用于接收一个待存储数据的数据块,所述数据块包括密钥和数据本身;
处理器,用于采用待存储数据的一个数据块中的密钥进行哈希运算,得到哈希值;
所述处理器,还用于确定所述哈希值对应的存储区间所在的存储组,所述存储组为将存储系统中各个存储区间按照预设值进行均分得到,且位于同一存储组中的各个存储区间各自所在的物理硬盘互不相同,所述预设值为所有待存储数据各自的数据块个数中的最大值;
存储器,用于将所述待存储数据的数据块依次存储在所述存储组的各个存储区间中,其中,所述存储组的一个存储区间存储所述待存储数据的一个数据块。
8.根据权利要求7所述的系统,其特征在于,
所述处理器,具体用于采用待存储数据的第一个数据块中的密钥进行哈希运算,得到哈希值,所述第一个数据块为在所述待存储数据中位置序号排在第一个的数据块。
9.根据权利要求7所述的系统,其特征在于,所述存储组的各个存储区间在逻辑上构成一个分布式哈希表DHT环,所述DHT环上的一个节点表示一个存储区间;
所述存储器,具体用于从所述DHT环的第一节点开始,将所述待存储数据中各个数据块依次存储在所述DHT环中所述第一节点及所述第一节点在顺时针或者逆时针方向之后连续的节点上,其中,所述待存储数据的第一个数据块存储在所述第一节点,所述第一节点表示所述哈希值对应的存储区间,所述待存储数据中各个数据块是按照各自在所述待存储数据中的位置序号有序排列的。
CN201280002942.2A 2012-12-12 2012-12-12 数据存储方法及系统 Active CN103370113B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2012/086466 WO2014089786A1 (zh) 2012-12-12 2012-12-12 数据存储方法及系统

Publications (2)

Publication Number Publication Date
CN103370113A true CN103370113A (zh) 2013-10-23
CN103370113B CN103370113B (zh) 2016-03-09

Family

ID=49370140

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280002942.2A Active CN103370113B (zh) 2012-12-12 2012-12-12 数据存储方法及系统

Country Status (2)

Country Link
CN (1) CN103370113B (zh)
WO (1) WO2014089786A1 (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105956164A (zh) * 2016-05-19 2016-09-21 海尔优家智能科技(北京)有限公司 一种存储数据的方法、装置及其对应的系统
CN106506613A (zh) * 2016-10-31 2017-03-15 大唐高鸿信安(浙江)信息科技有限公司 分布式key‑value存储系统的数据存储位置加密方法
CN107870970A (zh) * 2017-09-06 2018-04-03 北京理工大学 一种数据存储查询方法及系统
CN108427982A (zh) * 2018-03-16 2018-08-21 中国联合网络通信集团有限公司 一种数据读写方法及装置
CN108696585A (zh) * 2018-05-11 2018-10-23 国网电子商务有限公司 一种数据的分布式存储方法及系统
CN111030930A (zh) * 2019-12-02 2020-04-17 北京众享比特科技有限公司 基于去中心化网络数据分片传输方法、装置、设备及介质
CN111327397A (zh) * 2020-01-21 2020-06-23 武汉大学 一种信息数据纵向冗余校验纠错编解码方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109542939B (zh) * 2018-11-21 2020-09-01 中国人民解放军国防科技大学 一种基于纠删码的count-min摘要方法及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101196797A (zh) * 2007-12-07 2008-06-11 华中科技大学 一种存储系统数据分布及互转换方法
CN101478538A (zh) * 2008-12-31 2009-07-08 成都市华为赛门铁克科技有限公司 管理安全设备的存储方法、装置或系统
CN101645039A (zh) * 2009-06-02 2010-02-10 中国科学院声学研究所 一种基于彼得森图的数据存储和读取方法
WO2012000348A1 (en) * 2010-07-02 2012-01-05 Huawei Technologies Co., Ltd. Method and apparatus for providing highly-scalable network storage for well-gridded objects
US8296515B1 (en) * 2009-05-22 2012-10-23 Nvidia Corporation RAID-6 computation system and method
CN102799628A (zh) * 2012-06-21 2012-11-28 新浪网技术(中国)有限公司 在key-value数据库中进行数据分区的方法和装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101196797A (zh) * 2007-12-07 2008-06-11 华中科技大学 一种存储系统数据分布及互转换方法
CN101478538A (zh) * 2008-12-31 2009-07-08 成都市华为赛门铁克科技有限公司 管理安全设备的存储方法、装置或系统
US8296515B1 (en) * 2009-05-22 2012-10-23 Nvidia Corporation RAID-6 computation system and method
CN101645039A (zh) * 2009-06-02 2010-02-10 中国科学院声学研究所 一种基于彼得森图的数据存储和读取方法
WO2012000348A1 (en) * 2010-07-02 2012-01-05 Huawei Technologies Co., Ltd. Method and apparatus for providing highly-scalable network storage for well-gridded objects
CN102799628A (zh) * 2012-06-21 2012-11-28 新浪网技术(中国)有限公司 在key-value数据库中进行数据分区的方法和装置

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105956164A (zh) * 2016-05-19 2016-09-21 海尔优家智能科技(北京)有限公司 一种存储数据的方法、装置及其对应的系统
CN106506613A (zh) * 2016-10-31 2017-03-15 大唐高鸿信安(浙江)信息科技有限公司 分布式key‑value存储系统的数据存储位置加密方法
CN107870970A (zh) * 2017-09-06 2018-04-03 北京理工大学 一种数据存储查询方法及系统
CN107870970B (zh) * 2017-09-06 2019-10-25 北京理工大学 一种数据存储查询方法及系统
CN108427982A (zh) * 2018-03-16 2018-08-21 中国联合网络通信集团有限公司 一种数据读写方法及装置
CN108696585A (zh) * 2018-05-11 2018-10-23 国网电子商务有限公司 一种数据的分布式存储方法及系统
CN111030930A (zh) * 2019-12-02 2020-04-17 北京众享比特科技有限公司 基于去中心化网络数据分片传输方法、装置、设备及介质
CN111030930B (zh) * 2019-12-02 2022-02-01 北京众享比特科技有限公司 基于去中心化网络数据分片传输方法、装置、设备及介质
CN111327397A (zh) * 2020-01-21 2020-06-23 武汉大学 一种信息数据纵向冗余校验纠错编解码方法

Also Published As

Publication number Publication date
WO2014089786A1 (zh) 2014-06-19
CN103370113B (zh) 2016-03-09

Similar Documents

Publication Publication Date Title
CN103370113A (zh) 数据存储方法及系统
US10127282B2 (en) Partitionable ternary content addressable memory (TCAM) for use with a bloom filter
CN105573681B (zh) 一种ssd盘片内部raid组建方法及系统
CN101685381B (zh) 固态大容量存储装置的数据串流
CN104238962B (zh) 向缓存中写入数据的方法及装置
US20150270015A1 (en) Memory mapping
CN108170555A (zh) 一种数据恢复方法及设备
CN107526540B (zh) 数据储存装置及其数据维护方法
EP2684134A2 (en) Programmable data storage management
CN102915212B (zh) 一种固态硬盘的raid实现方法、固态硬盘及电子设备
JP2008511913A (ja) 揮発性記憶装置をベースとする電源喪失回復機構
US20140089612A1 (en) Electronic counter in non-volatile limited endurance memory
CN101980137A (zh) 廉价磁盘冗余阵列重构方法、装置及系统
JP6994136B1 (ja) メモリにおける単調カウンタ
CN104809178A (zh) 一种键值数据库内存日志的写入方法
CN107122130A (zh) 一种数据重删方法及装置
CN103389881A (zh) 控制装置、存储装置以及数据写入方法
US9921969B2 (en) Generation of random address mapping in non-volatile memories using local and global interleaving
CN104750432A (zh) 一种数据存储方法及装置
CN103645860A (zh) 存储空间的管理方法和存储管理装置
WO2015116141A1 (en) Identifying memory regions that contain remapped memory locations
US9952771B1 (en) Method and system for choosing an optimal compression algorithm
CN102609509A (zh) 哈希数据处理方法和装置
CN106708445A (zh) 链路选择方法及装置
CN104298614A (zh) 数据块在存储设备中存储方法和存储设备

Legal Events

Date Code Title Description
C06 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