基于多维数据相似性的混合存储系统及数据管理方法

文档序号:6547696阅读:159来源:国知局
基于多维数据相似性的混合存储系统及数据管理方法
【专利摘要】本发明涉及基于多维数据相似性的混合存储系统及数据管理方法,其公布的混合存储系统由上层内存单元(3)、中层缓存单元(2)、下层存储单元(1)和控制单元(4)构成,上层内存单元(3)用于存放系统数据和各个存储层中经常被访问的数据索引表,中层缓存单元(2)用于存放部分经常被访问的数据,下层存储单元(1)用于存放全部数据集;控制单元(4)通过I/O端口连接上层内存单元(3)、中层缓存单元(2)和下层存储单元(1),构成多层存储架构的混合存储系统。本发明还公布该混合存储系统的数据管理方法,本发明不但可提高被访问的速度,使访问时能快速的搜索查找相应的数据,减低数据访问延迟,还可提高数据处理效率,提高请求吞吐量。
【专利说明】基于多维数据相似性的混合存储系统及数据管理方法
[0001] 所属领域
[0002] 本发明涉及一种基于多维数据相似性的混合存储系统及数据管理方法,一种面向 多用户即时数据查询的混合存储系统内容缓存方案。属于分布式计算和计算机存储技术领 域。

【背景技术】
[0003] 现有技术中,计算机系统的存储结构一般包括内存单元、硬盘存储单元二种存储 结构,有些计算机系统的存储结构为内存存储和硬盘存储单元存储的组合式存储层结构, 例如:普通HDD存储硬盘作为一级数据存储层次,与内存缓存构成一个两层数据存储架构, 该存储结构虽然可以利用工作流的特征,将数据读取密集型的工作流请求的数据存储在存 储硬盘中,能有效地平衡不同工作流的性能,使存储系统的性能得以提高。但该存储结构 没有SSD存储结构,其处理数据的能力不强、速度不高,不能应用于数据量大的混合存储系 统。
[0004] 数据的多维相似性,包括时间相似性和用户相似性。数据相似性定义了在混合存 储系统中缓存层存储的数据相关性。时间相似性是指任意两个数据记录在时间维度的相关 性,当处理用户查询时,相对于两个时间间隔很长的数据记录,一个用户更倾向于查询时间 相近的数据记录;用户相似性是指任意两个区域相关性,如:智能电网用户中,智能电网的 组网优化、电能调度、电价调控等决策通常基于各个区域的用户的电能使用情况,因此,通 常需要处理一类查询同一个区域的用户的电能使用信息的请求。
[0005] 为了提高数据查询处理速度,多层缓存架构通常是存储系统的最佳选择,但是缓 存架构的不同层次之间存在性能差异,比如CPU缓存、内存缓存和操作系统缓存等,目前的 缓存管理技术,通常包括如下几种方案:
[0006] 方案1 :独立管理不同层次的数据,存在如下缺点:没有考虑与应用密切相关的数 据时间相关性和用户相关性,在处理智能电网数据查询时实用性不强。
[0007] 方案2 :采用识别存储系统中关键数据块的方法,关键数据块包括导致过长访问 延时的数据块以及文件系统元数据,通过将关键数据块缓存在SSD中以提高存储系统整体 的数据访问性能,同时从SSD高效的数据写性能出发,将SSD作为回写缓存有效地提高了数 据写请求的性能。存在缺点是:该方案仅能有效地识别出关键数据块的情况下,给出混合存 储系统中的数据管理方案,但是在实际应用中,通过I/O访问历史记录来确定关键数据块 涉及到复杂的运算,不适用于延时要求高的实时查询处理服务。
[0008] 方案3 :从数据块访问的长尾分布性质出发来提高SSD存储空间的利用率,从而有 效地改善了存储系统的性能,通过动态定义热门数据块集合,给出了 SSD数据置换算法的 设计方法,同时为了降低在每个服务器部署SSD带来的代价,提出了服务器间共享SSD缓存 的方案,利用离散筛选方法和连续筛选方法有效地解决了如何确定在共享SSD缓存空间中 存储的热门数据块的问题。存在缺点是:该方案给出了在数据块访问模式特征给定的情形 下,SSD数据缓存管理的方案,长尾分布性质并不适用于所有的应用和服务,利用已知的数 据访问模式来设计缓存管理方案在实际系统实现中存在较大局限性,因为数据访问模式具 有时间不稳定性。
[0009] 方案4 :将高性能闪存设备加入到与普通HDD存储硬盘同一数据存储层次,与内存 MM缓存层构成一个两层数据存储架构,利用工作流的特征,将数据读取密集型的工作流请 求的数据存储在闪存中,将数据写入密集型的工作流,将要写入的数据写入到普通存储硬 盘中,通过显示分配不同存储设备的职责,有效地平衡不同工作流的性能,从而提高整个 存储系统的性能。存在缺点是:该方案仅提出了同一层数据存储层的不同设备之间的数据 存储管理,并没有给出不同存储层之间的数据管理方案,没有涉及到数据缓存方案的设计, 同时该方案也只是将工作流类型进行简单的读取和写入分类,并没有针对工作流对数据访 问或写入的特征对数据管理进行优化,存储性能依赖于应用类型和特征。


【发明内容】

[0010] 本发明的目的之一,是为了提供一种基于多维数据相似性的混合存储系统。
[0011] 本发明的目的之二,是为了提供一种基于多维数据相似性的混合存储系统的数据 管理方法。
[0012] 本发明的目的之一可以通过采取如下技术方案达到:
[0013] 基于多维数据相似性的混合存储系统,其结构特点在于:由上层内存单元、中层缓 存单元、下层存储单元和控制单元构成,上层内存单元用于存放系统数据和各个存储层中 经常被访问的数据索引表,中层缓存单元用于存放部分经常被访问的数据,下层存储单元 用于存放全部数据集;控制单元通过I/O端口连接上层内存单元、中层缓存单元和下层存 储单元,构成多层存储架构的混合存储系统。
[0014] 本发明的目的还可以通过采取如下技术方案达到:
[0015] 进一步地,上层内存单元由主存储器MM构成,中层缓存单元由固态硬盘SSD构成, 下层存储单元由机械硬盘HDD构成。
[0016] 本发明的目的之二可以通过采取如下技术方案达到:
[0017] 基于多维数据相似性的混合存储系统的数据管理方法,其特征在于:
[0018] 1)设置混合存储系统,所述混合存储系统由上层内存单元、中层缓存单元、下层存 储单元和控制单元构成,上层内存单元用于存放系统数据和各个存储层中经常被访问的数 据索引表,中层缓存单元用于存放部分经常被访问的数据,下层存储单元用于存放全部数 据集;控制单元通过I/O端口连接上层内存单元、中层缓存单元和下层存储单元;
[0019] 2)结合智能电网应用的数据处理特点,基于数据相似性,设计数据预取算法,在后 台运行时将用户将要访问的数据放置到中层缓存单元中,当中层缓存单元空间被占满了之 后,根据数据相似性设计了缓存置换算法,选择出那些在未来最不可能被用户访问的数据, 将其清除出中层缓存单元,为未来更可能被用户访问的数据腾出缓存空间。
[0020] 3)查询数据,每当一个请求到达,系统首先解析请求并根据请求的内容先查询上 层内存单元的数据索引表,看上层内存单元中是否有所需要的数据,如果有则返回数据,否 则接着查找中层缓存单元;查询中层缓存单元的数据索引表,看中层缓存单元中是否有所 需要的数据,如果有则返回数据,否则接着查找下层存储单元;查询下层存储单元的数据索 引表,因为层存储单元含有全部数据集,因此根据索引找到数据返回给上层应用;
[0021] 4)储存数据,当上层应用有数据写入/更新请求时,系统首先将数据写入上层内 存单元缓存,每隔一段时间,系统自动将新写入的数据或上层内存单元缓存中被更新但还 没写入硬盘的数据即脏数据写入/更新到下层存储单元中去,同时为了保持整个系统的 数据一致性,在完成对下层存储单元的数据更新之后,系统还会检查中层存储单元的数据, 如果找到了更新数据的副本,系统根据脏数据更新中层存储单元上的数据副本。
[0022] 本发明的目的之二还可以通过采取如下技术方案达到:
[0023] 进一步地,第2)点所述数据预取算法、缓存置换算法,是基于数据相似性判定算 法,体现在数据记录的时间属性和用户属性两个维度上,具体描述如下:
[0024] 1)时间相似性,是指智能电网应用处理某个特定用户的请求的情况,相比于时间 属性值相差很大的数据,用户更倾向于查询时间属性值相近的数据记录,如用户查询了今 天的电表数据,那么他很可能查询前几天的电表数据,而不倾向于查询半年前或一年前的 电表数据;
[0025] 2)用户相似性,是指智能电网应用如电能调度、电价调控等处理数据的情况,因为 这些应用都是基于各个区域的用户使用电能情况而进行决策,因此处理的数据的用户属性 具有相似性,如处理同一个小区的用户电表数据,用户ID值相近;
[0026] 3)定义数据相关性的时间和ID两个维度,相关性定义如下:
[0027] 对于任意一组数据屯d2, d3,......,cU dk,dk+1,......,数据相关性表示为:
[0028] Ricl^d a' J * N + D(dj,dJ)*· β' 1 *N
[0029] 其中RWi,dj)为两条数据记录的相似性,GA dj)表示两条数据的用户属性的相 似性,dp表示两条数据的时间属性的相似性,如果用户属性相似性越高,6(屯,dp值 就越大;如果时间属性相关性越高,Dd dp值就越大,α和β为小于1的常量,N为常量, w是个权重值,用于调整用户属性相似性和时间属性相似性所占比重。
[0030] 进一步地,所述数据预取算法考虑了数据之间的相似性,通过预取一系列相关数 据来预期提高请求的命中率,具体包括以下几个过程:
[0031] 1)根据上一个时间槽的缓存利用率来计算预取的数据记录数量;
[0032] 2)从下层存储单元中找到符合客户端请求的数据;
[0033] 3)通过时间和用户两个维度来判断数据的相似性;
[0034] 4)系统将相似性高的一系列数据统一放入中层缓存单元及上层内存单元。
[0035] 进一步地,所述数据预取算法具体包括以下几个过程:
[0036] 1)客户端向系统发送请求,客户端通过网络与系统实时连接,并实时向系统发送 客户的查询请求;
[0037] 2)系统处理请求并查询内存,系统识别客户端发送来的请求,并查询已存在于内 存中的数据;
[0038] 3)查询中层缓存单元,当系统无法在上层内存单元中查询到用户所请求的数据 时,系统将接着查询中层缓存单元上的数据;
[0039] 4)查询下层存储单元,当系统无法在上层内存单元和中层缓存单元上找到用户所 请求的数据时,系统将接着查询下层储存单元上的数据;
[0040] 5)数据预取,在系统从下层储存单元上取得数据后,系统将相应的数据预取到中 层缓存单元和上层内存单元中。
[0041] 进一步地,所述的数据预取算法包括数据查询和预取,具体步骤如下:
[0042] 1)客户端向系统发送请求,即客户端通过网络与系统实时连接,并实时向系统发 送客户的查询请求;
[0043] 2)系统处理请求并查询上层内存单元,即系统识别客户端发送来的请求,并查询 已存在于上层内存单元中的数据;
[0044] 3)查询中层缓存单元,即当系统无法在上层内存单元中查询到用户所请求的数据 时,系统将接着查询中层缓存单元上的数据;
[0045] 4)查询下层存储单元,即当系统无法在上层内存单元和中层缓存单元上找到用户 所请求的数据时,系统将接着查询下层存储单元上的数据;
[0046] 5)数据预取,即在系统从下层存储单元上取得数据后,系统将相应的数据预取到 中层缓存单元和上层内存单元中。
[0047] 进一步地,所述的数据置换算法是指:
[0048] 1)所述数据置换算法是指根据用户和时间这两维数据进行数据相似性判断,将最 不相似的数据置出;
[0049] 2)根据数据相似性公式尺(式,4) = 71 *況+ w*乃⑷,y| * iV, 计算中层缓存单元中的数据跟当前要置入的数据的相似程度,按相似程度从大到小进行排 序,选出最不相似的数据并将其置出,相似程度排序方法如下:当前请求的用户的旧数据相 似性最高,其次是同一个小区的其他用户的旧数据,接着是其他小区的用户的同一天的数 据,最后是其他小区的用户的不同日期。
[0050] 进一步地,所述数据索引是指用于加快数据检索,能够提高数据查询的性能,将内 存缓存的数据记录和中层缓存单元的数据记录的数据索引文件存放于内存缓存中,通过查 询索引以快速得到文件是否被内存缓存层和中层缓存单元中缓存,如果数据记录被缓存 了,得到该数据记录在缓存层的存储位置,以快速地检索数据记录;在处理数据请求之前, 系统首先访问数据索引,再根据索引返回的存储位置去获取数据记录。
[0051] 进一步地,所述的数据相似性算法中RWi,dj)为两条数据记录的相似性,Dd dj) 为两条数据的时间属性维度,6(屯,dp为两条数据的用户属性维度,当上一个时间槽的用户 维度的缓存利用率比较低时,则用户维度上预取数据少一点;同样道理,当上一个时间槽的 时间维度的缓存利用率比较低时,则时间维度上预取数据少一点,算法每经过一个时间槽, 就会更新缓存利用率一次。
[0052] 与现有技术相比,本发明具有以下突出的有益效果点:
[0053] 1、本发明采用两个相关性维度,利用数据相关性判定算法、数据预取算法、数据置 换算法和数据索引技术,可实现访问数据在HDD存储层、SSD缓存层和MM缓存层相互置换 位置,为此,大大提高被访问的速度,使访问时能快速的搜索查找相应的数据,减低数据访 问延迟,提高数据处理效率,提高请求吞吐量。
[0054] 2、本方案在智能电网应用的数据处理特点基础上,以用户属性和时间属性作为相 关性维度,提出基于多维数据相似性的混合存储系统的内容放置算法。该方法能有效提高 混合存储系统的缓存命中率,降低智能电网应用的数据访问延迟,提高数据处理效率,提高 请求吞吐量。从智能电网背景出发,该发明技术方案能帮助改进面向智能电网应用的混合 存储系统设计,支持智能电网海量数据的管理,促进智能电网的发展。
[0055] 3、本发明基于多维数据相似性和缓存利用率,在内存单元MM缓存-SSD缓存-HDD 存储的三层存储结构中,实现数据相似性判定、数据预取、数据置换和数据索引等算法和技 术,能够降低数据查询延迟,提高数据查询吞吐量。

【专利附图】

【附图说明】
[0056] 图1是本发明涉及的基于多维数据相似性的混合存储系统原理框图。
[0057] 图2是本发明系统数据预取算法数据预取算法流程。
[0058] 图3是本发明系统数据预取算法数据查询整体流程图。
[0059] 图4是本发明系统数据预取算法伪代码流程示意图。
[0060] 图5是本发明系统数据置换算法伪代码流程示意图。

【具体实施方式】
[0061] 以下结合附图对本发明作进一步的详细说明。
[0062] 具体实施例1 :
[0063] 参照图1,本实施例涉及的基于多维数据相似性的混合存储系统,由上层内存单元 3、中层缓存单元2、下层存储单元3和控制单元4构成,上层内存单元3用于存放系统数据 和各个存储层中经常被访问的数据索引表,中层缓存单元2用于存放部分经常被访问的数 据,下层存储单元1用于存放全部数据集;控制单元通过I/O端口连接上层内存单元3、中 层缓存单元2和下层存储单元1,构成多层存储架构的混合存储系统。
[0064] 上层内存单元3由主存储器丽构成,中层缓存单元2由固态硬盘SSD构成,下层 存储单元1由机械硬盘HDD构成。
[0065] 参照图1至图5,本实施例涉及的基于多维数据相似性的混合存储系统的数据管 理方法,其特征在于:
[0066] 1)设置混合存储系统,所述混合存储系统由上层内存单元、中层缓存单元、下层存 储单元和控制单元构成,上层内存单元用于存放系统数据和各个存储层中经常被访问的数 据索引表,中层缓存单元用于存放部分经常被访问的数据,下层存储单元用于存放全部数 据集;控制单元通过I/O端口连接上层内存单元、中层缓存单元和下层存储单元;
[0067] 2)结合智能电网应用的数据处理特点,基于数据相似性,设计数据预取算法,在后 台运行时将用户将要访问的数据放置到中层缓存单元中,当中层缓存单元空间被占满了之 后,根据数据相似性设计了缓存置换算法,选择出那些在未来最不可能被用户访问的数据, 将其清除出中层缓存单元,为未来更可能被用户访问的数据腾出缓存空间。
[0068] 3)查询数据,每当一个请求到达,系统首先解析请求并根据请求的内容先查询上 层内存单元的数据索引表,看上层内存单元中是否有所需要的数据,如果有则返回数据,否 则接着查找中层缓存单元;查询中层缓存单元的数据索引表,看中层缓存单元中是否有所 需要的数据,如果有则返回数据,否则接着查找下层存储单元;查询下层存储单元的数据索 引表,因为层存储单元含有全部数据集,因此根据索引找到数据返回给上层应用;
[0069] 4)储存数据,当上层应用有数据写入/更新请求时,系统首先将数据写入上层内 存单元缓存,每隔一段时间,系统自动将新写入的数据或上层内存单元缓存中被更新但还 没写入硬盘的数据即脏数据写入/更新到下层存储单元中去,同时为了保持整个系统的数 据一致性,在完成对下层存储单元的数据更新之后,系统还会检查中层存储单元的数据,如 果找到了更新数据的副本,系统根据脏数据更新中层存储单元上的数据副本。
[0070] 本发明的目的之二还可以通过采取如下技术方案达到:
[0071] 进一步地,第2)点所述数据预取算法、缓存置换算法,是基于数据相似性判定算 法,体现在数据记录的时间属性和用户属性两个维度上,具体描述如下:
[0072] 1)时间相似性,是指智能电网应用处理某个特定用户的请求的情况,相比于时间 属性值相差很大的数据,用户更倾向于查询时间属性值相近的数据记录,如用户查询了今 天的电表数据,那么他很可能查询前几天的电表数据,而不倾向于查询半年前或一年前的 电表数据;
[0073] 2)用户相似性,是指智能电网应用如电能调度、电价调控等处理数据的情况,因为 这些应用都是基于各个区域的用户使用电能情况而进行决策,因此处理的数据的用户属性 具有相似性,如处理同一个小区的用户电表数据,用户ID值相近;
[0074] 3)定义数据相关性的时间和ID两个维度,相关性定义如下:
[0075] 对于任意一组数据屯,d2, d3,......,cU dk,dk+1,......,数据相关性表示为:
[0076] R(d丨,d丨'、二 G(di,dρ**N + w*D(d丨,d丨、*β'"' *N
[0077] 其中以屯dj)为两条数据记录的相似性,dj)表示两条数据的用户属性的相 似性,dp表示两条数据的时间属性的相似性,如果用户属性相似性越高,6(屯,dp值 就越大;如果时间属性相关性越高,Dd dp值就越大,α和β为小于1的常量,N为常量, w是个权重值,用于调整用户属性相似性和时间属性相似性所占比重。
[0078] 进一步地,所述数据预取算法考虑了数据之间的相似性,通过预取一系列相关数 据来预期提高请求的命中率,具体包括以下几个过程:
[0079] 1)根据上一个时间槽的缓存利用率来计算预取的数据记录数量;
[0080] 2)从下层存储单元中找到符合客户端请求的数据;
[0081] 3)通过时间和用户两个维度来判断数据的相似性;
[0082] 4)系统将相似性高的一系列数据统一放入中层缓存单元及上层内存单元。
[0083] 步骤1)所述缓存利用率,指的是一段时间内,缓存读取命中,即从缓存中读取的 不同数据记录的数量比上置入缓存的不同数据记录的数量。如过去一段时间内,置入缓存 的不同数据记录有1〇〇个,但缓存读取命中的只是其中10个不同的数据记录,那么缓存利 用率则为10%。假设这100次数据读取都能缓存命中,那么命中率为100%。显然缓存利 用率和命中率是两个不同的指标。当上一个时间槽的缓存利用率比较低时,预取少一点的 数据记录进缓存;当上一个时间槽的缓存利用率比较高时,可以预取多一点的数据记录进 缓存。在本发明中,缓存利用率细分为用户和时间两个维度。具体如,当上一个时间槽的用 户维度的缓存利用率比较低时,则用户维度上预取数据少一点,对于时间维度则同样道理。 算法每经过一个时间槽,就会更新缓存利用率一次。这就是本发明中的动态数据预取算法 基于缓存利用率的思想。
[0084] 步骤3)所述判断数据的相似性,是指依据时间和用户这两个维度来判断数据相 似性,相似性高的数据才被预取进缓存。
[0085] 步骤4)在进行数据预取时,系统不会只是简单地将请求的数据缓存,而是将一系 列与该条数据相关的其他数据都一并缓存进中层缓存单元。
[0086] 进一步地,所述数据预取算法具体包括以下几个过程:
[0087] 1)客户端向系统发送请求,客户端通过网络与系统实时连接,并实时向系统发送 客户的查询请求;
[0088] 2)系统处理请求并查询内存,系统识别客户端发送来的请求,并查询已存在于内 存中的数据;
[0089] 3)查询中层缓存单元,当系统无法在上层内存单元中查询到用户所请求的数据 时,系统将接着查询中层缓存单元上的数据;
[0090] 4)查询下层存储单元,当系统无法在上层内存单元和中层缓存单元上找到用户所 请求的数据时,系统将接着查询下层储存单元上的数据;
[0091] 5)数据预取,在系统从下层储存单元上取得数据后,系统将相应的数据预取到中 层缓存单元和上层内存单元中。
[0092] 进一步地,所述的数据预取算法包括数据查询和预取,具体步骤如下:
[0093] 1)客户端向系统发送请求,即客户端通过网络与系统实时连接,并实时向系统发 送客户的查询请求;
[0094] 2)系统处理请求并查询上层内存单元3,即系统识别客户端发送来的请求,并查 询已存在于上层内存单元3中的数据;
[0095] 3)查询中层缓存单元2,即当系统无法在上层内存单元3中查询到用户所请求的 数据时,系统将接着查询中层缓存单元2上的数据;
[0096] 4)查询下层存储单元(1),即当系统无法在上层内存单元3和中层缓存单元2上 找到用户所请求的数据时,系统将接着查询下层存储单元1上的数据;
[0097] 5)数据预取,即在系统从下层存储单元1上取得数据后,系统将相应的数据预取 到中层缓存单元2和上层内存单元3中。
[0098] 进一步地,所述的数据置换算法是指:
[0099] 1)所述数据置换算法是指根据用户和时间这两维数据进行数据相似性判断,将最 不相似的数据置出;
[0100] 2)根据数据相似性公式尺(4,4) = G⑷為)* ?' 7 * 八' + U' * £)(?/,.,4* Λ', 计算中层缓存单元中的数据跟当前要置入的数据的相似程度,按相似程度从大到小进行排 序,选出最不相似的数据并将其置出,相似程度排序方法如下:当前请求的用户的旧数据相 似性最高,其次是同一个小区的其他用户的旧数据,接着是其他小区的用户的同一天的数 据,最后是其他小区的用户的不同日期。
[0101] 进一步地,所述数据索引是指用于加快数据检索,能够提高数据查询的性能,将内 存缓存的数据记录和中层缓存单元的数据记录的数据索引文件存放于内存缓存中,通过查 询索引以快速得到文件是否被内存缓存层和中层缓存单元中缓存,如果数据记录被缓存 了,得到该数据记录在缓存层的存储位置,以快速地检索数据记录;在处理数据请求之前, 系统首先访问数据索引,再根据索引返回的存储位置去获取数据记录。
[0102] 进一步地,所述的数据相似性算法中RWi,dj)为两条数据记录的相似性,Dd dj) 为两条数据的时间属性维度,6(屯,dp为两条数据的用户属性维度,当上一个时间槽的用户 维度的缓存利用率比较低时,则用户维度上预取数据少一点;同样道理,当上一个时间槽的 时间维度的缓存利用率比较低时,则时间维度上预取数据少一点,算法每经过一个时间槽, 就会更新缓存利用率一次。
[0103] 通过分析用户的行为,我们认为某一个用户查询了一条数据,那么他将很有可能 在短时间内查询与这条数据相似的其他数据。而且,与该用户具有高相似性的其他用户的 数据也很大可能会被应用所处理。因此,我们的动态数据预取算法,能够为了提高系统的响 应速度,提高查询系统的吞吐量。具体的使用要点如下:
[0104] (1)通过实验取得的数据表明该算法确实能够大大地提高cache命中率。
[0105] (2)用户在实际的查询过程中,并不会察觉到数据预取过程的存在。换而言之,系 统在进行数据预取过程中消耗的时间是不会影响用户体验的。
[0106] (3)由于缓存数据之后带来的高cache命中率,固态硬盘(SSD缓存层2)与机械硬 盘(HDD)之间的流量并不会太多的占用网络带宽。
[0107] 所述的数据置换算法是:
[0108] 对于任何一个系统,系统的缓存设备空间都是有限的。因此当系统需要向缓存中 写入数据的时候,系统就需要将SSD中部分数据删除。本发明的缓存置换算法将会根据用 户和时间这两维数据进行数据相似性判断,将最不相似的数据置出。
[0109] 根据数据相似性公式外/,.4//) = (7(?_)*乂/*汉+冰*1)(?)*/-'/|*#,计算 缓存层SSD中的数据跟当前要置入的数据的相似程度,按相似程度从大到小进行排序,选 出最不相似的数据并将其置出。一般情况下是,当前请求的用户的旧数据相似性最高,其次 是同一个小区的其他用户的旧数据,接着是其他小区的用户的同一天的数据,最后是其他 小区的用户的不同日期。
[0110] 本发明的应用中还包括有索引技术,所述的索引技术是:
[0111] 在本发明中,数据索引技术用于加快数据检索,能够提高数据查询的性能。将内存 缓存的数据记录和SSD缓存的数据记录的数据索引文件存放于内存缓存中。通过查询索 弓丨,我们可以快速得到文件是否被内存缓存层和SSD缓存层缓存。如果数据记录被缓存了, 我们可以得到该数据记录在缓存层的存储位置,因此可以快速地检索数据记录。在处理数 据请求之前,系统都会访问数据索引,再根据索引返回的存储位置去获取数据记录。
[0112] 本发明基于多维数据相似性的混合存储系统内容缓存的数据控制方法中,储存系 统主要是通过上述的数据相似性判定算法判断所述的时间和用户两个维度数据的相似性, 利用数据预取算法和数据置换算法将相似性高的数据预取进缓存层,置换出不相似的数 据,提高缓存的利用率,从而提高储存系统被访问的速度。
[0113] 数据预取算法根据用户的请求从缓存架构的最底层HDD存储中把在将来很有可 能会被请求的数据提前缓存在SSD中,以提高SSD缓存命中率,从而改善请求处理性能。需 要预取的数据由数据相似性决定,相似性越高的数据更倾向于被预取到SSD缓存中。
[0114] 数据置换算法用于将缓存中将短期内不会被访问的数据替换成将来极有可能被 请求的数据。数据置换算法是保证缓存命中率和利用率的前提条件,因为缓存空间是有限 的,无法将所有的数据都缓存起来,如果不对数据进行置换,那些在将来很少被请求的数据 将会严重降低缓存命中率,从而导致缓存利用率急剧下降。
[0115] 数据索引技术是提高数据请求处理性能的有效手段,在处理数据请求之前,先访 问数据索引获得所请求的数据的存储位置。数据索引是存储系统中访问最频繁的数据,在 处理任何一个数据请求之前都需要访问数据索引,因此,利用缓存架构中数据访问性能最 高的内存缓存能有效地提高数据请求处理性能。
[0116] 具体访问的过程是:
[0117] 1、系统每当上层应用4发出一个请求,系统首先会解析请求并根据请求的内容先 查询内存缓存层(即MM缓存层3)的数据索引表,看内存缓存中是否有所需要的数据。如 果有则返回数据,否则接着查找SSD缓存层2。
[0118] 2、查询SSD缓存层2的数据索引表,看SSD缓存中是否有所需要的数据。如果有 则返回数据,否则接着查找HDD存储层1。
[0119] 3、查询HDD存储层1的数据索引表,因为HDD存储层含有全部数据集,因此根据索 引找到数据返回给上层应用。
[0120] 上述访问过程中,当上层应用4有数据写入/更新请求时,系统会首先将数据写入 MM缓存层3。每隔一段时间,系统会自动将在新写入的数据或MM缓存层3中被更新但还没 写入硬盘的数据(脏数据)写入/更新到机械硬盘(HDD存储层)中去。同时为了保持整 个系统的数据一致性,在完成对HDD存储层1的数据更新之后,系统还会检查SSD缓存层2 上的数据,如果找到了更新数据的副本的话,同样地,系统会根据脏数据更新SSD缓存层2 上的数据副本。
[0121] 具体实施例2:
[0122] 本实施例的技术特点是:所述的数据相关性判定算法还可以利用聚类方法来定义 数据的相似性,数据索引技术可采用哈希算法。其余同上实施例。
[0123] 本发明中,各算法模块的结构和连接方式都是可以有所变化的,在本发明技术方 案的基础上,凡根据本发明原理对个别算法模块的结构进行的改进和等同变换,均不应排 除在本发明的保护范围之外。
[0124] 本发明综合考虑性能和空间,充分利用HDD存储层1、SSD缓存层2和MM缓存层3 这三种介质的优势。因此,本发明利用存储空间较大的HDD存储层1来存储全部数据,利用 SSD来存储部分较高访问率的数据和利用MM来存储少量更高访问率的数据。由于SSD缓存 层2和MM缓存层3空间的有限,缓存系统性能的关键在于如何让缓存空间存放用户更可能 将要访问到的数据。结合智能电网应用的数据处理特点,基于数据相似性,本发明设计高效 的数据预取算法,在后台运行时尽可能将用户将要访问的数据放置到缓存中。另外,由于缓 存空间的有限性,当SSD缓存层2空间被占满了之后,我们应该能够准确地选择出那些在未 来最不可能被用户访问的数据,将其清除出缓存,为未来更可能被用户访问的数据腾出缓 存空间。因此,我们根据数据相似性设计了缓存置换算法,该换置方法包括:数据相似性判 定算法、数据预取算法和数据置换算法,所采取的数据预取算法和数据置换算法都是基于 数据相似性的,都离不开数据相似性判定算法。
【权利要求】
1. 基于多维数据相似性的混合存储系统,其特征在于:由上层内存单元(3)、中层缓存 单元(2)、下层存储单元(1)和控制单元(4)构成,上层内存单元(3)用于存放系统数据和 各个存储层中经常被访问的数据索引表,中层缓存单元(2)用于存放部分经常被访问的数 据,下层存储单元(1)用于存放全部数据集;控制单元(4)通过I/O端口连接上层内存单元 (3)、中层缓存单元(2)和下层存储单元(1),构成多层存储架构的混合存储系统。
2. 根据权利要求1所述的基于多维数据相似性的混合存储系统,其特征在于:上层内 存单元(3)由主存储器MM构成,中层缓存单元(2)由固态硬盘SSD构成,下层存储单元(1) 由机械硬盘HDD构成。
3. 基于多维数据相似性的混合存储系统的数据管理方法,其特征在于: 1) 设置混合存储系统,所述混合存储系统由上层内存单元(3)、中层缓存单元(2)、下 层存储单元(1)和控制单元(4)构成,上层内存单元(3)用于存放系统数据和各个存储层 中经常被访问的数据索引表,中层缓存单元(2)用于存放部分经常被访问的数据,下层存 储单元⑴用于存放全部数据集;控制单元⑷通过I/O端口连接上层内存单元(3)、中层 缓存单元(2)和下层存储单元(1); 2) 结合智能电网应用的数据处理特点,基于数据相似性,设计数据预取算法,在后台运 行时将用户将要访问的数据放置到中层缓存单元中,当中层缓存单元空间被占满了之后, 根据数据相似性设计了缓存置换算法,选择出那些在未来最不可能被用户访问的数据,将 其清除出中层缓存单元,为未来更可能被用户访问的数据腾出缓存空间。 3) 查询数据,每当一个请求到达,系统首先解析请求并根据请求的内容先查询上层内 存单元的数据索引表,看上层内存单元中是否有所需要的数据,如果有则返回数据,否则接 着查找中层缓存单元;查询中层缓存单元的数据索引表,看中层缓存单元中是否有所需要 的数据,如果有则返回数据,否则接着查找下层存储单元;查询下层存储单元的数据索引 表,因为层存储单元含有全部数据集,因此根据索引找到数据返回给上层应用; 4) 储存数据,当上层应用有数据写入/更新请求时,系统首先将数据写入上层内存单 元缓存,每隔一段时间,系统自动将新写入的数据或上层内存单元缓存中被更新但还没写 入硬盘的数据即脏数据写入/更新到下层存储单元中去,同时为了保持整个系统的数据一 致性,在完成对下层存储单元的数据更新之后,系统还会检查中层存储单元的数据,如果找 到了更新数据的副本,系统根据脏数据更新中层存储单元上的数据副本。
4. 根据权利要求3所述的基于多维数据相似性的混合存储系统的数据管理方法,其特 征在于:第2)点所述数据预取算法、缓存置换算法,是基于数据相似性判定算法,体现在数 据记录的时间属性和用户属性两个维度上,具体描述如下: 1) 时间相似性,是指智能电网应用处理某个特定用户的请求的情况,相比于时间属性 值相差很大的数据,用户更倾向于查询时间属性值相近的数据记录,如用户查询了今天的 电表数据,那么他很可能查询前几天的电表数据,而不倾向于查询半年前或一年前的电表 数据; 2) 用户相似性,是指智能电网应用如电能调度、电价调控等处理数据的情况,因为这些 应用都是基于各个区域的用户使用电能情况而进行决策,因此处理的数据的用户属性具有 相似性,如处理同一个小区的用户电表数据,用户ID值相近; 3) 定义数据相关性的时间和ID两个维度,相关性定义如下: 对于任意一组数据dp d2, d3,......,dH,dk,dk+1,......,数据相关性表示为 : R(jnd 丨、二 G{d?d 丨、)*(1'-" N + w* D(、dnd 丨、* β; J'*N 其中RWi,dp为两条数据记录的相似性,Gd dp表示两条数据的用户属性的相似性, D^,dp表示两条数据的时间属性的相似性,如果用户属性相似性越高,Gd dp值就越 大;如果时间属性相关性越高,D^,dp值就越大,α和β为小于1的常量,N为常量,w是 个权重值,用于调整用户属性相似性和时间属性相似性所占比重。
5. 根据权利要求4所述的基于多维数据相似性的混合存储系统的数据管理方法,其特 征在于:所述数据预取算法考虑了数据之间的相似性,通过预取一系列相关数据来预期提 高请求的命中率,具体包括以下几个过程: 1) 根据上一个时间槽的缓存利用率来计算预取的数据记录数量; 2) 从下层存储单元中找到符合客户端请求的数据; 3) 通过时间和用户两个维度来判断数据的相似性; 4) 系统将相似性高的一系列数据统一放入中层缓存单元及上层内存单元。 步骤1)、3)和4)是本方法的核心步骤。步骤1),缓存利用率,指的是一段时间内,缓存 读取命中,即从缓存中读取的不同数据记录的数量比上置入缓存的不同数据记录的数量。 如过去一段时间内,置入缓存的不同数据记录有100个,但缓存读取命中的只是其中10个 不同的数据记录,那么缓存利用率则为10%。假设这100次数据读取都能缓存命中,那么命 中率为100%。显然缓存利用率和命中率是两个不同的指标。当上一个时间槽的缓存利用 率比较低时,预取少一点的数据记录进缓存;当上一个时间槽的缓存利用率比较高时,可以 预取多一点的数据记录进缓存。在本发明中,缓存利用率细分为用户和时间两个维度。具 体如,当上一个时间槽的用户维度的缓存利用率比较低时,则用户维度上预取数据少一点, 对于时间维度则同样道理。算法每经过一个时间槽,就会更新缓存利用率一次。这就是本 发明中的动态数据预取算法基于缓存利用率的思想。步骤3),依据时间和用户这两个维度 来判断数据相似性,相似性高的数据才被预取进缓存。步骤4),在进行数据预取时,系统不 会只是简单地将请求的数据缓存,而是将一系列与该条数据相关的其他数据都一并缓存进 中层缓存单元。
6. 根据权利要求5所述的基于多维数据相似性的混合存储系统的数据管理方法,其特 征在于:所述数据预取算法具体包括以下几个过程: 1) 客户端向系统发送请求,客户端通过网络与系统实时连接,并实时向系统发送客户 的查询请求; 2) 系统处理请求并查询内存,系统识别客户端发送来的请求,并查询已存在于内存中 的数据; 3) 查询中层缓存单元,当系统无法在上层内存单元中查询到用户所请求的数据时,系 统将接着查询中层缓存单元上的数据; 4) 查询下层存储单元,当系统无法在上层内存单元和中层缓存单元上找到用户所请求 的数据时,系统将接着查询下层储存单元上的数据; 5) 数据预取,在系统从下层储存单元上取得数据后,系统将相应的数据预取到中层缓 存单元和上层内存单元中。
7. 根据权利要求6所述的基于多维数据相似性的混合存储系统的数据管理方法,其特 征在于:所述的数据预取算法包括数据查询和预取,具体步骤如下: 1) 客户端向系统发送请求,即客户端通过网络与系统实时连接,并实时向系统发送客 户的查询请求; 2) 系统处理请求并查询上层内存单元(3),即系统识别客户端发送来的请求,并查询 已存在于上层内存单元(3)中的数据; 3) 查询中层缓存单元(2),即当系统无法在上层内存单元(3)中查询到用户所请求的 数据时,系统将接着查询中层缓存单元(2)上的数据; 4) 查询下层存储单元(1),即当系统无法在上层内存单元(3)和中层缓存单元(2)上 找到用户所请求的数据时,系统将接着查询下层存储单元(1)上的数据; 5) 数据预取,即在系统从下层存储单元(1)上取得数据后,系统将相应的数据预取到 中层缓存单元(2)和上层内存单元(3)中。
8. 根据权利要求4所述的基于多维数据相似性的混合存储系统的数据管理方法,其特 征在于: 1) 所述数据置换算法是指根据用户和时间这两维数据进行数据相似性判断,将最不相 似的数据置出; 2) 根据数据相似性公式价冬(//) = 6'(4為)*^'1*八4一0(冬 (//卜/广/*?,计算中 层缓存单元中的数据跟当前要置入的数据的相似程度,按相似程度从大到小进行排序,选 出最不相似的数据并将其置出,相似程度排序方法如下:当前请求的用户的旧数据相似性 最高,其次是同一个小区的其他用户的旧数据,接着是其他小区的用户的同一天的数据,最 后是其他小区的用户的不同日期。
9. 根据权利要求4所述的基于多维数据相似性的混合存储系统的数据管理方法,其特 征在于:所述数据索引是指用于加快数据检索,能够提高数据查询的性能,将内存缓存的数 据记录和中层缓存单元的数据记录的数据索引文件存放于内存缓存中,通过查询索引以快 速得到文件是否被内存缓存层和中层缓存单元中缓存,如果数据记录被缓存了,得到该数 据记录在缓存层的存储位置,以快速地检索数据记录;在处理数据请求之前,系统首先访问 数据索引,再根据索引返回的存储位置去获取数据记录。
10. 根据权利要求4所述的基于多维数据相似性的混合存储系统的数据管理方法,其 特征在于:所述的数据相似性算法中以屯,dp为两条数据记录的相似性,0(屯,dp为两条数 据的时间属性维度,6(屯,dp为两条数据的用户属性维度,当上一个时间槽的用户维度的缓 存利用率比较低时,则用户维度上预取数据少一点;同样道理,当上一个时间槽的时间维度 的缓存利用率比较低时,则时间维度上预取数据少一点,算法每经过一个时间槽,就会更新 缓存利用率一次。
【文档编号】G06F12/08GK104111898SQ201410226424
【公开日】2014年10月22日 申请日期:2014年5月26日 优先权日:2014年5月26日
【发明者】吴丹, 陈志坚, 解文艳, 吉小恒, 吴迪, 罗文海, 何坚, 郑元欢 申请人:中国能源建设集团广东省电力设计研究院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1