数据存储方法及设备与流程

文档序号:29510496发布日期:2022-04-06 19:42阅读:77来源:国知局
数据存储方法及设备与流程

1.本技术涉及数据存储技术领域,尤其涉及一种数据存储方法及设备。


背景技术:

2.随着数字经济的不断升级、工业互联网和5g技术的相继应用,对数据存储的规模要求越来越大,对高吞吐、低时延的存储的要求也越来越迫切。现在的全闪存分布式存储框架是在原分布式存储的基础上将机械硬盘替换为固态硬盘,利用固态硬盘的高吞吐和低时延特性,提升整个集群的性能。
3.固态硬盘在写数据之前需要先以块的形式擦除数据,再将需要写的数据写入已擦除的块中。若需要擦除的块中的数据包括有效的数据和无效数据,该有效的数据可以被继续访问,而需要擦除的数据已经失效,不会再被访问,即该需要擦除的块中的数据被访问的概率不一致,那么需要先将该有效的数据迁移到其它地方后再擦除块,导致写放大的问题,进而影响到固态硬盘的性能和使用寿命。
4.综上所述,如何在数据存储过程中避免写放大以提升固态硬盘的性能和使用寿命是本领域技术人员需要解决的技术问题。


技术实现要素:

5.本技术实施例公开了一种数据存储方法及设备,能够在数据存储过程中避免写放大以提升存储器的性能和使用寿命。
6.第一方面,本技术实施例公开了一种数据存储方法,该方法包括:
7.获取待存储文件和上述待存储文件的属性信息;
8.根据上述属性信息获取上述待存储文件对应的第一标签;
9.根据上述第一标签将上述待存储文件存储到第一存储区间,其中,所述第一标签与所述第一存储空间中的文件所携带的第二标签互相匹配。
10.上述第一标签用于指示上述待存储文件被访问的概率;上述第一标签与上述第一存储空间中的文件所携带的第二标签互相匹配,包括:上述第一标签与上述第二标签的相似度大于或等于第一阈值。
11.文件的属性信息用于指示该文件被访问的概率。在本技术中,通过标签来标识文件,且属性信息匹配的文件其文件标签也匹配,属性信息匹配的文件即为被访问概率相同或相近的文件,因此可以通过标签来指示文件的被访问概率,从而可以使得文件的划分更集中以及更精准。
12.然后,将标签匹配的文件即被访问概率相同或相近的文件存储到相同的存储区间或相邻的存储区间,能够减少存储区间的写放大的问题。具体的,因为同一个存储区间中数据的被访问概率不一致,容易导致同一个存储区间中部分数据失效后,另一部分数据仍然有效,这时,若需要在该存储区间中写数据,需要先将有效部分的数据搬移出来,然后再擦除该存储区间,才可以将其它数据写入到该存储区间,从而导致了写放大的问题。而本技术
中,从开始往存储空间中存储数据时就将被访问概率相同或相近的数据写入该存储空间中,因此,可以在后续的数据写入过程中减少写放大以提升存储器的性能,减少存储区间的擦除次数以延长使用寿命,另外由于文件存储在相同的存储区间或相邻的存储区间,因此还可以提高文件的读取效率。
13.在具体实施方式中,上述获取到待存储文件的第一标签后,可以将该第一标签与各个存储区间中的数据的标签进行比较,若存在某个存储区间中的数据的标签与该第一标签匹配,且该某个存储区间中还有剩余的存储空间,则可以将该待存储文件存储到该某个存储区间。
14.具体的,每一个存储区间可以对应一个工作线程用于执行写入任务,那么将该待存储文件存储到该某个存储区间具体可以是,该数据存储设备将该待存储文件添加到该某个存储区间的工作线程的队列中,通过该工作线程将该待存储文件存储到该某个存储区间中。
15.如果存在某个存储区间中的数据的标签与该第一标签匹配,但是该某个存储区间中没有剩余的存储空间,则可以将该待存储文件存储到与该某个存储区间距离最近的还未存储有数据的存储空间中。具体的,可以创建一个新的工作线程用于将该待存储文件存储到与该某个存储区间距离最近的还未存储有数据的存储空间中。
16.另一种可能的实施方式中,上述获取到上述待存储文件的第一标签后,可以将该第一标签与各个存储区间中的数据的标签进行比较,若各个存储区间中的数据的标签与该第一标签均不匹配,那么,可以将该待存储数据存储在未存储有数据的存储空间中。同样的,数据存储设备可以创建一个新的工作线程用于将该待存储文件存储到未存储有数据的存储空间中。
17.在一种可能的实施方式中,上述第一数据的属性信息与上述待存储文件的属性信息匹配。
18.在一种可能的实施方式中,上述待存储文件包括多个数据块,其中,上述多个数据块中的每个数据块对应第一标签,上述根据上述第一标签将上述待存储文件存储到第一存储区间,包括:根据上述第一标签将上述多个数据块存储到上述第一存储区间。
19.可选的,该第一存储区间可以包括多个子存储区间,且该多个子存储区间为相邻的存储区间。
20.在本实施方式中,属于同一个文件的数据块的标签均相同,使得该文件的多个数据块能够存储在相同或相邻的存储空间中,从而可以提高该文件的读取效率,另外,由于同一个文件的访问概率相同,因此在后续的读写过程中可以减少该存储空间的擦除次数。
21.在一种可能的实施方式中,上述待存储文件的属性信息包括存储上述待存储文件的逻辑地址的信息。
22.在本实施方式中,逻辑地址相同或相邻的文件,其被访问的概率相同或相近,因此,可以将逻辑地址相同或相邻的文件存储到相同或相邻的存储空间中,以使得后续写入数据的过程中,能够减少该存储空间的擦除次数,避免写放大。
23.在一种可能的实施方式中,上述逻辑地址的信息包括上述待存储文件在文件系统中的存储路径,其中,上述第一标签和上述存储路径中与上述待存储文件在相同层级目录的文件的标签匹配。
24.在本实施方式中,文件的逻辑地址的信息可以表现为文件在文件系统中的存储路径,在一个存储路径中,相同层级目录的文件被访问的概率相近,因此,可以将相同目录层级的文件存储到相同或相邻的存储空间中,以使得后续写入数据的过程中,能够减少该存储空间的擦除次数,避免写放大。
25.在一种可能的实施方式中,上述待存储文件的属性信息包括上述待存储文件所属的用户的标识,其中,上述第一标签与携带上述标识的文件的标签匹配。
26.在本实施方式中,相同用户的文件被访问的概率相近,因此,可以将相同用户的文件存储在相同或相邻的存储区间,以使得后续写入数据的过程中,能够减少该存储空间的擦除次数,避免写放大。
27.在一种可能的实施方式中,上述待存储文件的属性信息包括多项子属性信息,上述根据上述属性信息获取上述待存储文件的第一标签,包括:
28.分别根据上述多项子属性信息的每一项子属性信息获取一个编号;
29.根据获取的多个编号得到上述第一标签。
30.可选的,上述多项子属性信息可以是待存储文件的全部的属性信息,或者可以是待存储文件的部分的属性信息。
31.在本实施方式中,可以根据多项属性信息来配置文件的标签,综合考虑各项属性信息可以使得文件的划分更精确。
32.在一种可能的实施方式中,上述第一存储区间位于存储器中,该存储器包括热区间和冷区间,上述热区间用于存储热数据,上述冷区间用于存储冷数据;
33.上述根据上述第一标签将上述待存储文件存储到第一存储区间,包括:
34.在上述待存储文件属于热数据的情况下,根据上述第一标签在上述热区间中查找存储上述待存储文件的存储区间;确定上述热区间中的上述第一存储区间用于存储上述待存储文件;
35.或者,在上述待存储文件属于冷数据的情况下,根据上述第一标签在上述冷区间中查找存储上述待存储文件的存储区间;确定上述冷区间中的上述第一存储区间用于存储上述待存储文件。
36.在一种可能的实施方式中上述存储器包括多个闪存颗粒,上述热区间和上述冷区间根据预设空间配置规则配置在上述多个闪存颗粒中,上述预设空间配置规则使得上述多个闪存颗粒的每一个闪存颗粒中上述热区间和上述冷区间的数量比例不超过第二阈值。
37.在本实施方式中,由于热区间存储的是热数据,擦除次数较多,冷区间存储的是冷数据,擦除次数较少,因此将冷热区间均匀地分布在各个闪存颗粒中,从而可以使得各个闪存颗粒的使用寿命相当,避免有闪存颗粒使用寿命长,有的使用寿命短的问题。
38.在一种可能的实施方式中,上述第一存储区间用于存储标签的值在上述第一范围内的文件,上述根据上述第一标签将上述待存储文件存储到第一存储区间,包括:确定上述第一标签的值位于上述第一范围内,将上述待存储文件存储到第一存储区间中。
39.在本实施方式中,可以预先配置好各个存储区间存储的文件的标签值的范围,在存储的过程中可以为待存储文件快速匹配到存储区间,提高存储效率。
40.第二方面,本技术提供了一种数据存储设备,该设备包括:
41.第一获取单元,用于获取待存储文件和上述待存储文件的属性信息;
42.第二获取单元,用于根据上述属性信息获取上述待存储文件对应的第一标签;
43.存储单元,用于根据上述第一标签将上述待存储文件存储到第一存储区间,其中,所述第一标签与所述第一存储空间中的文件所携带的第二标签互相匹配。
44.上述第一标签用于指示上述待存储文件被访问的概率;上述第一标签与上述第一存储空间中的文件所携带的第二标签互相匹配,包括:上述第一标签与上述第二标签的相似度大于或等于第一阈值。
45.在一种可能的实施方式中,所述待存储文件包括多个数据块,其中,所述多个数据块中的每个数据块对应第一标签,所述存储单元具体用于:根据所述第一标签将所述多个数据块存储到所述第一存储区间。
46.在一种可能的实施方式中,上述待存储文件的属性信息包括存储上述待存储文件的逻辑地址的信息。
47.在一种可能的实施方式中,上述逻辑地址的信息包括上述待存储文件在文件系统中的存储路径,其中,上述第一标签和上述存储路径中与上述待存储文件在相同层级目录的文件的标签匹配。
48.在一种可能的实施方式中,上述待存储文件的属性信息包括上述待存储文件所属的用户的标识,其中,上述第一标签与携带上述标识的文件的标签匹配。
49.在一种可能的实施方式中,上述待存储文件的属性信息包括多项子属性信息,上述第二获取单元具体用于:分别根据所述多项子属性信息的每一项子属性信息获取一个编号;根据获取的多个编号得到所述第一标签。
50.在一种可能的实施方式中,上述第一存储区间位于存储器中,该存储器包括热区间和冷区间,上述热区间用于存储热数据,上述冷区间用于存储冷数据;上述存储单元具体用于:
51.在上述待存储文件属于热数据的情况下,根据上述第一标签在上述热区间中查找存储上述待存储文件的存储区间;确定上述热区间中的上述第一存储区间用于存储上述待存储文件;
52.或者,在上述待存储文件属于冷数据的情况下,根据上述第一标签在上述冷区间中查找存储上述待存储文件的存储区间;确定上述热区间中的上述第一存储区间用于存储上述待存储文件。
53.在一种可能的实施方式中,上述快闪存储器包括多个闪存颗粒,上述热区间和上述冷区间根据预设空间配置规则配置在上述多个闪存颗粒中,上述预设空间配置规则使得上述多个闪存颗粒的每一个闪存颗粒中上述热区间和上述冷区间的数量比例不超过第二阈值。
54.在一种可能的实施方式中,上述第一存储区间用于存储标签的值在上述第一范围内的文件,上述存储单元具体用于:确定上述第一标签的值位于上述第一范围内,
55.将上述待存储文件存储到第一存储区间中。
56.第三方面,本技术提供一种数据存储设备,该设备包括处理器和存储器,该存储器存储有计算机程序,该处理器用于调用该计算机程序来执行上述第一方面任一项所述的方法。
57.第四方面,本技术提供一种计算机可读存储介质,该计算机可读存储介质中存储
有计算机程序,当该程序被处理器执行时,实现上述第一方面任一项所述的方法。
58.综上所述,通过标签来标识文件,且属性信息匹配的文件其文件标签也匹配,从而可以使得文件的划分更集中以及更精准。将标签匹配的文件存储到相同的存储区间或相邻的存储区间,从而可以使得在后续的数据存储过程中避免写放大以提升存储器的性能,减少存储区间的擦除次数以延长使用寿命,另外由于文件存储在相同的存储区间或相邻的存储区间,因此还可以提高文件的读取效率。
附图说明
59.下面将对本技术实施例中所需要使用的附图作介绍。
60.图1所示为本技术实施例提供的存储系统的结构示意图;
61.图2所示为本技术实施例提供的存储系统包括的控制器的结构示意图;
62.图3所示为本技术实施例提供的分布式存储系统的结构示意图;
63.图4所示为本技术实施例提供的分布式存储系统的服务器的结构示意图;
64.图5所示为本技术实施例提供的一种数据存储方法的流程示意图;
65.图6所示为本技术实施例提供的一种文件存储路径的结构示意图;
66.图7所示为本技术实施例提供的一种文件存储路径的结构示意图;
67.图8所述为本技术实施例提供的一种存储空间的结构示意图;
68.图9所示为本技术实施例提供的一种设备的逻辑结构示意图。
具体实施方式
69.首先对适用于本技术实施例的存储系统进行介绍。
70.如图1所示,本技术实施例中的存储系统,可以为存储阵列。存储阵列包括存储控制器101和多个存储器,其中,该存储器可以为硬盘,硬盘包含固态硬盘(solid state disk,ssd)或者磁盘等,固态硬盘可以是闪存存储器。如图2所示,存储控制器101包含处理器201、存储器202和接口203,存储器202中存储计算机程序,处理器201执行存储器202中的计算机程序对存储系统进行管理及数据访问操作。另外,处理器201可以为微处理器、专用集成电路、现场可编程门阵列(field programmable gate array,fpga)和其他硬件中的任意一项或多项的组合,处理器与接口203通信。接口203可以为主机总线适配器(host b us adaptor,hba)等。
71.一种可能的实施方式中,存储控制器101可以不包括存储器202,存储控制器101所存储的数据可以存储在控制器101控制的硬盘中。
72.如图1和图2所描述的存储阵列,控制器101用于执行本技术实施例中的数据存储方法。
73.进一步的,本技术实施例的存储系统还可以为分布式存储系统等。示例性的,如图3所示,分布式存储系统包括多台服务器,如服务器1、服务器2、服务器3,
……
,服务器n(该n为大于1的整数),服务器间通过无限带宽(infiniband)或以太网络等互相通信。在实际应用当中,分布式存储系统中服务器的数量可以根据实际需求增加或减少,本技术实施例对此不作限定。分布式存储系统中的服务器又称为存储节点。
74.分布式存储系统的服务器中包含如图4所示的结构。如图4所示,分布式存储系统
中的每台服务器包含处理器401、内存402、接口403和多个存储器,该多个存储器可以为多个硬盘。该多个硬盘例如图4所示的硬盘1、硬盘2和硬盘3等。内存402中存储计算机程序,处理器401执行内存402中的计算机程序行相应的操作,例如用于执行本技术实施例中的数据存储方法。接口403可以为硬件接口,如网络接口卡(network interface card,nic)或主机总线适配器等,也可以为程序接口模块等。硬盘包含固态硬盘或者磁盘等。另外,处理器401可以为中央处理单元(central processing unit,cpu),也可以是现场可编程门阵列,或者,fpga(或其他硬件)与cpu的组合共同作为处理器。本技术实施例中的存储器402可以为处理器401提供内存。接口403可以为网络接口卡、主机总线适配器。
75.基于上述的介绍,下面结合附图对本技术实施例中的技术方案进行描述。
76.参见图5,图5所示为本技术实施例提供的一种数据存储方法,该方法可以应用于上述图1和图3所示的存储系统,可以通过上述图1和图2所述的控制器或图3和图4所述的服务器或服务器中的处理器来执行本技术实施例提供的数据存储方法,下面将该控制器或服务器统称为数据存储设备。该方法可以包括但不限于如下步骤:
77.s501、获取待存储文件和该待存储文件的属性信息。
78.在具体实施例中,数据存储设备可以从客户端接收该待存储的文件和该文件的属性信息,也可以通过自身的文件系统获取该待存储文件和该文件的属性信息。
79.该文件的属性信息可以包括文件的逻辑地址的信息、文件所属的用户的标识和文件的类型等信息中一种或多种。可选的,文件的属性信息还可以包括文件的大小和创建时间等等。
80.文件的逻辑地址的信息可以表现为文件在文件系统中的存储路径。示例性地,文件的存储路径例如可以是“c:\documents and setting\user name\application data”等。
81.文件所属的用户的标识可以是默认的用户的名称,也可以是自定义的用户的名称等。
82.文件的类型例如可以包括各类文档、音频、视频、图片以及各类绘图的文件等,可以通过文件的后缀名来区分不同类型的文件。
83.s502、根据该属性信息获取该待存储文件对应的第一标签。
84.在本技术实施例中,标签是用于区分文件的被访问概率是否相同或相近一个标识,下面首先示例性地介绍本技术实施例为文件配置标签的方法,可以参见下面的几种情况:
85.第一种情况、通过文件的逻辑地址来为文件配置标签。
86.在具体实施例中,可以根据逻辑地址的区间来为文件配置标签,例如,可以将逻辑地址划分为多个逻辑存储区间,每一个逻辑存储区间可以包括一个或多个逻辑地址连续的存储单元,每一个逻辑存储区间中存储的文件可以分为一类,然后为每一类文件配置一个标签,不同类的文件的标签不同。
87.这样对文件进行标签配置的逻辑是逻辑地址连续的存储单元中存储的文件被访问的概率相同或相近,因此可以将被访问概率相同或相近的文件的标签配置为相同或匹配,标签匹配的概念下面会介绍,此处暂不详述。
88.其中,文件的被访问概率相近指的是两个文件的被访问概率之差小于或等于一个
阈值,该阈值例如可以是0.1、0.2或0.05等等。例如,假设该阈值为0.1,那么一个文件被访问的概率为0.5,另一个文件被访问的概率为0.58,这两个概率之差为0.08,小于阈值0.1,因此,可以说该一个文件和该另一个文件的被访问概率相近。
89.为了便于理解通过逻辑地址对文件进行标签配置,可以参见表1。
90.表1
[0091][0092]
表1示例性列出了通过逻辑地址对文件进行标签配置的情况。在表1中,lba为logical block address的缩写,表示一个逻辑地址。假设每三个逻辑地址组成一个逻辑存储区间,每一个逻辑存储区间中存储的文件可以包括一个或多个。可以看到,不同的逻辑存储区间可以配置不同的标签,不同的逻辑存储区间存储的文件的标签不同,相同的逻辑存储区间存储的文件的标签相同。例如,同属于第一逻辑存储区间的文件1和文件2的标签均为1000,而属于第二逻辑存储区间的文件3的标签为2000。
[0093]
在一种可能的实施方式中,文件的逻辑地址的信息可以表现为文件在文件系统中的存储路径,即可以通过文件的存储路径来对文件进行标签配置。为了便于理解,下面举例说明。
[0094]
假设文件的存储路径例如可以是“c:\documents and setting\user name\application data”,该存储路径包括四个层级的存储目录,分别为“c:”、“documents and setting”、“user name”和“application data”。其中,“c:”为根目录;“documents and setting”为“c:”的子目录,同时为“user name”的父目录;“user name”为“documents and setting”的子目录,同时为“application data”的父目录。
[0095]
相同层级目录的文件被访问的概率相近,因此可以将相同层级目录的文件的标签配置为互相匹配的标签,其中,标签相似度大于或等于第一阈值的两个标签匹配。
[0096]
一种可能的实施方式中,文件的标签可以为一个具体的数值,那么,两个标签的标签相似度可以通过两个标签值之间的差值来确定,示例性地,差值在某一个范围内对应一个相似度。例如,可以参见表2。
[0097]
表2
[0098]
两个标签值之差cc≤1010《c≤2020《c≤30标签相似度90%80%70%
[0099]
在表2中可以看到,在两个标签值的差值小于或等于10的情况下,那么该两个标签的标签相似度为90%;在两个标签值的差值大于10且小于或等于20的情况下,那么该两个标签的标签相似度为80%;在两个标签值的差值大于20且小于或等于30的情况下,那么该两个标签的标签相似度为70%。假设上述第一阈值为70%,那么,只要两个标签值的差值小于或等于30,则该两个标签匹配。需要说明的是,表2中的数值仅为一个示例,不构成对本技术的限制。
[0100]
另一种可能的实施方式中,文件的标签可以是规则的编码,那么,两个标签的标签
相似度可以通过两个编码之间的相似度来体现,两个编码之间的相似度可以通过比较两个编码中的前m1(m为大于0的整数)位是否相同来确定。假设,编码的总位数为m2,那么编码的相似度可以为m1/m2。例如,一个编码为11111,另一个编码为11211,可以看到编码的总位数为5,且该两个编码的前2位相同,那么该两个编码的相似度为2/5=40%。又例如,一个编码为11111,另一个编码为11112,可以看到编码的总位数为5,且该两个编码的前4位相同,那么该两个编码的相似度为4/5=80%。假设上述第一阈值为80%,那么,只要总位数为5的两个编码的前4为编码相同,则该两个编码匹配,即该两个标签匹配。需要说明的是,这里的编码位数以及第一阈值仅为一个示例,不构成对本技术的限制。
[0101]
上述两个标签的匹配也可以说是该两个标签对应的文件的属性信息的匹配。
[0102]
基于上述两种标签的形式,下面分别介绍一下根据文件的存储路径来配置文件的标签的过程。
[0103]
首先,介绍一下当文件的标签为一个具体的数值时,根据文件的存储路径来配置文件的标签的过程。示例性地,可以从文件的存储路径的根目录开始,每一层目录中的各个文件夹和文件均配置一个编号,相同层级目录中的各个编号各不相同。然后,各个层级目录的编号相加即为对应文件的标签。为了便于理解,可以参见图6。
[0104]
图6示例性示出了三个目录层级的存储路径中文件的示意图。假设第一层级目录包括一个文件夹即文件夹1,配置的编号为1000;第二层级目录包括文件夹2、文件夹3和文件1,分别配置的编号为1000、2000和3000;第三层级目录包括文件2、文件3、文件4和文件5,其中,文件2属于文件夹2,配置的编号为1,文件3、文件4和文件5属于文件夹3,配置的编号分别为1、2和3。
[0105]
那么,文件1的标签为文件夹1的编号加上文件1的编号即1000+3000=4000;文件2的标签为文件夹1、文件夹2和文件2的编号之和即1000+1000+1=2001;文件3的标签为文件夹1、文件夹3和文件3的编号之和即1000+2000+1=3001;文件4的标签为文件夹1、文件夹3和文件4的编号之和即1000+2000+2=3002;文件5的标签为文件夹1、文件夹3和文件5的编号之和即1000+2000+3=3003。
[0106]
然后,介绍一下当文件的标签为一个规则的编码时,根据文件的存储路径来配置文件的标签的过程。示例性地,可以从文件的存储路径的根目录开始,每一层目录中的各个文件夹和文件均配置一个编号,相同层级目录中的各个编号各不相同。然后,各个层级目录的编号按顺序排列即为对应文件的标签。为了便于理解,可以参见图7。
[0107]
图7示例性示出了三个目录层级的存储路径中文件的示意图。假设第一层级目录包括一个文件夹即文件夹1,配置的编号为1;第二层级目录包括文件夹2、文件夹3和文件1,分别配置的编号为1、2和3;第三层级目录包括文件2、文件3、文件4和文件5,其中,文件2属于文件夹2,配置的编号为1,文件3、文件4和文件5属于文件夹3,配置的编号分别为1、2和3。
[0108]
那么,假设按照第一层级目录至第三层级目录的顺序排列编号即可得到对应文件的标签,则文件1的标签为13,文件2的标签为111,文件3的标签为121,文件4的标签为122,文件5的标签为123。
[0109]
第二种情况、通过文件所属的用户标识来进行文件的标签配置。
[0110]
示例性地,可以根据不同的用户标识为不同的文件配置不同的标签。
[0111]
一种可能的实施方式中,可以是先分别为每一个用户配置一个基础编号,然后再
对每个用户的文件配置不同的编号,基础编号加上文件的编号即为文件的标签。例如,假设属于用户1的文件有文件a和文件b,属于用户2的文件有文件c和文件d,那么,对于用户1和用户2先分别设置基础编号为10000和20000,文件a和文件b设置的编号分别为10和20,文件c和文件d设置的编号分别为10和20。那么,文件a和文件b的标签分别为10010和10020,文件c和文件d的标签分别为20010和20020。
[0112]
另一种可能的实施方式中,可以是先分别为每一个用户配置一个基础编号,然后再对每个用户的文件配置不同的编号,基础编号和文件的编号按顺序排列即为文件的标签。例如,假设属于用户1的文件有文件a和文件b,属于用户2的文件有文件c和文件d,那么,对于用户1和用户2先分别设置基础编号为1和2,文件a和文件b设置的编号分别为1和2,文件c和文件d设置的编号分别为1和2。那么,文件a和文件b的标签分别为11和12,文件c和文件d的标签分别为21和22。
[0113]
第三种情况、通过文件的类型来进行文件的标签配置。
[0114]
示例性地,可以根据不同的文件类型为不同的文件配置不同的标签。
[0115]
一种可能的实施方式中,可以是先分别为每一个类型配置一个基础编号,然后再对每个类型的文件配置不同的编号,基础编号加上文件的编号即为文件的标签。例如,假设有音频、视频和图片这三个类型,其中,属于音频类型的文件有文件a、文件b和文件c,属于视频类型的文件有文件d和文件e,属于图片类型的文件有文件f。那么,对于音频、视频和图片可以先分别设置基础编号为10000、20000和30000,文件a、文件b和文件c设置的编号分别为10、20和30,文件d和文件e设置的编号分别为10和20,文件f设置的编号为10。那么,文件a、文件b和文件c的标签分别为10010、10020和10030,文件d和文件e的标签分别为20010和20020,文件f的标签分别为30010。
[0116]
另一种可能的实施方式中,可以是先分别为每一个类型配置一个基础编号,然后再对每个类型的文件配置不同的编号,基础编号和文件的编号按顺序排列即为文件的标签。例如,假设有音频、视频和图片这三个类型,其中,属于音频类型的文件有文件a、文件b和文件c,属于视频类型的文件有文件d和文件e,属于图片类型的文件有文件f。那么,对于音频、视频和图片可以先分别设置基础编号为1、2和3,文件a、文件b和文件c设置的编号分别为1、2和3,文件d和文件e设置的编号分别为1和2,文件f设置的编号为1。那么,文件a、文件b和文件c的标签分别为11、12和13,文件d和文件e的标签分别为21和22,文件f的标签分别为31。
[0117]
第四种情况、结合文件的多项属性信息来配置文件的标签。
[0118]
在这种情况下,可以根据文件的多项属性信息的每一项信息配置一个编号得到多个编号,然后根据该多个编号得到该文件的标签。该多项属性信息可以包括文件的全部的属性信息,或者该多项属性信息可以包括文件的部分的属性信息。
[0119]
一种可能的实施方式中,文件的标签可以为一个具体的数值,那么在配置得到文件多项属性的每一项属性的编号后,可以将该多项属性的编号相加得到该文件的标签。例如,假设文件的多项属性包括文件的存储路径、文件所属的用户的标识和文件的类型。那么,可以分别根据上述第一种情况、第二种情况和第三种情况获取到文件在存储路径、文件所属的用户的标识和文件的类型这三个方面的标签,然后将获取的三个标签相加得到该文件的最终的标签。例如,假设分别根据上述第一种情况、第二种情况和第三种情况获取到文
件在存储路径、文件所属的用户的标识和文件的类型这三个方面的标签为1001、20010和10020,那么,将该三个标签相加得到的标签即1001+20010+10020=31031为该文件的最终得到的标签。
[0120]
一种可能的实施方式中,文件的标签为一个规则的编码,那么在配置得到文件多项属性的每一项属性的编号后,可以将该多项属性的编号按顺序排列得到该文件的标签。例如,假设文件的多项属性包括文件的存储路径、文件所属的用户的标识和文件的类型。那么,可以分别根据上述第一种情况、第二种情况和第三种情况获取到文件在存储路径、文件所属的用户的标识和文件的类型这三个方面的标签,然后将获取的三个标签按顺序排列得到该文件的最终的标签。例如,假设分别根据上述第一种情况、第二种情况和第三种情况获取到文件在存储路径、文件所属的用户的标识和文件的类型这三个方面的标签为11、21和12,那么,将该三个标签按照存储路径、文件所属的用户的标识和文件的类型这个顺序排列得到的标签即112112为该文件的最终得到的标签。
[0121]
基于上述介绍的文件的标签配置方法,数据存储设备可以获取到上述待存储文件的标签,可以称为第一标签。
[0122]
s503、根据该第一标签将该待存储文件存储到第一存储区间;其中,该第一标签与该第一存储空间中的文件所携带的第二标签互相匹配。
[0123]
在具体实施例中,该第一存储区间可以包括一个或多个存储区间,存储区间可以是图1、图2或图4所示的硬盘中的存储区间。每一个存储区间的大小都可以是预先配置好的。一种可能的实施方式中,每个存储区间的大小可以是相同的,例如,每个存储区间的大小可以为4兆、8兆或者16兆等等。另一种可能的实施方式中,各个存储区间的大小也可以是不同的,例如有的存储区间的大小可以是4兆,有的存储区间的大小可以是8兆等等。具体的存储区间的大小可以根据实际需求配置,本方案对此不做限制。
[0124]
数据存储设备可以给各个存储区间编号,示例性地,可以按照地址的顺序来给各个存储区间连续编号。
[0125]
一种可能的实施方式中,上述数据存储设备获取到上述待存储文件的第一标签后,可以将该第一标签与各个存储区间中的数据的标签进行比较,若存在某个存储区间中的数据的标签与该第一标签匹配,且该某个存储区间中还有剩余的存储空间,则数据存储设备可以将该待存储文件存储到该某个存储区间。
[0126]
具体的,每一个存储区间可以对应一个工作线程用于执行写入任务,那么数据存储设备将该待存储文件存储到该某个存储区间具体可以是,该数据存储设备将该待存储文件添加到该某个存储区间的工作线程的队列中,通过该工作线程将该待存储文件存储到该某个存储区间中。
[0127]
如果存在某个存储区间中的数据的标签与该第一标签匹配,但是该某个存储区间中没有剩余的存储空间,则数据存储设备可以将该待存储文件存储到与该某个存储区间距离最近的还未存储有数据的存储空间中。
[0128]
具体的,数据存储设备可以创建一个新的工作线程用于将该待存储文件存储到与该某个存储区间距离最近的还未存储有数据的存储空间中。
[0129]
为了便于理解与该某个存储区间距离最近的还未存储有数据的存储空间,可以参见图8。图8示例性示出了部分存储区间,假设存储区间6为该某个存储区间,那么,存储区间
1、存储区间2、存储区间3、存储区间5、存储区间7、存储区间8、存储区间9和存储区间10为该存储区间6相邻的存储区间,是距离该存储区间6最近的存储区间,若这些存储区间中有未存储有数据的区间,那么数据存储设备可以从中选择一个或多个未存储有数据的区间用于存储上述待存储文件。若这些相邻的存储区间中均存储有数据,那么,数据存储设备可以在存储区间4、存储区间8或存储区间12中选择一个或多个未存储有数据的区间用于存储上述待存储文件。
[0130]
另一种可能的实施方式中,上述数据存储设备获取到上述待存储文件的第一标签后,可以将该第一标签与各个存储区间中的数据的标签进行比较,若各个存储区间中的数据的标签与该第一标签均不匹配,那么,数据存储设备可以将该待存储数据存储在未存储有数据的存储空间中。同样的,数据存储设备可以创建一个新的工作线程用于将该待存储文件存储到未存储有数据的存储空间中。
[0131]
一种可能的实施方式中,上述存储待存储文件的过程中的标签比较可以是在映射表中进行标签比较,该映射表用于记录文件名称、文件的属性信息、文件的标签以及文件的存储区间的映射关系。为了便于理解,可以参见表3。
[0132]
表3
[0133]
文件名称文件的属性信息文件的标签文件的存储区间文件1属性信息1标签1存储区间1文件2属性信息2标签2存储区间2文件3属性信息3标签3存储区间3
[0134]
表3示例性示出了映射表的内容。数据存储设备可以将上述待存储文件的第一标签与该映射表中的各个标签进行比较,若存在与该第一标签匹配的标签,则查看该与第一标签匹配的标签映射的存储区间是否还有剩余的存储空间,若有则将待存储文件存储到该存储区间中,若该存储区间中没有剩余的存储空间,则数据存储设备可以将该待存储文件存储到与该存储区间距离最近的还未存储有数据的存储空间中。
[0135]
若映射表中不存在与该第一标签匹配的标签,那么,数据存储设备可以将该待存储数据存储在未存储有数据的存储空间中。
[0136]
上述数据存储设备在将待存储文件存储到存储空间的过程中,可以将该待存储文件的信息添加到映射表中。
[0137]
在一种可能的实施方式中,数据存储设备可以预先配置好各个存储区间与标签范围的映射关系,即各个存储区间用于存储与其映射的标签范围对应的文件。例如,如果文件的标签为一个数值,那么假设存储区间1与标签值1至5000相映射,存储区间2与标签值5001至10000相映射,那么表明标签值为1至5000范围内的文件可以存储在存储区间1中,标签值为5001至10000范围内的文件可以存储在存储区间2中。又例如,如果文件的标签为一个编码,那么假设存储区间1与11、12、13、14和15这个范围内的标签相映射,存储区间2与21、22、23、24和25这个范围内的标签相映射,那么表明11、12、13、14和15这个范围内的标签对应的文件可以存储在存储区间1中,21、22、23、24和25这个范围内的标签对应的文件可以存储在存储区间2中。
[0138]
上述第一存储区间可以配置用于存储在第一范围内的标签的文件,那么上述第一标签在该第一范围内,具体的,该第一范围可以根据实际情况配置,本方案对此不作限制。
[0139]
在一种可能的实施方式中,数据存储设备在将待存储文件存储到存储空间中之前,可以将该待存储文件划分为多个数据块,每一个数据块的标签与该待存储文件的标签相同,以使的该多个数据块可以存储在相同或相邻的存储空间中。
[0140]
或者,该待存储文件包括多个子文件,那么该多个子文件的标签与该待存储文件的标签相同,以使的该多个子文件可以存储在相同或相邻的存储空间中。
[0141]
在本实施方式中,属于同一个文件的多个数据块的标签均相同,且该多个数据块的标签与其所属的文件的标签相同,使得该文件的多个数据块能够存储在相同或相邻的存储空间中,从而可以提高该文件的读取效率,另外,由于同一个文件的访问概率相同,因此在后续的读写过程中可以减少该存储空间的擦除次数。
[0142]
在一种可能的实施方式中,文件可以分为热数据和冷数据,示例性地,可以根据文件的类型区分热数据和冷数据,例如常修改的文件例如可编辑文档和画图文件等可以划分为热数据,不常修改的文件例如音频或视频可以划分为冷数据。同时,存储区间也可以划分为热区间和冷区间,其中热区间用于存储热数据,冷区间用于存储冷数据。
[0143]
数据存储设备获取到上述待存储文件及其属性信息后,可以根据属性信息例如文件的类型判断该待存储文件是热数据还是冷数据。如果是热数据,则在热区间中查找是否有存储区间中的数据的标签与该待存储文件的第一标签匹配。如果是冷数据,则在冷区间中查找是否有存储区间中的数据的标签与该待存储文件的第一标签匹配。
[0144]
在一种可能的实施方式中,数据存储设备记录了每个存储区间中的数据的擦除次数,并可以定期检查各个存储区间的擦除次数,若在预设时长内,某个热区间中的数据的擦除次数少于预设的擦除次数,那么可以认为该热区间中的数据为冷数据,数据存储设备可以将该热区间中的数据迁移到冷区间中进行存储。若在预设时长内,某个冷区间中的数据的擦除次数大于该预设的擦除次数,那么可以认为该冷区间中的数据为热数据,数据存储设备可以将该冷区间中的数据迁移到热区间中进行存储。
[0145]
在一种可能的实施方式中,存储器例如快闪存储器等可以包括多个闪存颗粒,该热区间和该冷区间根据预设空间配置规则配置在该多个闪存颗粒中,该预设空间配置规则使得该多个闪存颗粒的每一个闪存颗粒中该热区间和该冷区间的数量比例不超过第二阈值,该第二阈值可以是0.7至1.3之间的任意一个值。为了便于理解,举例说明。假设一个闪存颗粒中包括100的存储区间,且该第二阈值1.1,那么热区间/冷区间=1.1,且热区间+冷区间=100,最终计算得到热区间为52个,冷区间为48个。在本技术实施例中,可以使得每个闪存颗粒中的热区间和冷区间的数量均衡,从而可以使得闪存颗粒中的数据存储负载均衡,也保证了每个闪存颗粒的使用寿命的均衡,一定程度上延长了闪存颗粒的使用寿命。
[0146]
上述主要从数据存储设备的角度对本技术实施例提供的方案进行了介绍。可以理解的是,数据存储设备为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本技术能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0147]
本技术实施例可以根据上述方法示例对数据存储设备等进行功能模块的划分,例
如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本技术实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
[0148]
在采用对应各个功能划分各个功能模块的情况下,图9示出了上述方法实施例中所涉及的数据存储设备的逻辑结构示意图,数据存储设备900包括:
[0149]
第一获取单元901,用于获取待存储文件和该待存储文件的属性信息;
[0150]
第二获取单元902,用于根据该属性信息获取该待存储文件对应的第一标签;
[0151]
存储单元903,用于根据该第一标签将该待存储文件存储到第一存储区间其中,所述第一标签与所述第一存储空间中的文件所携带的第二标签互相匹配。
[0152]
在一种可能的实施方式中,上述待存储文件包括多个数据块,其中,上述多个数据块中的每个数据块对应第一标签,该存储单元903具体用于:根据上述第一标签将上述多个数据块存储到上述第一存储区间。
[0153]
在一种可能的实施方式中,该待存储文件的属性信息包括存储该待存储文件的逻辑地址的信息。
[0154]
在一种可能的实施方式中,该逻辑地址的信息包括该待存储文件在文件系统中的存储路径,其中,该第一标签和该存储路径中与该待存储文件在相同层级目录的文件的标签匹配。
[0155]
在一种可能的实施方式中,该待存储文件的属性信息包括该待存储文件所属的用户的标识,其中,该第一标签与携带该标识的文件的标签匹配。
[0156]
在一种可能的实施方式中,该待存储文件的属性信息包括多项子属性信息,该第二获取单元902具体用于:分别根据上述多项子属性信息的每一项子属性信息获取一个编号;根据获取的多个编号得到上述第一标签。
[0157]
在一种可能的实施方式中,该第一存储区间位于存储器中,该存储器包括热区间和冷区间,该热区间用于存储热数据,该冷区间用于存储冷数据。上述存储单元903具体用于:
[0158]
在上述待存储文件属于热数据的情况下,根据上述第一标签在上述热区间中查找存储上述待存储文件的存储区间;确定该热区间中的该第一存储区间用于存储该待存储文件;
[0159]
或者,在上述待存储文件属于冷数据的情况下,根据上述第一标签在上述冷区间中查找存储上述待存储文件的存储区间;确定该热区间中的该第一存储区间用于存储该待存储文件。
[0160]
在一种可能的实施方式中,上述第一存储区间用于存储标签的值在上述第一范围内的文件,上述存储单元903具体用于:确定上述第一标签的值位于上述第一范围内,将上述待存储文件存储到第一存储区间中。
[0161]
图9所示数据存储设备900中各个单元的具体操作以及有益效果可以参见上述各个实施方式中的描述,此处不再赘述。
[0162]
本技术实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行以实现前述图5及其可能的实施方式所述方法实
施例。
[0163]
本技术实施例还提供一种计算机程序产品,当该计算机程序产品被计算机读取并执行时,前述图5及其可能的实施方式所述方法实施例得以实现。
[0164]
本技术实施例还提供一种计算机程序,当该计算机程序在计算机上执行时,将会使所述计算机实现前述图5及其可能的实施方式所述方法实施例。
[0165]
综上所述,通过标签来标识文件,且属性信息匹配的文件其文件标签也匹配,从而可以使得文件的划分更集中以及更精准。将标签匹配的文件存储到相同的存储区间或相邻的存储区间,从而可以使得在后续的数据存储过程中避免写放大以提升存储器的性能,减少存储区间的擦除次数以延长使用寿命,另外由于文件存储在相同的存储区间或相邻的存储区间,因此还可以提高文件的读取效率。
[0166]
本技术中术语“第一”“第二”等字样用于对作用和功能基本相同的相同项或相似项进行区分,应理解,“第一”、“第二”、“第n”之间不具有逻辑或时序上的依赖关系,也不对数量和执行顺序进行限定。还应理解,尽管以下描述使用术语第一、第二等来描述各种元素,但这些元素不应受术语的限制。这些术语只是用于将一元素与另一元素区别分开。例如,在不脱离各种所述示例的范围的情况下,第一图像可以被称为第二图像,并且类似地,第二图像可以被称为第一图像。第一图像和第二图像都可以是图像,并且在某些情况下,可以是单独且不同的图像。
[0167]
还应理解,在本技术的各个实施例中,各个过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。
[0168]
还应理解,术语“包括”(也称“includes”、“including”、“comprises”和/或“comprising”)当在本说明书中使用时指定存在所陈述的特征、整数、步骤、操作、元素、和/或部件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元素、部件、和/或其分组。
[0169]
还应理解,说明书通篇中提到的“一个实施例”、“一实施例”、“一种可能的实现方式”意味着与实施例或实现方式有关的特定特征、结构或特性包括在本技术的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”、“一种可能的实现方式”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。
[0170]
最后应说明的是:以上各实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述各实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1