CN112748868A - 数据存储方法和装置 - Google Patents
数据存储方法和装置 Download PDFInfo
- Publication number
- CN112748868A CN112748868A CN201911055807.4A CN201911055807A CN112748868A CN 112748868 A CN112748868 A CN 112748868A CN 201911055807 A CN201911055807 A CN 201911055807A CN 112748868 A CN112748868 A CN 112748868A
- Authority
- CN
- China
- Prior art keywords
- storage
- data
- type
- copy
- access probability
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000013500 data storage Methods 0.000 title claims abstract description 41
- 230000008676 import Effects 0.000 claims description 56
- 101100217298 Mus musculus Aspm gene Proteins 0.000 claims description 37
- 238000004590 computer program Methods 0.000 claims description 17
- 238000012217 deletion Methods 0.000 claims description 15
- 230000037430 deletion Effects 0.000 claims description 15
- 230000015654 memory Effects 0.000 claims description 12
- 238000007726 management method Methods 0.000 abstract description 8
- 238000010586 diagram Methods 0.000 description 18
- 230000008569 process Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 101100170173 Caenorhabditis elegans del-1 gene Proteins 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Abstract
本文是关于一种数据存储方法和装置。涉及计算机互联网领域,解决了以文件组为文件整体将文件由多副本类型转换为EC类型存储时影响访问的问题。该方法包括:根据数据被访问情况,重新确定所述数据的存储类型;将所述数据按照重新确定的所述存储类型进行存储。本文提供的技术方案适用于分布式存储系统,实现了适应访问需求的数据存储管理。
Description
技术领域
本文涉及计算机互联网领域,尤其涉及一种数据存储方法和装置。
背景技术
分布式存储中数据热度不同,导致数据的访问频次存在差别。通常将访问频次较高的数据称为热数据,访问频次较低甚至几乎没有访问的数据称为冷数据。
基于冷热数据的访问需求不同,对于热数据一般采用多副本方式存储以满足文件的高并发访问,对于冷数据则可采用EC(Erasure Code,即纠删码)冷存储方式存储以降低存储成本,考虑到存储资源有限,需要将数据从多副本的存储方式导入为EC存储方式以节约资源。
分布式存储中,多副本数据的存储方式是将文件数据存储K份冗余副本,K份副本分布在指定故障隔离级别的存储设备中(如隔离级别为磁盘,则K份数据分布在不同的磁盘中);EC存储方式是将文件数据通过EC编码计算得到M+N份数据(M为数据块数量,N为编码块数量),这样存储成本为(M+N)/N,比热数据多副本K倍数据冗余降低存储成本。
大部分分布式存储中,多副本数据一般将多个文件数据放置在一个文件组中,文件组的存储容量固定(如10GB),当文件组中的数据超过文件组的容量后将该文件组设置为只读状态,并在文件组设置为只读状态后,以文件组为单位将数据导入到EC存储方式的存储中。
以文件组为单位导入EC存储的方法,存在以下问题:
1、文件数据是以文件组为单位导入的,文件组中可能即存在热数据也存在冷数据,这样会将热数据导入为EC存储模式进行存储,影响文件的高并发访问效率,EC存储模式的数据被频繁访问会造成系统资源的很大负担。
2、无法直接删除EC存储方式下的文件数据,如果文件数据所在文件组已经整个导入为EC存储方式,则无法直接删除该文件数据,影响文件管理。
发明内容
为克服相关技术中存在的问题,本文提供一种数据存储方法和装置。
根据本文的一方面,提供一种数据存储方法,包括:
根据数据被访问情况,重新确定所述数据的存储类型;
将所述数据按照重新确定的所述存储类型进行存储。
优选的,根据数据被访问情况,重新确定所述数据的存储类型的步骤包括:
获取所述数据被访问的访问概率;
将所述访问概率与预置的至少一个存储条件进行比较,所述存储条件包含访问概率区间和对应的存储类型;
在所述访问概率符合预置的存储条件的访问概率区间的情况下,确定对应的存储类型为所述数据的存储类型。
优选的,所述存储类型至少包含以下类型中的任一或任意多项:
多副本存储、纠删码EC存储,
该方法还包括:
配置至少一个存储条件,所述存储条件至少包含以下条件中的任一或任意多项:
在访问概率在第一访问概率区间内的情况下,确定数据的存储类型为多副本存储,
在访问概率在第二访问概率区间内的情况下,确定数据的存储类型为EC存储,
其中,所述第一访问概率区间的下限大于等于所述第二访问概率区间的上限。
优选的,所述第一访问概率区间和所述第二访问概率区间均为时间区间,所述获取所述数据被访问的访问概率的步骤包括:
获取所述数据最近一次被访问的访问时间,以所述访问时间作为计算访问概率的输入参数。
优选的,在所述数据的存储类型由多副本类型变为EC类型的情况下,所述将所述数据按照重新确定的所述存储类型进行存储的步骤包括:
确定导入范围;
将所述导入范围内存在的多副本存储类型的数据的文件记录导入为所述EC类型进行存储,将所述导入范围内已删除的多副本存储类型的数据的删除记录导入为所述EC类型进行存储。
优选的,所述确定导入范围的步骤包括:
选择被访问的访问概率符合所述存储条件,且在SHA1范围内的多副本存储类型的数据为所述导入范围。
优选的,该方法还包括:
更新所述多副本存储类型的数据的存储范围。
优选的,该方法还包括:
在EC类型的存储中,同时存在多副本存储类型的数据转存为EC类型及所述多副本存储类型删除记录的情况下,从所述EC类型的存储中,删除所述数据。
优选的,所述根据数据被访问情况,重新确定所述数据的存储类型的步骤之前,还包括:
将数据存储为多副本类型,所述多副本类型的数据结构至少包含以下信息中的任一或任意多项:
SHA1的键值,文件名称,访问时间戳,删除信息。
根据本文的另一方面,提供了一种数据存储装置,包括:
存储类型确定模块,用于根据数据被访问情况,重新确定所述数据的存储类型;
数据导入模块,用于将所述数据按照重新确定的所述存储类型进行存储。
优选的,所述存储类型确定模块包括:
访问概率获取单元,用于获取所述数据被访问的访问概率;
存储条件匹配单元,用于将所述访问概率与预置的至少一个存储条件进行比较,所述存储条件包含访问概率区间和对应的存储类型;
类型确定单元,用于在所述访问概率符合预置的存储条件的访问概率区间的情况下,确定对应的存储类型为所述数据的存储类型。
优选的,所述存储类型至少包含以下类型中的任一或任意多项:
多副本存储、纠删码EC存储,
该装置还包括:
存储条件设置模块,用于配置至少一个存储条件,所述存储条件至少包含以下条件中的任一或任意多项:
在访问概率在第一访问概率区间内的情况下,确定数据的存储类型为多副本存储,
在访问概率在第二访问概率区间内的情况下,确定数据的存储类型为EC存储,
其中,所述第一访问概率区间的下限大于等于所述第二访问概率区间的上限。
优选的,在所述数据的存储类型由多副本类型变为EC类型的情况下,所述数据导入模块包括:
导入范围确定单元,用于确定导入范围;
导入执行单元,用于将所述导入范围内存在的多副本存储类型的数据的文件记录导入为所述EC类型进行存储,将所述导入范围内已删除的多副本存储类型的数据的删除记录导入为所述EC类型进行存储。
优选的,所述导入范围确定单元,具体用于选择被访问的访问概率符合所述存储条件,且在SHA1范围内的多副本存储类型的数据为所述导入范围。
优选的,该装置还包括:
存储范围更新模块,用于更新所述多副本存储类型的数据的存储范围。
优选的,该装置还包括:
数据删除模块,用于在EC类型的存储中,同时存在多副本存储类型的数据转存为EC类型的类型及所述多副本存储类型的数据的删除记录的情况下,从所述EC类型的存储中,删除所述数据。
优选的,该装置还包括:
多副本存储模块,用于将数据存储为多副本类型,所述多副本类型的数据结构至少包含以下信息中的任一或任意多项:
SHA1的键值,文件名称,访问时间戳,删除信息。
根据本文的另一方面,还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被执行时实现上述数据存储方法的步骤。
根据本文的另一方面,还提供了一种计算机设备,包括处理器、存储器和存储于所述存储器上的计算机程序,所述处理器执行所述计算机程序时实现上述数据存储方法的步骤。
本文通过根据数据被访问情况,重新确定所述数据的存储类型,将所述数据按照重新确定的所述存储类型进行存储。解决了以文件组为文件整体将文件由多副本类型转换为EC类型存储时影响访问的问题,实现了适应访问需求的数据存储管理。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本文。
附图说明
构成本文的一部分的附图用来提供对本文的进一步理解,本文的示意性实施例及其说明用于解释本文,并不构成对本文的不当限定。在附图中:
图1是根据一示例性实施例示出的一种数据存储方法的流程图。
图2是根据一示例性实施例示出的确定数据存储类型的流程图。
图3是根据一示例性实施例示出的将所述数据按照重新确定的所述存储类型进行存储的流程图。
图4是根据一示例性实施例示出的一种数据存储方法的流程图。
图5是根据一示例性实施例示出的为多副本存储系统中SHA1范围内存储记录的一个示例图。
图6是根据一示例性实施例示出的一次导入结束后多副本存储系统中SHA1范围内存储记录一个示例图。
图7是根据一示例性实施例示出的导入完成后更新得到的已导入范围的一个示例图。
图8是根据一示例性实施例示出的一种数据存储装置的框图。
图9是根据一示例性实施例示出的存储类型确定模块801的结构框图。
图10是根据一示例性实施例示出的数据导入模块802的结构框图。
图11是根据一示例性实施例示出的一种计算机设备的框图(服务器的一般结构)。
具体实施方式
为使本文实施例的目的、技术方案和优点更加清楚,下面将结合本文实施例中的附图,对本文实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本文一部分实施例,而不是全部的实施例。基于本文中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本文保护的范围。需要说明的是,在不冲突的情况下,本文中的实施例及实施例中的特征可以相互任意组合。
大部分分布式存储中,多副本数据一般将多个文件数据放置在一个文件组中,文件组的存储容量固定(如10GB),当文件组中的数据超过文件组的容量后将该文件组设置为只读状态,并在文件组设置为只读状态后,以文件组为单位将数据导入到EC存储方式的存储中。
以文件组为单位导入EC存储的方法,存在以下问题:
1、文件数据是以文件组为单位导入的,文件组中可能即存在热数据也存在冷数据,这样会将热数据导入为EC存储模式进行存储,影响文件的高并发访问效率,EC存储模式的数据被频繁访问会造成系统资源的很大负担。
2、无法直接删除EC存储方式下的文件数据,如果文件数据所在文件组已经整个导入为EC存储方式,则无法直接删除该文件数据,影响文件管理。
为了解决上述问题,本公开的实施例提供了一种数据存储方法。根据访问情况,对不同的数据使用不同的存储方式进行存储,在满足访问需求的同时,节约了存储资源,解决了将多副本数据批量转换为EC存储导致的访问不便、管理不便的问题。
本公开的一示例性实施例提供了一种数据存储方法,使用该方法完成多副本存储类型的数据转换为EC类型的数据进行存储的流程如图1所示,包括:
步骤101、配置至少一个存储条件。
所述存储条件包含访问概率区间和对应的存储类型,所述存储类型至少包含以下类型中的任一或任意多项:
多副本存储、纠删码EC存储。
所述存储条件至少包含以下条件中的任一或任意多项:
在访问概率在第一访问概率区间内的情况下,确定数据的存储类型为多副本存储,
在访问概率在第二访问概率区间内的情况下,确定数据的存储类型为EC存储,
其中,所述第一访问概率区间的下限大于等于所述第二访问概率区间的上限。
即,当数据的访问概率由第二访问概率区间降低至第一访问概率区间后,表明数据的访问热度下降,访问需求降低,对于这种情况下的数据,可转换为EC存储类型,节约存储资源。
步骤102、将数据存储为多副本类型。
本步骤中,所述多副本类型的数据结构至少包含以下信息中的任一或任意多项:
SHA1的键值,文件名称,访问时间戳,删除信息。
本公开实施例中,可根据访问时间戳确定最近一次访问数据的的访问时间,以该访问时间为参数计算访问概率,以访问时间戳距离现在较近的数据作为访问概率较高的数据。相应的,将访问概率区间设置为一个时间区间。
优选的,上述数据结构还包括数据文件的大小和上传时间等信息。
步骤103、根据数据被访问情况,重新确定所述数据的存储类型。
本步骤中,在需要进行数据转存时,如文件组存储的数据量达到容量上限或达到预置的时间条件等,即启动对数据的转存。本步骤如图2所示,包括:
步骤201、获取所述数据被访问的访问概率。
本步骤中,可获取所述数据最近一次被访问的访问时间,以所述访问时间作为计算访问概率的输入参数。具体的,获取多副本类型的数据的访问时间戳,其中记录有该数据最近一次被访问的时间。最近一次被访问的时间距离当前时间越近,表明该数据短时间内被再次访问的概率越高。可配置一访问概率标准,其值为一时间点,数据最近一次被访问的时间在该时间点之前,表明该数据短时间内被访问的概率较低,可导入为EC存储类型;数据最近一次被访问的时间在该时间点之后,则表明该数据短时间内被访问的概率较高,仍维护多副本存储类型以保证访问效率。
步骤202、将所述访问概率与预置的至少一个存储条件进行比较。
步骤203、在所述访问概率符合预置的存储条件的访问概率区间的情况下,确定对应的存储类型为所述数据的存储类型。
步骤104、将所述数据按照重新确定的所述存储类型进行存储。
本步骤具体如图3所示,包括:
步骤301、确定导入范围。
考虑到涉及的数据量不定且有可能较为庞大,本步骤中,通过划取导入范围来限制一次由多副本存储类型向EC存储类型转换的数据量,保证系统正常运行。
具体的,可选择被访问的访问概率符合所述存储条件,且在SHA1范围内的多副本存储类型的数据为所述导入范围。
步骤302、将所述导入范围内的存在多副本存储类型的数据的文件记录导入为所述EC类型进行存储,将所述导入范围内已删除的多副本存储类型的数据的删除记录导入为所述EC类型进行存储。
本步骤中,进行由多副本存储类型向EC类型的转换。当发现已删除的多副本存储类型的数据的删除记录时,将该删除记录也转换为EC类型进行存储。在EC类型的存储中,同时存在多副本存储类型的数据转存为EC类型的类型及所述多副本存储类型的数据的删除记录的情况下,从所述EC类型的存储中,删除所述数据。例如,在后续遍历EC类型存储数据,发现删除记录对应的原始数据时,即可将该原始数据删除,并将该删除记录也移除,实现了数据转存机制下的数据删除管理。
步骤105、更新多副本存储类型的数据的存储范围。
在完成转换后,即可更新所述多副本存储类型的数据的存储范围。优选的,可更新已导入为EC类型的数据的范围。
本公开的一示例性实施例还提供了一种数据存储方法,使用该方法根据访问概率对数据进行不同类型存储的流程如图4所示,包括:
本公开实施例中,分布式存储系统包括多副本存储集群和EC存储集群,多副本存储集群使用多副本存储类型进行数据存储,EC存储集群使用EC存储类型进行数据存储。本公开实施例中,以文件数据为单位进行数据存储。
冷热数据的存储方式的差异导致需要一种数据导入方法,将数据由多副本存储类型导入到EC存储类型,本专利发明的一种数导入方法为:按照数据的时间戳ts和sha1安全散列算法1导入某一时间且sha1范围内的文件数据。基于文件最近上传大概率最近被访问的原则,所以根据上传时间戳来区分文件数据的冷热,将某一时间戳之内的数据定义为热数据,某一时间戳之前的数据定义为冷数据;而且无法一次导入全部的文件数据,所以根据sha1一次导入某一sha1范围内的文件数据。
可通过导入程序(importer)实现,导入程序负责将多副本存储集群中访问概率较低的部分数据导入到EC存储集群,具体的,从多副本存储集群根据指定的SHA1和时间戳(ts)取得数据符合条件的文件列表,并将数导入到EC存储集群的数据块中,并将已导入的SHA1范围和时间戳写回多副本存储集群,以便多副本存储集群对数据的导入情况进行记录。
步骤401、将文件数据存储至多副本存储集群。
本公开实施例中,多副本存储集群中使用多副本类型的数据结构,具体的,可为多副本热数据文件元信息结构,该数据结构包含如下信息:
-SHA1#文件的SHA1,即SHA1的键值
-filename#文件名称
-ts#文件的ts版本信息,即最近一次被访问的访问时间戳
-is_del#删除信息,用于表明文件是否删除
-size#文件的大小
-upload_ts#文件的上传时间
<SHA1,filename,ts,is_del>组成文件数据的唯一索引,同一文件数据的不同版本可通过ts来区分,多副本存储集群中删除文件是通过添加一条<SHA1,filename,ts,is_del=1>的标删记录来实现的。
在EC存储集群中如果存在2条文件记录的<SHA1,filename,ts>相等,第一条is_del=0(在添加文件数据时即将数据的is_del置为0,第二条is_del=1,这2条文件记录即构成一组pair文件记录,且说明文件数据已被删除,可以安全的删除物理文件。
步骤402、将多副本存储集群中的冷数据导入至EC存储集群。
本公开实施例中,定义了RangeDict数据结构,通过该数据结构实现对导入过程的管理。为了更好的说明本公开实施例提供的技术方案,首先,对RangeDict数据结构进行说明。
RangeDict数据结构为一个二维数组,其中的每个元素是一个一维数组(称为range)。每个range又包含3个元素,其中,前2个元素为范围区间信息开始和结束的端点,范围区间是一个左闭右开区间;第3个元素为范围区间对应的值。以下为以yaml表示格式实现该数据结构的一个举例:
rangDict:
-["<left>","<right>",<value>]
其中,left、right为开始端点和结束端点,value为该range对应的值,下文用“r[i].left”,“r[i].right”,“r[i].value”指代该rangDict的第i个元素的left,right和value。
优选的,range的前2个元素记录的范围区间为SHA1范围,第3个元素为该SHA1范围对应导入的时间戳ts。
对于RangeDict数据结构,可进行如下操作:
1、合并
当RangeDict二维数组的相邻元素的SHA1相邻(即,rngDict[i][1]等于rndDict[i+1][1])且ts也相等时,此时这两个相邻元素可以合并成一个元素,如下以yaml格式表示RangeDict数据结构的一个举例:
rngDict:
-["a1","a5",1568778001]
-["a5","a8",1568778001]
由于rngDict[i][1]等于rndDict[i+1][1],且ts相等,因此可对rngDict[i][1]和rndDict[i+1][1]进行合并,得到:
rngDict:
-["a1","a8",1568778001]
2、添加(add)
将一个rangeDict添加到另外一个rangeDict,添加完后,range范围区间有交集的会合并。
3、取交集(用数学符号∩表示)
2个Rangdict的取交集,如果2个Rangedict中存在范围区间有交集的元素,则可进行取交集操作,最终交集范围对应的值为第一个Rangedict的值,如下以yaml格式表示的一个举例:
rngDict1:
-["a1","a5",1568778001]
-["a5","a8",1568778002]
rngDict2:
-["a0","a4",1568778003]
则,rngDit3=rngDit1∩rngDict2,等于:
rngDict3:
-["a2","a4",1568778001]
多副本存储集群将已导入信息存储在该多副本存储集群的zookeeper的path="/ec/imported/range"节点中,节点值(value)为1个RangeDict数据结构,本公开实施例中以一个RangeDict记录已导入EC存储集群的文件数据的范围信息,如下以yaml格式表示的一个举例:
imported_ts:#已导入的范围
-["<left_SHA1>","<right_SHA1>",<ts1>]
-["<left_SHA1>","<right_SHA1>",<ts2>]
名为imported_ts的RangeDict记录已经导入EC冷存储的SHA1范围和时间戳信息,一次导入即在imported_ts中添加一个元素。
本公开实施例中,通过访问概率区分冷数据及热数据,将多副本存储集群中的冷数据导入至EC存储集群中。具体的,以访问时间为输入计算访问概率,获取最近一次被访问的时间,该时间晚于预置的访问时间标准则判定被访问的频率较高,该时间早于预置的访问时间标准则判定被访问的频率较低。
本公开实施例中,具体的,可通过时间戳来确定最近一次被访问的时间。本步骤中,首先确定导入文件的SHA1范围及时间范围。以·假设时间戳ts1访问时间标准,最近一次访问的时间在该ts1为之前的文件数据都是冷数据,则需要导入最近一次访问的时间在ts1之前的所有SHA1范围的文件数据。
由于涉及到的需要导入EC存储集群的数据量可能较大,因此需要对每批次执行的数据量进行进一步划分。可通过SHA1范围来划分。
具体的,在EC存储集群中将需要导入的文件数据根据SHA1范围划分到多个区域(即region)中,region的范围(下文表示为:region.range)保存该region包含的SHA1开始和结束范围,表示为:[left,right],是一个左闭右开区间,只有该SHA1范围的文件数据才会导入到该region中。
确定需要导入的数据范围的流程包括:
1、选择某一region得到该region.range:[left,right],确定要导入数据的范围。
2、从多副本集群zookeeper中读取已导入的记录imported_ts(一个RangeDict)。
3、取交集,region_imported=imported_ts∩region.range,取得对当前选中的region.range有交集且已导入的记录。
4、如果region_imported中包含多个range,在前n个range中,选择region_imported[i].value值最小的range:r,取start_ts=r.value;取end_ts为r左右临近range最小的range.value。
如果region_imported只有1个range:r,取start_ts=r.value,end_ts=ts1。
如果region_imported没有任何记录,取r=region.range,start_ts=0,end_ts=ts1。
最后确定SHA1范围:[r.left,r.right]和时间戳范围:[start_ts,end_ts]为指示导入数据的范围的参数,在多副本存储集群的前端列出所有需要导入的文件数据列表。这种选择方式的目的是最终让imported_ts里每个range的值趋于一致。
如图5所示,为多副本存储系统中SHA1范围内存储记录的一个示例。系统中有2个region,多副本集群的zookeeper中记录的imported_ts有6条导入的记录,如果选择region[0]开始导入数据:
1、取交集imported_ts∩region[0].range,得到region_imported:r[0],r[1],r[2]三个range。这3个range对应的已导入的时间戳ts分别是:2017-05-02,2017-06-02,2017-07-02。
2、选择ts最小的r[2]作为这次导入的SHA1范围,同时取start_ts=2017-05-02。
3、与r[2]临近的r[1],ts=2017-06-02,作为这次导入的end_ts。
4、最终导入结束时,r[1]和r[2]的ts的差距会缩小(如果所有符合条件的文件都被导入,则变成相等)。如图6所示。
5、下一次导入的时候,会选择r[1],导入完成后对imported_ts的更新,会导致imported_ts的r[1]和r[2]也和并成1个range。如图7所示。
在确定导入范围后,即可执行以导入范围内的文件数据向EC存储集群的导入,根据确定的导入范围中的left,right,start_ts,end_ts参数从多副本列取导入的文件数据f。然后,从多副本集群中,从f.SHA1>=left开始,逐个列出文件记录f。选择start_ts<f.ts<end_ts的文件记录导入,直到f.SHA1<right,表明整个导入范围中的文件数据处理完毕。
如果在EC存储集群中如果存在2条文件记录的<SHA1,filename,ts>相等,第一条is_del=0(在添加文件数据时即将数据的is_del置为0,第二条is_del=1,这2条文件记录即构成一组pair文件记录,且说明文件数据已被删除,可以安全的删除物理文件。
在导入过程中,如果遇见2个文件记录构成一组pair文件记录,说明文件在多副本存储集群已被删除,则不需要再进行导入,只需过滤该文件数据,因为未导入,实际的效果则为删除,实现了导入过程中的数据删除操作。
如果只遇见一个is_del=1标记删除的删除记录则继续导入该删除记录而不导入实际数据,因为is_del=0的未标记删除的文件记录可能在之前已经导入EC存储集群,这次将删除记录导入到EC存储集群后,最后这2个文件记录相遇(即在EC存储集群中匹配得到了一组pair文件记录)时再删除实际物理数据。
本次导入结束后,最终得到如下的一个rangeDict:
importedDict:
-[left,right,end_ts]
步骤403、根据导入结果,更新多副本存储集群中已导入EC存储集群的数据的范围。
本步骤中,根据刚导入importedDict添加到已导入imported_ts,再将更新后的imported_ts写入多副本集群的zookeeper。
例如:
rst=zk.get("/ec/imported/range")
r1=RangeDict(rst.imported_ts)
r1.add(importedDict)
zk.set("/ec/imported/range",r1)
本公开的一示例性实施例还提供了一种数据存储装置,其结构如图8所示,包括:
存储类型确定模块801,用于根据数据被访问情况,重新确定所述数据的存储类型;
数据导入模块802,用于将所述数据按照重新确定的所述存储类型进行存储。
优选的,所述存储类型确定模块801的结构如图9所示,包括:
访问概率获取单元901,用于获取所述数据被访问的访问概率;
存储条件匹配单元902,用于将所述访问概率与预置的至少一个存储条件进行比较,所述存储条件包含访问概率区间和对应的存储类型;
类型确定单元903,用于在所述访问概率符合预置的存储条件的访问概率区间的情况下,确定对应的存储类型为所述数据的存储类型。
优选的,所述存储类型至少包含以下类型中的任一或任意多项:
多副本存储、纠删码EC存储,
该装置还包括:
存储条件设置模块803,用于配置至少一个存储条件,所述存储条件至少包含以下条件中的任一或任意多项:
在访问概率在第一访问概率区间内的情况下,确定数据的存储类型为多副本存储,
在访问概率在第二访问概率区间内的情况下,确定数据的存储类型为EC存储,
其中,所述第一访问概率区间的下限大于等于所述第二访问概率区间的上限。
优选的,在所述数据的存储类型由多副本类型变为EC类型的情况下,所述数据导入模块802的结构如图10所示,包括:
导入范围确定单元1001,用于确定导入范围;
导入执行单元1002,用于将所述导入范围内存在的多副本存储类型的数据的文件记录导入为所述EC类型进行存储,将所述导入范围内已删除的多副本存储类型的数据的删除记录导入为所述EC类型进行存储。
优选的,所述导入范围确定单元1001,具体用于选择被访问的访问概率符合所述存储条件,且在SHA1范围内的多副本存储类型的数据为所述导入范围。
优选的,该装置还包括:
存储范围更新模块804,用于更新所述多副本存储类型的数据的存储范围。
优选的,该装置还包括:
数据删除模块805,用于在EC类型的存储中,同时存在多副本存储类型的数据转存为EC类型的类型及所述多副本存储类型的数据的删除记录的情况下,从所述EC类型的存储中,删除所述数据。
优选的,该装置还包括:
多副本存储模块806,用于将数据存储为多副本类型,所述多副本类型的数据结构至少包含以下信息中的任一或任意多项:
SHA1的键值,文件名称,访问时间戳,删除信息。
本公开的一示例性实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被执行时实现本公开的实施例所提供的数据存储方法的步骤。
本公开的一示例性实施例还提供了一种计算机设备,包括处理器、存储器和存储于所述存储器上的计算机程序,所述处理器执行所述计算机程序时实现本公开的实施例所提供的数据存储方法的步骤。
本公开的实施例提供了一种数据存储方法,根据数据被访问情况,重新确定所述数据的存储类型,将所述数据按照重新确定的所述存储类型进行存储。解决了以文件组为文件整体将文件由多副本类型转换为EC类型存储时影响访问的问题,实现了适应访问需求的数据存储管理。
通过文件记录中对删除情况的标记,实现了跨多副本存储系统和EC存储系统的文件删除操作,解决了删除操作与数据在系统间转存操作不同步带来的无法删除的问题。
图11是根据一示例性实施例示出的一种用于数据存储的计算机设备1100的框图。例如,计算机设备1100可以被提供为一服务器。参照图11,计算机设备1100包括处理器1101,处理器的个数可以根据需要设置为一个或者多个。计算机设备1100还包括存储器1102,用于存储可由处理器901的执行的指令,例如应用程序。存储器的个数可以根据需要设置一个或者多个。其存储的应用程序可以为一个或者多个。处理器901被配置为执行指令,以执行上述方法。
本领域技术人员应明白,本文的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本文可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本文可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质上实施的计算机程序产品的形式。计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质,包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质等。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
本文是参照根据本文实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的物品或者设备中还存在另外的相同要素。
尽管已描述了本文的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本文范围的所有变更和修改。
显然,本领域的技术人员可以对本文进行各种改动和变型而不脱离本文的精神和范围。这样,倘若本文的这些修改和变型属于本文权利要求及其等同技术的范围之内,则本文的意图也包含这些改动和变型在内。
Claims (19)
1.一种数据存储方法,其特征在于,包括:
根据数据被访问情况,重新确定所述数据的存储类型;
将所述数据按照重新确定的所述存储类型进行存储。
2.根据权利要求1所述的数据存储方法,其特征在于,根据数据被访问情况,重新确定所述数据的存储类型的步骤包括:
获取所述数据被访问的访问概率;
将所述访问概率与预置的至少一个存储条件进行比较,所述存储条件包含访问概率区间和对应的存储类型;
在所述访问概率符合预置的存储条件的访问概率区间的情况下,确定对应的存储类型为所述数据的存储类型。
3.根据权利要求2所述的数据存储方法,其特征在于,所述存储类型至少包含以下类型中的任一或任意多项:
多副本存储、纠删码EC存储,
该方法还包括:
配置至少一个存储条件,所述存储条件至少包含以下条件中的任一或任意多项:
在访问概率在第一访问概率区间内的情况下,确定数据的存储类型为多副本存储,
在访问概率在第二访问概率区间内的情况下,确定数据的存储类型为EC存储,
其中,所述第一访问概率区间的下限大于等于所述第二访问概率区间的上限。
4.根据权利要求3所述的数据存储方法,其特征在于,所述第一访问概率区间和所述第二访问概率区间均为时间区间,所述获取所述数据被访问的访问概率的步骤包括:
获取所述数据最近一次被访问的访问时间,以所述访问时间作为计算访问概率的输入参数。
5.根据权利要求3所述的数据存储方法,其特征在于,在所述数据的存储类型由多副本类型变为EC类型的情况下,所述将所述数据按照重新确定的所述存储类型进行存储的步骤包括:
确定导入范围;
将所述导入范围内存在的多副本存储类型的数据的文件记录导入为所述EC类型进行存储,将所述导入范围内已删除的多副本存储类型的数据的删除记录导入为所述EC类型进行存储。
6.根据权利要求5所述的数据存储方法,其特征在于,所述确定导入范围的步骤包括:
选择被访问的访问概率符合所述存储条件,且在SHA1范围内的多副本存储类型的数据为所述导入范围。
7.根据权利要求6所述的数据存储方法,其特征在于,该方法还包括:
更新所述多副本存储类型的数据的存储范围。
8.根据权利要求5所述的数据存储方法,其特征在于,该方法还包括:
在EC类型的存储中,同时存在多副本存储类型的数据转存为EC类型及所述多副本存储类型删除记录的情况下,从所述EC类型的存储中,删除所述数据。
9.根据权利要求3所述的数据存储方法,其特征在于,所述根据数据被访问情况,重新确定所述数据的存储类型的步骤之前,还包括:
将数据存储为多副本类型,所述多副本类型的数据结构至少包含以下信息中的任一或任意多项:
SHA1的键值,文件名称,访问时间戳,删除信息。
10.一种数据存储装置,其特征在于,包括:
存储类型确定模块,用于根据数据被访问情况,重新确定所述数据的存储类型;
数据导入模块,用于将所述数据按照重新确定的所述存储类型进行存储。
11.根据权利要求10所述的数据存储装置,其特征在于,所述存储类型确定模块包括:
访问概率获取单元,用于获取所述数据被访问的访问概率;
存储条件匹配单元,用于将所述访问概率与预置的至少一个存储条件进行比较,所述存储条件包含访问概率区间和对应的存储类型;
类型确定单元,用于在所述访问概率符合预置的存储条件的访问概率区间的情况下,确定对应的存储类型为所述数据的存储类型。
12.根据权利要求11所述的数据存储装置,其特征在于,所述存储类型至少包含以下类型中的任一或任意多项:
多副本存储、纠删码EC存储,
该装置还包括:
存储条件设置模块,用于配置至少一个存储条件,所述存储条件至少包含以下条件中的任一或任意多项:
在访问概率在第一访问概率区间内的情况下,确定数据的存储类型为多副本存储,
在访问概率在第二访问概率区间内的情况下,确定数据的存储类型为EC存储,
其中,所述第一访问概率区间的下限大于等于所述第二访问概率区间的上限。
13.根据权利要求12所述的数据存储装置,其特征在于,在所述数据的存储类型由多副本类型变为EC类型的情况下,所述数据导入模块包括:
导入范围确定单元,用于确定导入范围;
导入执行单元,用于将所述导入范围内存在的多副本存储类型的数据的文件记录导入为所述EC类型进行存储,将所述导入范围内已删除的多副本存储类型的数据的删除记录导入为所述EC类型进行存储。
14.根据权利要求13所述的数据存储装置,其特征在于,
所述导入范围确定单元,具体用于选择被访问的访问概率符合所述存储条件,且在SHA1范围内的多副本存储类型的数据为所述导入范围。
15.根据权利要求14所述的数据存储装置,其特征在于,该装置还包括:
存储范围更新模块,用于更新所述多副本存储类型的数据的存储范围。
16.根据权利要求15所述的数据存储装置,其特征在于,该装置还包括:
数据删除模块,用于在EC类型的存储中,同时存在多副本存储类型的数据转存为EC类型的类型及所述多副本存储类型的数据的删除记录的情况下,从所述EC类型的存储中,删除所述数据。
17.根据权利要求12所述的数据存储装置,其特征在于,该装置还包括:
多副本存储模块,用于将数据存储为多副本类型,所述多副本类型的数据结构至少包含以下信息中的任一或任意多项:
SHA1的键值,文件名称,访问时间戳,删除信息。
18.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被执行时实现如权利要求1-9中任意一项所述方法的步骤。
19.一种计算机设备,包括处理器、存储器和存储于所述存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-9中任意一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911055807.4A CN112748868A (zh) | 2019-10-31 | 2019-10-31 | 数据存储方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911055807.4A CN112748868A (zh) | 2019-10-31 | 2019-10-31 | 数据存储方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112748868A true CN112748868A (zh) | 2021-05-04 |
Family
ID=75645624
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911055807.4A Pending CN112748868A (zh) | 2019-10-31 | 2019-10-31 | 数据存储方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112748868A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113568580A (zh) * | 2021-07-29 | 2021-10-29 | 广州市品高软件股份有限公司 | 分布式存储系统的实现方法、装置、介质及存储系统 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090193064A1 (en) * | 2008-01-29 | 2009-07-30 | Ying Chen | Method and system for access-rate-based storage management of continuously stored data |
CN102323898A (zh) * | 2011-09-02 | 2012-01-18 | 深圳中兴网信科技有限公司 | 一种缓存调度方法和系统 |
CN103118133A (zh) * | 2013-02-28 | 2013-05-22 | 浙江大学 | 基于文件访问频次的混合云存储方法 |
US20140095790A1 (en) * | 2012-10-02 | 2014-04-03 | International Business Machines Corporation | Management of data using inheritable attributes |
CN103838860A (zh) * | 2014-03-19 | 2014-06-04 | 华存数据信息技术有限公司 | 一种基于动态副本策略的文件存储系统及其存储方法 |
CN104281533A (zh) * | 2014-09-18 | 2015-01-14 | 深圳市中博科创信息技术有限公司 | 一种存储数据的方法及装置 |
KR101533340B1 (ko) * | 2014-04-09 | 2015-07-06 | 인하대학교 산학협력단 | 클라우드 스토리지 시스템에서 데이터 접근빈도와 소거 코드를 이용한 데이터 복제 방법 |
CN104869138A (zh) * | 2014-02-25 | 2015-08-26 | 中国电信股份有限公司 | 对云存储数据文件副本自动管理的方法与装置 |
CN107807796A (zh) * | 2017-11-17 | 2018-03-16 | 北京联想超融合科技有限公司 | 一种基于超融合存储系统的数据分层方法、终端及系统 |
US20180276134A1 (en) * | 2017-03-23 | 2018-09-27 | International Business Machines Corporation | Managing Digital Datasets On A Multi-Tiered Storage System Based On Predictive Caching |
CN109783016A (zh) * | 2018-12-25 | 2019-05-21 | 西安交通大学 | 一种分布式存储系统中的弹性多维度冗余方法 |
-
2019
- 2019-10-31 CN CN201911055807.4A patent/CN112748868A/zh active Pending
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090193064A1 (en) * | 2008-01-29 | 2009-07-30 | Ying Chen | Method and system for access-rate-based storage management of continuously stored data |
CN101499073A (zh) * | 2008-01-29 | 2009-08-05 | 国际商业机器公司 | 基于访问频率的连续存储数据的存储管理方法和系统 |
CN102323898A (zh) * | 2011-09-02 | 2012-01-18 | 深圳中兴网信科技有限公司 | 一种缓存调度方法和系统 |
US20140095790A1 (en) * | 2012-10-02 | 2014-04-03 | International Business Machines Corporation | Management of data using inheritable attributes |
CN103118133A (zh) * | 2013-02-28 | 2013-05-22 | 浙江大学 | 基于文件访问频次的混合云存储方法 |
CN104869138A (zh) * | 2014-02-25 | 2015-08-26 | 中国电信股份有限公司 | 对云存储数据文件副本自动管理的方法与装置 |
CN103838860A (zh) * | 2014-03-19 | 2014-06-04 | 华存数据信息技术有限公司 | 一种基于动态副本策略的文件存储系统及其存储方法 |
KR101533340B1 (ko) * | 2014-04-09 | 2015-07-06 | 인하대학교 산학협력단 | 클라우드 스토리지 시스템에서 데이터 접근빈도와 소거 코드를 이용한 데이터 복제 방법 |
CN104281533A (zh) * | 2014-09-18 | 2015-01-14 | 深圳市中博科创信息技术有限公司 | 一种存储数据的方法及装置 |
US20180276134A1 (en) * | 2017-03-23 | 2018-09-27 | International Business Machines Corporation | Managing Digital Datasets On A Multi-Tiered Storage System Based On Predictive Caching |
CN107807796A (zh) * | 2017-11-17 | 2018-03-16 | 北京联想超融合科技有限公司 | 一种基于超融合存储系统的数据分层方法、终端及系统 |
CN109783016A (zh) * | 2018-12-25 | 2019-05-21 | 西安交通大学 | 一种分布式存储系统中的弹性多维度冗余方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113568580A (zh) * | 2021-07-29 | 2021-10-29 | 广州市品高软件股份有限公司 | 分布式存储系统的实现方法、装置、介质及存储系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210152638A1 (en) | Data processing method, apparatus, and system | |
CN106951375B (zh) | 在存储系统中删除快照卷的方法及装置 | |
US20220004334A1 (en) | Data Storage Method, Apparatus and System, and Server, Control Node and Medium | |
US20150142749A1 (en) | Method and system for a safe archiving of data | |
CN115599747B (zh) | 一种分布式存储系统的元数据同步方法、系统及设备 | |
CN110531933B (zh) | 数据处理方法及服务器 | |
CN110781156A (zh) | 一种数据节点的分配方法、设备及介质 | |
CN111966287A (zh) | 数据存储方法、电子设备及存储介质 | |
CN110147203B (zh) | 一种文件管理方法、装置、电子设备及存储介质 | |
CN115114232A (zh) | 一种历史版本对象列举方法、装置及其介质 | |
CN112748868A (zh) | 数据存储方法和装置 | |
CN108062323B (zh) | 一种日志读取方法及装置 | |
CN111506254B (zh) | 分布式存储系统及其管理方法、装置 | |
CN111147226A (zh) | 数据存储方法、装置及存储介质 | |
CN111241036B (zh) | 一种异步io数据处理方法、装置、设备及介质 | |
CN114489481A (zh) | 硬盘存储数据并访问的方法及系统 | |
CN114116538A (zh) | 镜像的缓存管理方法、装置、设备及存储介质 | |
CN110704573B (zh) | 目录存储方法、装置、计算机设备及存储介质 | |
CN112965939A (zh) | 一种文件合并方法、装置和设备 | |
CN114968963A (zh) | 文件覆盖写方法、装置和电子设备 | |
CN113051301A (zh) | 一种对象存储方法、系统及设备 | |
CN116821146B (zh) | 一种基于Apache Iceberg的数据表列更新方法及系统 | |
CN116069788B (zh) | 数据处理方法、数据库系统、计算机设备和存储介质 | |
CN111459949B (zh) | 针对数据库的数据处理方法、装置及设备和索引更新方法 | |
CN111104787B (zh) | 用于比较文件的方法、设备和计算机程序产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |