数据存储方法、装置、电子设备和计算机可读存储介质与流程

文档序号:32057829发布日期:2022-11-04 22:11阅读:61来源:国知局
数据存储方法、装置、电子设备和计算机可读存储介质与流程

1.本技术涉及数据存储技术领域,具体而言,涉及一种数据存储方法、装置、电子设备和计算机可读存储介质。


背景技术:

2.随着信息化时代的来临,数据量也处于爆炸式增长的趋势,各企业在数据存储上的投资也越来越大。为了能够在有限的存储设备上存储更多的数据,降低存储成本,各个分布式存储采用了存储压缩技术。但是将数据进行压缩存储,在接收数据访问请求时需要对数据进行解压缩,所需的处理资源变高,也可能导致存储访问性能变差。


技术实现要素:

3.本技术的目的在于提供一种数据存储方法、装置、电子设备和计算机可读存储介质,能够改善数据存储的空间占用大或数据访问性能的问题。
4.第一方面,本技术提供一种数据存储方法,包括:针对目标多副本数据,从所述目标多副本数据中确定出至少一个目标主副本数据和至少一个目标从副本数据;将所述目标主副本数据进行存储,所述主副本数据用于响应数据访问请求;将所述目标从副本数据进行压缩,得到压缩副本数据;将所述压缩副本数据进行存储。
5.在可选的实施方式中,所述将所述目标主副本数据进行存储,包括:将所述目标主副本数据存储在第一存储设备中;
6.所述将所述压缩副本数据进行存储,包括:将所述压缩副本数据存储在第二存储设备中。
7.在上述实施方式中,可以将主副本数据和压缩副本数据分别存储在不同的存储设备中,可以分散存储压力。另外,在任意一个存储设备异常时也能够通过其它存储设备的访问以获得数据。进一步地,将主副本数据和压缩副本数据分别存储在不同的存储设备中可以使各存储设备的负载能够相对均衡。
8.在可选的实施方式中,所述方法还包括:若所述第一存储设备出现异常,将所述第二存储设备中的压缩副本数据进行解压缩处理,得到第一原始副本数据,其中,所述第一原始副本数据作为新的主副本数据用于响应数据访问请求。
9.在上述实施方式中,可以通过将压缩副本数据解压缩,以接替原始的主副本数据的被访问的任务,可以在数据能够正常响应的基础上,还能够提高数据响应效率。
10.在可选的实施方式中,所述将所述压缩副本数据存储在第二存储设备中,包括:若所述目标多副本数据包括n项目标从副本数据,则将n项目标从副本数据存入n个第二存储设备中;
11.所述将所述第二存储设备中的压缩副本数据进行解压缩处理,得到第一原始副本数据,包括:根据n个第二存储设备的使用率,从n个第二存储设备中选出目标第二存储设备,其中,n为大于或等于2的正整数;将所述目标第二存储设备中的压缩副本数据进行解压
缩处理,得到第一原始副本数据。
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.图1为本技术实施例提供的存储集群的示意图;
52.图2为本技术实施例提供的电子设备的方框示意图;
53.图3为本技术实施例提供的数据存储方法的流程图;
54.图4为本技术实施例提供的数据存储方法的部分流程图;
55.图5为本技术实施例提供的数据存储方法的另一部分流程图;
56.图6为本技术实施例提供的数据存储方法的再一部分流程图;
57.图7为本技术实施例提供的数据存储装置的功能模块示意图。
具体实施方式
58.下面将结合本技术实施例中附图,对本技术实施例中的技术方案进行描述。
59.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本技术的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
60.本技术发明人研究了解到,在数据存储中,使用数据压缩之后,大部分数据的存储空间占用量可以下降一半以上,可以有效的节省存储成本。但是数据压缩过程需要消耗大量的cpu(central processing unit,中文称:中央处理器)资源,如果对所有数据都进行压缩,那么就会导致cpu资源不足。另外,对压缩数据访问时,需要对压缩数据进行解压缩,则可能导致存储访问性能变差。进一步地,如果一个热点数据被压缩存储,那么该热点数据被频繁访问时就需要频繁进行解压缩操作,会导致cpu资源消耗过高。
61.在上述的基础上,采用在线压缩和离线压缩相结合的方法,当主机向存储设备写入数据时,判断当前主机的负载是否超过所述负载阈值;若否,对可以数据进行在线压缩处理,并写入存储设备;若是,将数据标记为未压缩,直接写入存储设备;在未超过负载阈值时,对所述标记为未压缩的数据进行离线压缩处理。在上述实现方式中,使用离线压缩,在磁盘空闲的时候压缩,但是不能解决数据读取慢的问题。
62.基于此,本技术提供的一种数据存储方法、装置、电子设备、计算机可读存储介质和存储集群,可以降低存储压力的情况下,还能够保持数据的访问效率。
63.为便于对本实施例进行理解,首先对执行本技术实施例所公开的一种数据存储方法的运行环境进行详细介绍。
64.如图1所示,是本技术实施例提供的存储集群进行交互的示意图。该存储集群中可以包括多个数据服务器110。
65.各个数据服务器110可以用来存储不同数据对应的主副本数据或压缩副本数据。示例性地,一个数据服务器110可以用来存储一些数据的主副本数据,或者压缩副本数据,一个数据服务器110也可以用于主副本数据和压缩副本数据。其中,该主副本数据为原始未经过压缩的数据。
66.其中,每一项数据可以包括多个副本数据,其中,一个或多个副本数据可以被确定为主副本数据,该主副本数据不需要经过压缩;一个或多个副本数据可以被确定为从副本数据,该从副本数据需要经过压缩,压缩后进行存储。
67.该主副本数据是未经过压缩的数据,可以用于快速响应数据访问请求。该压缩副本数据所需占用存储空间较小,可以节省存储空间。
68.可选地,该存储集群中还可以包括主控服务器120,还主控服务器120可以从各数据服务器110中获取主副本数据,以响应客户端的数据访问请求。
69.如图2所示,是电子设备的方框示意图。电子设备200可以包括存储器211、处理器213。本领域普通技术人员可以理解,图2所示的结构仅为示意,其并不对电子设备200的结构造成限定。例如,电子设备200还可包括比图2中所示更多或者更少的组件,或者具有与图2所示不同的配置。
70.上述的存储器211、处理器213之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。上述的处理器213用于执行存储器中存储的可执行模块。
71.其中,存储器211可以是,但不限于,随机存取存储器(random access memory,简称ram),只读存储器(read only memory,简称rom),可编程只读存储器(programmable read-only memory,简称prom),可擦除只读存储器(erasable programmable read-only memory,简称eprom),电可擦除只读存储器(electric erasable programmable read-only memory,简称eeprom)等。其中,存储器211用于存储程序,所述处理器213在接收到执行指令后,执行所述程序,本技术实施例任一实施例揭示的过程定义的电子设备200所执行的方法可以应用于处理器213中,或者由处理器213实现。
72.本实施例中,该存储器211可以包括多个存储磁盘,每个存储磁盘可以用于存储主副本数据或压缩副本数据。当然,一个存储磁盘也可以用于主副本数据和压缩副本数据。
73.上述的处理器213可能是一种集成电路芯片,具有信号的处理能力。上述的处理器213可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、网络处理器(network processor,简称np)等;还可以是数字信号处理器(digital signal processor,简称dsp)、专用集成电路(application specific integrated circuit,简称asic)、现场可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
74.本实施例中的电子设备200可以用于执行本技术实施例提供的各个方法中的各个步骤。下面通过几个实施例详细描述数据存储方法的实现过程。
75.请参阅图3,是本技术实施例提供的数据存储方法的流程图。下面将对图3所示的具体流程进行详细阐述。
76.步骤310,针对目标多副本数据,从该目标多副本数据中确定出至少一个目标主副本数据和至少一个目标从副本数据。
77.目标多副本数据中有多个目标副本数据,各个目标副本数据为相同的数据。可以从该多个目标副本数据中选出一个或多个目标副本数据作为目标主副本数据,其余的目标副本数据作为从副本数据。
78.可选地,一个目标多副本数据在首次需要被存储时,可以仅选出一个副本数据作为主副本数据,其余副本数据作为从副本数据。
79.本实施例中,为了避免数据被误删,或者一些设备原因损失掉,通常在存储数据时会存储数据的多个副本数据,每个副本数据为相同的数据。
80.步骤320,将该目标主副本数据进行存储。
81.该主副本数据不需要被压缩,可以用于响应数据访问请求。该主要副本数据由于没有被压缩,因此可以相对快速地响应数据访问请求。
82.步骤330,将该目标从副本数据进行压缩,得到压缩副本数据。
83.本实施例中,若该目标多副本数据中包括多个目标从副本数据,则可以采用异步处理方式,异步压缩多个目标从副本数据。
84.步骤340,将该压缩副本数据进行存储。
85.本实施例中,该主副本数据与压缩副本数据可以被存储在不同存储位置,以分散数据资源的位置。
86.本实施例中,一数据对应的主副本数据与从副本数据相同。压缩副本数据解压缩后得到的数据也与主副本数据相同。
87.通过上述的实现方式,由于将部分副本数据进行了压缩存储,还可以对部分数据按照原始数据存储,可以满足数据访问的需求。
88.为了避免由存储设备出现异常,导致存储在该存储设备中的数据失效,避免同一数据的所有副本数据均失效,可以将主副本数据存储在不同存储设备中,以避免同一数据的所有副本数据在一时间均失效,提高数据的有效性。基于此,可以将同一数据的不同副本数据存放在不同的存储设备中,因此,上述的步骤320可以包括:将该目标主副本数据存储在第一存储设备中;
89.上述的步骤340可以包括:将该压缩副本数据存储在第二存储设备中。
90.其中,上述的第一存储设备与第二存储设备可以是不同的存储设备。
91.当然,如果目标多副本数据中确定了多个主副本数据,则多个主副本数据可以分别存在多个第一存储设备。如果目标多副本数据中确定了多个从副本数据,则多个从副本数据对应的多个压缩副本数据可以分别存在多个第二存储设备。
92.在一种情况下,如果一存储设备出现异常时,则可能会导致该存储设备下的主副本数据不能够被访问,为了保持正常访问可以提供新的主副本数据以响应数据访问请求。基于此,数据存储方法还可以包括:若该第一存储设备出现异常,将该第二存储设备中的压缩副本数据进行解压缩处理,得到第一原始副本数据,其中,该第一原始副本数据作为新的主副本数据用于响应数据访问请求。
93.示例性地,该第一存储设备出现的异常可以是存储设备故障,也可以是主机掉电等异常。该异常可能会导致该第一存储设备不能够接收数据访问请求以及响应数据访问请求,则可以将第二存储设备中的压缩副本数据进行解压缩,以响应数据访问请求。
94.本实施例中,在该第一存储设备恢复正常后,可以将第一存储设备中的目标主副本数据作为从副本数据,进行压缩处理,然后将压缩后的副本数据存放在该第一存储设备中。
95.如果第一存储设备的目标主副本数据存在多个从副本数据,则可以从多个从副本
数据中选出一个从副本数据。上述的步骤340可以包括:若该目标多副本数据包括n项目标从副本数据,则将n项目标从副本数据存入n个第二存储设备中。
96.上述的将该第二存储设备中的压缩副本数据进行解压缩处理,得到第一原始副本数据可以包括:根据n个第二存储设备的使用率,从n个第二存储设备中选出目标第二存储设备;将该目标第二存储设备中的压缩副本数据进行解压缩处理,得到第一原始副本数据。
97.其中,n为大于或等于2的正整数。
98.可选地,可以从n个第二存储设备中选出使用率最小的第二存储设备,将该第二存储设备目标主副本数据对应的压缩副本数据进行解压缩,得到第一原始副本数据。
99.可选地,也可以根据n个第二存储设备的使用率以及n个第二存储设备的存储空间占用量,从n个第二存储设备中选出目标第二存储设备。
100.示例性地,可以先选出使用率小于使用阈值的部分第二存储设备,然后再从该部分第二存储设备中选出存储空间占用量最小的第二存储设备作为目标第二存储设备。
101.该使用阈值可以是使用率为60%、55%、50%等值。当然,根据实际场景也可以选择不同的使用阈值。
102.示例性地,可以先选出存储空间占用量小于空间阈值的部分第二存储设备,然后再从该部分第二存储设备中选出使用率最小的第二存储设备作为目标第二存储设备。
103.存储空间占用量小于空间阈值可以是空间占用量为55%、50%、45%等值。当然,根据实际场景也可以选择不同的空间阈值。
104.通过上述方式可以在存储设备存在异常时,可以及时确定出替补主副本数据,以保持能够及时响应数据访问请求。
105.随着存储设备的使用,可能会导致各个存储设备的使用率会存在动态变化,为了平衡各存储设备的压力可以动态调整用来响应数据访问请求的主副本数据的数量。基于此研究,如图4所示,本技术实施例提供的数据存储方法还可以包括以下步骤410至步骤440。
106.步骤410,按照设定周期获取各个存储设备的使用率。
107.其中,每个该存储设备中可以存储多项不同数据对应的主副本数据。
108.该存储设备的使用率可以表示该存储设备处理i/o的时间百分比。
109.上述的设定周期可以是每隔指定时长。该指定时长可以是五分钟、十分钟、十五分钟等时长。
110.上述的设定周期也可以是在每小时的指定时间节点,例如,每小时的第五分钟、第十五分钟、第二十分钟、第三十分钟、第五十分钟等时间节点。上述的设定周期也可以是在每天的指定时间节点,例如,每天的整点时间节点。
111.步骤420,若第一目标存储设备的使用率大于第一阈值时,从该第一目标存储设备选出第一比例的主副本数据。
112.该第一目标存储设备中可以存放有多项数据对应的主副本数据。该第一目标存储设备也可以还存放有多项数据对应的压缩副本数据。
113.该第一阈值可以设置为一个较大的值,例如,该第一阈值可以是87%、85%、83%、80%、78%、76%等值。
114.该第一比例可以是按需设置的一个值,例如,该第一比例可以是10%、15%、20%等值。
115.由于该第一目标存储设备中存在一些热度较高的数据,导致该热度较高的数据频繁被访问,导致该第一目标存储设备的使用率偏高。则可以通过分散热度较高的数据的访问,以达到降低该第一目标存储设备的使用率的目的。可选地,根据该第一目标存储设备中的各项数据中的热度,筛选出热度高的第一比例的主副本数据。
116.其中被访问次数越多,可表示一项主副本数据的热度越高。可以通过对第一目标存储设备中的主副本数据被访问的次数从高到低进行排序,然后获取排序排在前第一比例的主副本数据。
117.步骤430,从各存储设备中筛选该第一比例的主副本数据中的各项主副本数据对应的压缩副本数据。
118.示例性地,该第一比例的主副本数据可以包括三项数据,分别为:第一主副本数据a1、第二主副本数据b1、第三主副本数据c1。
119.下面以第一主副本数据a1为例,描述第一比例的主副本数据中的主副本数据对应的压缩副本数据的确定方式。
120.可选地,若该第一主副本数据a1只有一项压缩副本数据,则可以不用筛选,直接将该第一主副本数据a1对应的压缩副本数据a2进行解压缩,以将压缩副本数据a2还原成非压缩状态,也形成主副本数据,用于响应数据访问请求。
121.若该第一主副本数据a1包含多项压缩副本数据,可以从多项压缩副本数据中确定出一项压缩副本数据a2,将压缩副本数据a2进行解压缩,以将压缩副本数据a2还原成非压缩状态,也形成主副本数据,用于响应数据访问请求。
122.可选地,可以随机地从各存储有第一主副本数据a1对应的压缩副本数据的各存储设备中选出压缩副本数据a2。
123.可选地,获取存储该第一主副本数据a1对应的压缩副本数据的存储设备的使用率;筛选出使用率小于第一目标值的存储设备;从该使用率小于第一目标值的存储设备中,确定出该第一主副本数据a1对应的压缩副本数据。
124.该第一目标值可以是60%、50%、40%等值,当然,该第一目标值也可以具体不同的需求设置。
125.示例性地,若筛选出多个使用率小于第一目标值的存储设备,则可以随机地从该使用率小于第一目标值的存储设备中,确定出该第一主副本数据a1对应的压缩副本数据。
126.可选地,还可以将存储该第一主副本数据a1对应的压缩副本数据的存储设备的存储空间剩余量作为筛选基础。
127.示例性地,获取存储该第一主副本数据a1对应的压缩副本数据的存储设备的使用率和存储空间剩余量;筛选出使用率小于第一目标值的存储设备,且存储空间剩余量大于设置阈值;从该使用率小于第一目标值的存储设备且存储空间剩余量大于设置阈值中,确定出该第一主副本数据a1对应的压缩副本数据。
128.该设置阈值可以实际情况动态设置,本技术实施例不以该设定阈值的取值为限,例如,该存储设备的总存储量为2t,则该设置阈值可以是512g;再例如,该存储设备的总存储量为512g,则该设置阈值可以是100g。
129.示例性地,若筛选出多个使用率小于第一目标值且存储空间剩余量大于设置阈值的存储设备,则可以随机地从该使用率小于第一目标值且存储空间剩余量大于设置阈值的
存储设备中,确定出该第一主副本数据a1对应的压缩副本数据。
130.其中,第二主副本数据b1和第三主副本数据c1对应的压缩副本数据的确定方式可以与第一主副本数据a1对应的压缩副本数据的确定方式相似,在此不再赘述。
131.步骤440,将该第一比例的主副本数据中的各项主副本数据对应的压缩副本数据进行解除压缩,以得到第二原始副本数据。
132.该第二原始副本数据用于作为该第一比例的主副本数据对应的新的主副本数据,用于响应数据访问请求。
133.本实施例中,该第一比例的主副本数据数量为m时,则可以确定出m项第二原始副本数据,该m项第二原始副本数据可以用来分散第一目标存储设备的访问压力。
134.该第一比例的主副本数据中的各项主副本数据可以包括多项主副本数据,多项主副本数据的访问请求被分散到其它存储设备中的第二原始副本数据,从而以降低该第一目标存储设备的使用率。
135.为了缓解不同程序的压力,也可以在存储设备的使用率为不同值时,可以分散不用数量的主副本数据。因此,如图5所示,在步骤410之后还可以包括以下步骤。
136.步骤450,若第二目标存储设备的使用率大于第二阈值且小于第一阈值时,从该第一目标存储设备选出第二比例的主副本数据。
137.该第二阈值可以是比第一阈值小的一个值,例如,该第二阈值可以是60%、50%、65%等值。
138.其中,该第二比例小于该第一比例。例如,该第一比例为10%时,该第二比例可以为5%、4%、6%等值。
139.步骤460,从各存储设备中筛选该第二比例的主副本数据中的各项主副本数据对应的压缩副本数据。
140.可选地,根据该第二目标存储设备中的各项数据中的热度,筛选出热度高的第二比例的主副本数据。
141.示例性地,第二比例的主副本数据可以包括两项数据,分别为:第四主副本数据c1、第五主副本数据d1。
142.其中,第四主副本数据c1和第五主副本数据d1对应的压缩副本数据的确定方式可以与上述步骤370中第一主副本数据a1对应的压缩副本数据的确定方式相似,在此不再赘述。
143.步骤470,将该第二比例的主副本数据中的各项主副本数据对应的压缩副本数据进行解除压缩,得到第三原始副本数据。
144.第三原始副本数据用于作为该第一比例的主副本数据的新的主副本数据,用于响应数据访问请求。
145.该第二比例的主副本数据中的各项主副本数据可以包括多项主副本数据,多项主副本数据的访问请求被分散到其它存储设备中的第二原始副本数据,从而以降低该第一目标存储设备的使用率。
146.进一步地,若任意一个存储设备的使用率比第二阈值还小,即使有个别对象访问热度很高,但是可能其他数据却被访问的比较少,因此该存储设备还可以不受影响地提供数据访问服务,因此,该存储设备上的数据可以都认为不是热点数据,无需增加主副本数
据,无需分散数据访问请求。
147.通过上述的方式可以在存储设备使用率高的情况下,通过新增主副本数据的方式可以降低各存储设备的使用率,降低存储设备的负担。另一方面,如果在各数据由高热度数据转变为冷数据,也可以动态地降低数据对应的主副本数据的数量,可以在满足数据访问请求的情况下,降低存储设备的存储压力。如图6所示,数据存储方法还包括步骤510和步骤520。
148.步骤510,若各存储设备中的目标数据被访问的热度低于指定标准,且目标数据被访问的热度低于指定标准的持续时长大于指定时长,从各存储设备中筛选出该目标数据对应的至少一项目的主副本数据。
149.示例性地,目标数据被访问的热度低于指定标准,且目标数据被访问的热度低于指定标准的持续时长大于指定时长,则可以表示该目标数据为冷数据,被访问的频率较低,则可以减少该目标数据对应的主副本数据,降低该目标数据的副本数据的存储所需占用的存储空间。
150.本实施例中,该目标数据对应有多项主副本数据时,且满足被访问的热度低于指定标准以及目标数据被访问的热度低于指定标准的持续时长大于指定时长时,再从各存储设备中筛选出该目标数据对应的至少一项目的主副本数据。
151.可选地,每次仅选出一项目的主副本数据进行压缩。例如,目标数据对应有四个主副本数据,则可以从四个主副本数据中选出一个主副本数据进行压缩存储,从而可以降低该目标数据整体上对存储空间的需求。
152.该指定标准可以是每分钟被访问的次数、每个设定周期被访问的次数。
153.该指定标准也可以是所有数据的热度从高至低排名在后面指定位置。例如,该指定标准可以是所有数据的热度从高至低排名位次在50%处。
154.示例性地,该热度从高至低排名可以按照数据被访问的次数排名。例如,一项数据包括三项主副本数据d1、主副本数据d2、主副本数据d3,其中,在一个设定周期内主副本数据d1被访问的次数为x1、主副本数据d2被访问的次数为x2、主副本数据d3被访问的次数为x3,则该数据被访问的次数为x1+x2+x3。例如,一项数据包括一项主副本数据f1,其中,在一个设定周期内主副本数据f1被访问的次数为y1,则该数据被访问的次数为y1。
155.示例性地,上述的指定时长可以是一定数量的周期,例如,上述的指定时长可以是五个设定周期对应的时长,一个周期时长为十分钟时,则该指定时长可以为五十分钟;再例如,上述的指定时长可以是六个设定周期对应的时长,一个周期时长为十分钟时,则该指定时长可以为六十分钟。
156.本实施例中,若一数据被访问的热度低于指定标准,且目标数据被访问的热度低于指定标准的持续时长大于指定时长,但是该数据仅包含一项主副本数据,即使该数据已经被确定为冷数据,也可以不对该冷数据进行压缩处理。
157.步骤520,将该目的主副本数据进行压缩存储。
158.示例性地,该目的主副本数据被压缩后,可以以压缩状态进行存储。
159.可选地,可以获取存储该目标数据相同的主副本数据的存储设备的使用率;筛选出使用率大于第二目标值的存储设备;从该使用率大于第二目标值的存储设备中,确定出该目标数据对应的主副本数据。
160.可选地,可以获取存储该目标数据相同的主副本数据的存储设备的使用率和存储空间剩余量;筛选出使用率大于第二目标值的存储设备,或者存储空间剩余量小于空间标准;从该使用率大于第二目标值的存储设备或存储空间剩余量小于空间标准中,确定出该目标数据对应的主副本数据。
161.示例性地,存储空间剩余量小于空间标准可以表示该存储设备的存储空间剩余量存在不足,不能再存入新的数据。
162.该空间标准可以按需设置,例如,该空间标准可以是30g、50g等。
163.下面通过一些实例来分析本技术实施例提供的数据存储方法:
164.在一个存储集群中,该存储集群的存储的访问量不大,可以每项数据提供一个主副本数据来响应数据访问请求服务,其他副本数据用于数据冗余,其他副本数据作为从副本数据进行压缩存储,从而可以避免单点故障和减少数据丢失的风险。
165.从副本数据只有在主副本数据出现故障的情况下,可以将压缩的从副本数据进行解压,以作为主副本数据响应数据访问请求服务。
166.在一个实例中,一个三副本数据,假如一个副本数据是100g,副本数据压缩后的数据是50g,在没开启压缩之前,在存储集群中所占用的存储空间是300g。在开启从副本数据压缩之后,在存储集群中所占用的存储空间是200g,该三副本数据所占用的存储空间可以下降33.3%。
167.在一些访问量大的数据中,其中的热点数据需要多个副本数据来提供数据访问请求服务才能避免出现性能瓶颈。对于这些数据,可以使用动态调整主副本数据的数量,主副本数据的数量可以根据访问热度动态调整。例如,一个三副本系统中的各项数据,在一种情况,可能有10%的超热数据使用三个主副本数据,20%的热数据使用两个主副本数据,其他70%的数据可以使用单个主副本数据。假如该三副本系统中的一个副本是100g,数据压缩后的存储空间缩小了50%,那么存储集群的占用空间为100*10%*3+100*20%*2+100*20%*50%*1+100*70%*1+100*70%*50%*2=230g,比没开启压缩之前300g,也下降约23%。
168.通过本技术实施例中的方法,可以在不影响正常业务读写情况下压缩个别副本数据,保持部分副本数据为原始状态,以保持数据访问需求;进一步地,可以根据访问热度动态调整压缩的副本数据的数量,避免热点数据访问性能受影响,也能够降低存储空间的。
169.基于同一申请构思,本技术实施例中还提供了与数据存储方法对应的数据存储装置,由于本技术实施例中的装置解决问题的原理与前述的数据存储方法实施例相似,因此本实施例中的装置的实施可以参见上述方法的实施例中的描述,重复之处不再赘述。
170.请参阅图7,是本技术实施例提供的数据存储装置的功能模块示意图。本实施例中的数据存储装置中的各个模块用于执行上述方法实施例中的各个步骤。数据存储装置包括:确定模块610、第一存储模块620、第一压缩模块630以及第二存储模块640;其中各个模块的内容如下所示:
171.确定模块610,用于针对目标多副本数据,从该目标多副本数据中确定出至少一个目标主副本数据和至少一个目标从副本数据;
172.第一存储模块620,用于将该目标主副本数据进行存储,该主副本数据用于响应数据访问请求;
173.第一压缩模块630,用于将该目标从副本数据进行压缩,得到压缩副本数据;
174.第二存储模块640,用于将该压缩副本数据进行存储。
175.一种可能的实施方式中,第一存储模块620,用于将该目标主副本数据存储在第一存储设备中;
176.第二存储模块640,用于将该压缩副本数据存储在第二存储设备中。
177.一种可能的实施方式中,数据存储装置还可以包括:替换模块,用于若该第一存储设备出现异常,将该第二存储设备中的压缩副本数据进行解压缩处理,得到第一原始副本数据,其中,该第一原始副本数据作为新的主副本数据用于响应数据访问请求。
178.一种可能的实施方式中,第二存储模块640,用于若该目标多副本数据包括n项目标从副本数据,则将n项目标从副本数据存入n个第二存储设备中;
179.替换模块,用于根据n个第二存储设备的使用率,从n个第二存储设备中选出目标第二存储设备,其中,n为大于或等于2的正整数;将该目标第二存储设备中的压缩副本数据进行解压缩处理,得到第一原始副本数据。
180.一种可能的实施方式中,数据存储装置还可以包括:
181.第一获取模块,用于按照设定周期获取各个存储设备的使用率,其中,每个该存储设备中可以存储多项不同数据对应的主副本数据;
182.第一筛选模块,用于若第一目标存储设备的使用率大于第一阈值时,从该第一目标存储设备选出第一比例的主副本数据;
183.第二筛选模块,用于从各存储设备中筛选该第一比例的主副本数据中的各项主副本数据对应的压缩副本数据;
184.第一解压缩模块,用于将该第一比例的主副本数据中的各项主副本数据对应的压缩副本数据进行解除压缩,以得到第二原始副本数据,该第二原始副本数据用于作为该第一比例的主副本数据对应的新的主副本数据,用于响应数据访问请求。
185.一种可能的实施方式中,第一筛选模块,用于根据该第一目标存储设备中的各项数据中的热度,筛选出热度高的第一比例的主副本数据。
186.一种可能的实施方式中,第二筛选模块,用于:
187.针对该第一比例的主副本数据中的任意一项第一主副本数据,获取存储该第一主副本数据对应的压缩副本数据的存储设备的使用率;
188.筛选出使用率小于第一目标值的存储设备;
189.从该使用率小于第一目标值的存储设备中,确定出该第一主副本数据对应的压缩副本数据。
190.一种可能的实施方式中,数据存储装置还可以包括:
191.第三筛选模块,用于若第二目标存储设备的使用率大于第二阈值且小于第一阈值时,从该第一目标存储设备选出第二比例的主副本数据,该第二比例小于该第一比例;
192.第四筛选模块,用于从各存储设备中筛选该第二比例的主副本数据中的各项主副本数据对应的压缩副本数据;
193.第二解压缩模块,用于将该第二比例的主副本数据中的各项主副本数据对应的压缩副本数据进行解除压缩,得到第三原始副本数据,该第三原始副本数据用于作为该第一比例的主副本数据的新的主副本数据,用于响应数据访问请求。
194.一种可能的实施方式中,第三筛选模块,用于根据该第二目标存储设备中的各项数据中的热度,筛选出热度高的第二比例的主副本数据。
195.一种可能的实施方式中,数据存储装置还可以包括:
196.第五筛选模块,用于若各存储设备中的目标数据被访问的热度低于指定标准,且目标数据被访问的热度低于指定标准的持续时长大于指定时长,从各存储设备中筛选出该目标数据对应的至少一项目的主副本数据;
197.第二压缩模块,用于将该目的主副本数据进行压缩存储。
198.一种可能的实施方式中,第五筛选模块,用于获取存储该目标数据相同的主副本数据的存储设备的使用率;筛选出使用率大于第二目标值的存储设备;从该使用率大于第二目标值的存储设备中,确定出该目标数据对应的主副本数据。
199.此外,本技术实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的数据存储方法的步骤。
200.本技术实施例所提供的数据存储方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行上述方法实施例中所述的数据存储方法的步骤,具体可参见上述方法实施例,在此不再赘述。
201.在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本技术的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
202.另外,在本技术各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
203.所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括
没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
204.以上所述仅为本技术的优选实施例而已,并不用于限制本技术,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
205.以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1