一种分布式存储系统中解决数据块访问热点的方法及装置与流程

文档序号:12135307阅读:1109来源:国知局
一种分布式存储系统中解决数据块访问热点的方法及装置与流程

本发明涉及互联网大数据领域技术领域,尤其涉及一种分布式存储系统中解决数据块访问热点的方法及装置。



背景技术:

分布式存储系统,是将数据分散存储在多台独立的设备上。传统的网络存储系统采用集中的存储服务器存放所有数据,存储服务器成为系统性能的瓶颈,也是可靠性和安全性的焦点,不能满足大规模存储应用的需要。分布式网络存储系统采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,它不但提高了系统的可靠性、可用性和存取效率,还易于扩展。

Hbase(Hadoop Database,分布式的、面向列的开源数据库)是运行在Hadoop(Hadoop Distributed File System,分布式文件系统)上的NoSQL(Not Only SQL,非关系型的数据库),它是一个分布式的和可扩展的大数据仓库,在HBase中,Master负责分配Region到各个不同的Region Server上,Region Server负责存储实际的数据。在实际应用过程中,HBase数据的访问经常存在热点问题,即一部分Region有大量的访问请求,而一部分Region则相对空闲。数据访问热点问题的存在,势必会增加繁忙Region的请求响应时间,给用户带来不好的使用体验。

现有技术中,通过统计Hbase分布式存储系统中各个数据块服务器上数据块的请求数来预测该数据块将来的访问量,然后通过将请求数比较集中的数据块分摊到比较空闲的服务器上,来达到均衡访问量的目的。但是数据块的移动需要消耗大量的网络资源,热点问题并不能马上得到解决,还有可能进一步加剧热点问题。

综上所述,在现有技术中,不能提供一种避免网络消耗并同时消除数据块访问热点的方法。



技术实现要素:

本发明提供一种分布式存储系统中解决数据块访问热点的方法及装置,用于解决现有技术中不能提供一种避免网络消耗并同时消除数据块访问热点的方法的问题。

本发明实施例提供一种分布式存储系统中解决数据块访问热点的方法,所述方法包括:

确定所述分布式存储系统中存在热点数据块,且确定所述热点数据块所属的激活服务器和备份服务器;

当确定所述激活服务器可使用的固态硬盘容量不满足所述热点数据块的转移要求且所述备份服务器可使用的固态硬盘容量满足所述热点数据块的转移要求时,将所述备份服务器中的所述热点数据块从所述备份服务器的机械硬盘中转移到所述备份服务器的固态硬盘中并激活所述备份服务器中的所述热点数据块;

其中,所述分布式存储系统中存在多个节点服务器,每个数据块的数据分别存储在至少两个节点服务器中,所述至少两个节点服务器包括所述数据块的激活服务器以及所述数据块的备份服务器。

本发明实施例中,通过在确定所述激活服务器可使用的固态硬盘容量不满足所述热点数据块的转移要求且所述备份服务器可使用的固态硬盘容量满足所述热点数据块的转移要求时,将所述备份服务器中的所述热点数据块从所述备份服务器的机械硬盘中转移到所述备份服务器的固态硬盘中并激活所述备份服务器中的所述热点数据块,即通过备份服务器将热点数据块从所述备份服务器的机械硬盘中转移到所述备份服务器的固态硬盘中,不涉及跨节点之间的数据块的移动,解决了数据块访问热点的问题,并且将热点数据块保存在备份服务器的固态硬盘,提高了读取速度,进一步的减少了网络消耗。

进一步地,所述方法还包括:

当确定所述热点数据块所属的激活服务器可使用的固态硬盘容量满足所述热点数据块的转移要求时,则将所述激活服务器中的所述热点数据块从所述激活服务器的机械硬盘中转移到所述激活服务器的固态硬盘中。

本发明实施例中,若确定热点数据块所属的激活服务器可使用的固态硬盘容量满足所述热点数据块的转移要求,将所述激活服务器中的所述热点数据块从所述激活服务器的机械硬盘中转移到所述激活服务器的固态硬盘中,保证了在激活服务器中热点数据块的读取速度,更好的解决了数据块访问热点的问题。

进一步地,所述方法还包括:

若确定冷点数据块存放在所述冷点数据块所属的激活服务器的固态硬盘中,则将所述冷点数据块从所述激活服务器的固态硬盘转移到所述激活服务器的机械硬盘中。

本发明实施例中,当确定冷点数据块存放在所述冷点数据块所属的激活服务器的固态硬盘中,则将所述冷点数据块从所述激活服务器的固态硬盘转移到所述激活服务器的机械硬盘中,保证了激活服务器中的容量充足,以便存储热点数据块。

进一步地,所述确定所述分布式存储系统中存在热点数据块,包括:

实时统计所述分布式存储系统中每个数据块的每秒访问次数以及请求响应时间;

针对每个数据块,当确定所述数据块的每秒访问次数大于热点访问次数阈值时或者请求响应时间大于热点响应时间阈值时,则确定所述数据块为热点数据块;

针对每个数据块,当确定所述数据块的每秒的访问次数小于冷点访问次数阈值时或者请求响应时间小于冷点访问时间阈值时,则确定所述数据块为冷点数据块。

本发明实施例中,通过每个数据块的每秒访问次数以及请求响应时间来确定数据块是否为热点数据块或者冷点数据块,能够更好的确定出现访问热点的数据库。

进一步地,所述方法还包括:

当确定所述热点数据块所属的激活服务器可使用的固态硬盘容量不满足所述热点数据块的转移要求且所述热点数据块所属的备份服务器可使用的固态硬盘容量也不满足所述热点数据块的转移要求时,则确定满足所述热点数据块的转移要求并且与所述热点数据块所属的节点服务器距离最近的节点服务器为所述热点数据块的待激活服务器;

将所述热点数据块复制到所述待激活服务器的固态硬盘中,并激活所述待激活服务器中的所述热点数据块。

本发明实施例中,若确定热点数据库所述的节点服务器可使用的固态硬盘容量不满足热点数据库的转移要求时,需要将热点数据库进行跨节点复制,为了减少网络资源的消耗,选取与所述热点数据块所属的节点服务器距离最近的节点服务器为所述热点数据块的待激活服务器,将所述热点数据块复制到所述待激活服务器的固态硬盘中,减少了网络资源的消耗,解决了数据块访问热点的问题。

进一步地,所述确定满足所述热点数据块的转移要求并且与所述热点数据块所属的节点服务器距离最近的节点服务器为所述热点数据块的待激活服务器,包括:

确定除所述热点数据块所属的节点服务器外的所有节点服务器中满足所述所述热点数据块的转移要求的可选服务器集合,所述热点数据块所属的节点服务器包括所述热点数据块的激活服务器和所述热点数据块的备份服务器;

确定所述热点数据块所属的每一个节点服务器与所述可选服务器集合中的每一个节点服务器的距离;

将最短距离对应的所述可选服务集合中的节点服务器确定为所述热点数据块的待激活服务器。

本发明实施例中,由于热点数据块所述的节点服务器有多个,需要确定每个节点服务器与可选服务器集合中的每一个节点服务器的距离,并确定所有距离中最短的距离对应的可选服务集合中的节点服务器为待激活服务器,减少了节点之间的距离,有利于减少网络资源的消耗。

进一步地,所述方法还包括:

当确定所述分布式存储系统中所有节点服务器都不满足所述所述热点数据块的转移要求时,将所述热点数据块拆分成N个子热点数据块,其中N大于2;

确定所述热点数据块所属的每一个节点服务器与除所述热点数据块所属的节点服务器外的所有节点服务器的距离,并确定距离最近的N个节点服务器为待激活服务器;

将所述子热点数据块复制到所述待激活服务器中,并激活所述待激活服务器中的所述子热点数据块。

本发明实施例中,当确定所述分布式存储系统中所有节点服务器都不满足所述所述热点数据块的转移要求,即没有节点服务器中可使用的固态硬盘容量能够放置热点数据块,则需要将热点数据块进行拆分,并将拆分后的子热点数据块复制到与热点数据块所属的每一个节点服务器距离最近的N个节点服务器中,减少了热点数据块在节点之间移动的距离,有利于减少网络资源的消耗。

本发明实施例提供一种分布式存储系统中解决数据块访问热点的装置,包括:

热点数据块确定单元,用于确定所述分布式存储系统中存在热点数据块,且确定所述热点数据块所属的激活服务器和备份服务器;

转移单元,用于当确定所述激活服务器可使用的固态硬盘容量不满足所述热点数据块的转移要求且所述备份服务器可使用的固态硬盘容量满足所述热点数据块的转移要求时,将所述备份服务器中的所述热点数据块从所述备份服务器的机械硬盘中转移到所述备份服务器的固态硬盘中并激活所述备份服务器中的所述热点数据块;

其中,所述分布式存储系统中存在多个节点服务器,每个数据块的数据分别存储在至少两个节点服务器中,所述至少两个节点服务器包括所述数据块的激活服务器以及所述数据块的备份服务器。

本发明实施例中,通过在确定所述激活服务器可使用的固态硬盘容量不满足所述热点数据块的转移要求且所述备份服务器可使用的固态硬盘容量满足所述热点数据块的转移要求时,将所述备份服务器中的所述热点数据块从所述备份服务器的机械硬盘中转移到所述备份服务器的固态硬盘中并激活所述备份服务器中的所述热点数据块,即通过备份服务器将热点数据块从所述备份服务器的机械硬盘中转移到所述备份服务器的固态硬盘中,不涉及跨节点之间的数据块的移动,解决了数据块访问热点的问题,并且将热点数据块保存在备份服务器的固态硬盘,提高了读取速度,进一步的减少了网络消耗。

进一步地,所述转移单元还用于:

当确定所述热点数据块所属的激活服务器可使用的固态硬盘容量满足所述热点数据块的转移要求时,则将所述激活服务器中的所述热点数据块从所述激活服务器的机械硬盘中转移到所述激活服务器的固态硬盘中。

进一步地,所述转移单元,还用于:

若确定冷点数据块存放在所述冷点数据块所属的激活服务器的固态硬盘中,则将所述冷点数据块从所述激活服务器的固态硬盘转移到所述激活服务器的机械硬盘中。

进一步地,所述热点数据块确定单元,具体用于:

实时统计所述分布式存储系统中每个数据块的每秒访问次数以及请求响应时间;

针对每个数据块,当确定所述数据块的每秒访问次数大于热点访问次数阈值时或者请求响应时间大于热点响应时间阈值时,则确定所述数据块为热点数据块;

针对每个数据块,当确定所述数据块的每秒的访问次数小于冷点访问次数阈值时或者请求响应时间小于冷点访问时间阈值时,则确定所述数据块为冷点数据块。

进一步地,所述装置还包括:

待激活服务器确定单元,用于当确定所述热点数据块所属的激活服务器可使用的固态硬盘容量不满足所述热点数据块的转移要求且所述热点数据块所属的备份服务器可使用的固态硬盘容量也不满足所述热点数据块的转移要求时,则确定满足所述热点数据块的转移要求并且与所述热点数据块所属的节点服务器距离最近的节点服务器为所述热点数据块的待激活服务器;

复制单元,用于将所述热点数据块复制到所述待激活服务器的固态硬盘中,并激活所述待激活服务器中的所述热点数据块。

进一步地,所述待激活服务器确定单元具体用于:

确定除所述热点数据块所属的节点服务器外的所有节点服务器中满足所述所述热点数据块的转移要求的可选服务器集合,所述热点数据块所属的节点服务器包括所述热点数据块的激活服务器和所述热点数据块的备份服务器;

确定所述热点数据块所属的每一个节点服务器与所述可选服务器集合中的每一个节点服务器的距离;

将最短距离对应的所述可选服务集合中的节点服务器确定为所述热点数据块的待激活服务器。

进一步地,所述装置还包括:

拆分单元,用于当确定所述分布式存储系统中所有节点服务器都不满足所述所述热点数据块的转移要求时,将所述热点数据块拆分成N个子热点数据块,其中N大于2;

所述待激活服务器确定单元还用于:

确定所述热点数据块所属的每一个节点服务器与除所述热点数据块所属的节点服务器外的所有节点服务器的距离,并确定距离最近的N个节点服务器为待激活服务器;

所述复制单元还用于:

将所述子热点数据块复制到所述待激活服务器中,并激活所述待激活服务器中的所述子热点数据块。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种分布式存储系统中解决数据块访问热点的方法流程示意图;

图2为本发明实施例提供的另一种分布式存储系统中解决数据块访问热点的方法示意图;

图3为本发明实施例提供的一种分布式存储系统中解决数据块访问热点的装置的结构示意图。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

本发明提供一种分布式存储系统中解决数据块访问热点的方法,如图1所示,包括:

步骤101,确定所述分布式存储系统中存在热点数据块,且确定所述热点数据块所属的激活服务器和备份服务器;

步骤102,当确定所述激活服务器可使用的固态硬盘容量不满足所述热点数据块的转移要求且所述备份服务器可使用的固态硬盘容量满足所述热点数据块的转移要求时,将所述备份服务器中的所述热点数据块从所述备份服务器的机械硬盘中转移到所述备份服务器的固态硬盘中并激活所述备份服务器中的所述热点数据块;

其中,所述分布式存储系统中存在多个节点服务器,每个数据块的数据分别存储在至少两个节点服务器中,所述至少两个节点服务器包括所述数据块的激活服务器以及所述数据块的备份服务器。

在本发明实施例中,分布式存储系统指的是将数据分散存储到多个数据存储存储服务器中,分布式存储系统可以由成千甚至上万台机器组成,以实现海量数据存储和高并发。

在本发明实施例中,分布式存储系统为HBase系统是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。

在本发明实施例中,分布式存储系统中有多个数据块,每个数据块对应一个节点服务器,一个节点服务器管理多个数据块。

可选的,在本发明实施例中,数据块就是HBase系统中的Region,节点服务器为Region Server。

在步骤101中,首先确定分布式存储系统中存在热点数据块。在本发明实施例中,针对分布式存储系统中的每个数据块,实时统计每个数据块的每秒访问次数以及请求响应时间。当确定所述数据块的每秒访问次数大于热点访问次数阈值时或者请求响应时间大于热点响应时间阈值时,则确定所述数据块为热点数据块。

在本发明实施例中,热点访问次数阈值或者热点响应时间阈值为根据应用场景或者用户配置进行设置。

可选的,在本发明实施例中,还可以确定冷点数据块,针对每个数据块,当确定所述数据块的每秒的访问次数小于冷点访问次数阈值时或者请求响应时间小于冷点访问时间阈值时,则确定所述数据块为冷点数据块。

例如,在本发明实施例中,HBase系统中有500个数据块,其中有一个数据块的每秒访问次数为25次,设定的热点访问次数阈值为20次,则确定该数据块为热点数据块;或者,在本发明实施例中,HBase系统中的一个数据块的每秒访问次数为4次,设定的冷点访问次数阈值为5次,则确定该数据块为冷点数据块。

在本发明实施例中,分布式存储系统中的每一个数据块都对应至少两个节点服务器,其中一个节点服务器是激活服务器,即在激活服务器中的数据块是激活状态的,另一个节点服务器是备份服务器,即在备份服务器中的数据块是没有激活的状态。

可选的,在本发明实施例中,每一个数据块的数据复制成至少三份,也就是说,每一个数据块对应三个节点服务器,一个节点服务器为激活服务器,另两个为备份服务器,在激活服务器上的数据块的状态为激活状态。

在步骤102中,当确定在分布式存储系统中存在热点数据块后,需要消除热点数据块的访问热点,由于热点数据块所在的激活服务器将热点数据块的数据保存在激活服务器的机械硬盘中,需要将热点数据块转移到读取速度更快的固态硬盘上。

机械硬盘即是传统普通硬盘,主要由:盘片,磁头,盘片转轴及控制电机,磁头控制器,数据转换器,接口,缓存等几个部分组成。固态硬盘,简称固盘,固态硬盘用固态电子存储芯片阵列而制成的硬盘,由控制单元和存储单元(FLASH芯片、DRAM芯片)组成。固态硬盘采用闪存作为存储介质,读取速度相对机械硬盘更快。

当确定热点数据块所述的激活服务器可使用的固态硬盘容量不满足热点数据块的转移要求时,则需要确定热点数据块所属的其它备份服务器可使用的固态硬盘容量。

在本发明实施例中,热点数据块转移要求为能够将数据块数据从机械硬盘中转移到固态硬盘中的条件,可选的,在本发明实施例中,热点数据块转移要求为热点数据块的数据量大小,也就是说,当确定了热点数据块后,还需要确定热点数据块的数据量,并确定热点数据块所属的激活服务器可使用的固态硬盘容量。

若激活服务器可使用的固态硬盘容量不满足热点数据块的转移要求时,则需要确定备份服务器可使用的固态硬盘容量是否满足热点数据块的转移要求,当确定备份服务器可使用的固态硬盘容量满足所述热点数据块的转移要求时,将所述备份服务器中的所述热点数据块从所述备份服务器的机械硬盘中转移到所述备份服务器的固态硬盘中。

例如,热点数据块的数据大小为50MB,热点数据块所属的激活服务器A可使用的固态硬盘容量为40MB,则热点数据块所属的激活服务器A不满足热点数据块的转移要求。确定热点数据块所述的备份服务器B或者C可使用的固态硬盘容量为100MB,则热点数据块所述的备份服务器B或者C满足热点数据块的转移要求。

若确定了热点数据块的备份服务器满足了热点数据块的转移要求,则将热点数据块的备份服务器中热点数据块从机械内存中转移到备份服务器的固态硬盘中,提高了热点数据块的读取速度,有效的消除了热点数据块的访问热点问题。

可选的,在本发明实施例中,当确定热点数据块所属的激活服务器可使用的固态硬盘容量满足热点数据块的转移要求时,则将激活服务器中的热点数据块从激活服务器的机械硬盘中转移到激活服务器的固态硬盘中。

在步骤101后,为了能够扩大激活服务器的可使用的固态硬盘容量,所以在确定了在分布式存储系统中存在冷点数据块后,还需要确定冷点数据块的存储位置,若冷点数据块存储在冷点数据块所属的激活服务器的固态硬盘容量中,则将冷点数据块转移到激活服务器的机械硬盘中。

在步骤102后,当确定热点数据块所属的激活服务器可使用的固态硬盘容量不满足热点数据块的转移要求且热点数据块所属的备份服务器可使用的固态硬盘容量也不满足热点数据块的转移要求时,还需要确定满足热点数据块的转移要求并且与热点数据块所属的节点服务器距离最近的节点服务器为热点数据块的待激活服务器,并将热点数据块复制到待激活服务器的固态硬盘中,并激活待激活服务器中的热点数据块。

可选的,在本发明实施例中,确定满足所述热点数据块的转移要求并且与所述热点数据块所属的节点服务器距离最近的节点服务器为所述热点数据块的待激活服务器,具体为:

确定除所述热点数据块所属的节点服务器外的所有节点服务器中满足所述所述热点数据块的转移要求的可选服务器集合,所述热点数据块所属的节点服务器包括所述热点数据块的激活服务器和所述热点数据块的备份服务器;

确定所述热点数据块所属的每一个节点服务器与所述可选服务器集合中的每一个节点服务器的距离;

将最短距离对应的所述可选服务集合中的节点服务器确定为所述热点数据块的待激活服务器。

在本发明实施例中,假设分布式存储系统中同机柜节点之间的距离为a1,同机房不同机柜节点之间的距离为a2,跨机房节点之间的距离为a3。这里的距离还要考虑网络的影响,根据网络带宽的不同,可加不同的权重。其中a1<a2<a3。

首先确定除热点数据块所属的节点服务器外的其它节点服务器可使用的固态硬盘容量是否满足热点数据块的转移要求,例如,热点数据块的数据容量为100MB,筛选其它节点服务器可使用的固态硬盘容量大于100MB的节点服务器,例如有4个,分别为节点服务器1,节点服务器2,节点服务器3,节点服务器4,则这4个节点服务器为可选服务器集合。

例如,热点数据块所属的节点服务器有3个,即激活服务器1、备份服务器2以及备份服务器3,则计算3个节点服务器与可选服务器集合之间的距离。激活服务器1与可选服务器集合中的节点服务器的距离分别为a1,3a2+a1,2a1,a3+a1,备份服务器2与可选服务器集合中的节点服务器的距离分别为2a1+a2,a2+2a1,a2+a1,2a3+a1,备份服务器3与可选服务器集合中的节点服务器的距离分别为a3,4a1,4a1,5a1+a2,则确定激活服务与可选服务器集合中的节点服务器的距离a1的距离为最短距离,则将最短距离对应的节点服务器确定为热点数据块的待激活服务器。

将热点数据块中的数据复制到待激活服务器中,并激活待激活服务器中的热点数据块,同时下线热点数据块所属的激活服务器中的热点数据块。

可选的,在本发明实施例中,当确定分布式存储系统中所有节点服务器都不满足热点数据块的转移要求时,将热点数据块拆分成N个子热点数据块,其中N大于2;确定热点数据块所属的每一个节点服务器与除热点数据块所属的节点服务器外的所有节点服务器的距离,并确定距离最近的N个节点服务器为待激活服务器;将子热点数据块复制到待激活服务器中,并激活待激活服务器中的子热点数据块。

在本发明实施例中,若所有的节点服务器都不满足热点数据块的转移要求时,则说明在分布式存储系统中的所有节点服务器的可使用的固态硬盘容量都小于热点数据块时,则需要将热点数据块进行拆分。

在本发明实施例中,例如,将热点数据块拆分成4块,每一块拆分的数据量可以是均分,也可以是根据用户设置或者应用场景等因素进行设置。

可选的,在本发明实施例中,为了消除热点数据块的访问热点,将每一个子热点数据块存储在确定距离最近的N个待激活服务器的机械硬盘中,但是为了更好的提高热点数据块的读取速度,将每一个子热点数据块存储在确定距离最近的N个待激活服务器的固态硬盘中。

若将每一个子热点数据块存储在确定距离最近的N个待激活服务器的机械硬盘中,可选的,首先需要确定除热点数据块以外的其它节点的机械硬盘的可使用容量是否满足每一个子热点数据块的转移要求。例如,热点数据块的数据流为100MB,平均分为4个子热点数据块,每一个子热点数据块的数据量为25MB。需要确定除热点数据块以外的其它节点的机械硬盘的可使用容量大于25MB的可选服务器集,并从可选服务器集中确定距离最近的4个节点服务器为待激活服务器,将每个子热点数据块存储在确定距离最近的4个待激活服务器的机械硬盘中。

若将每一个子热点数据块存储在确定距离最近的N个待激活服务器的固态硬盘中,可选的,首先需要确定除热点数据块以外的其它节点的固态硬盘的可使用容量是否满足每一个子热点数据块的转移要求。例如,热点数据块的数据流为100MB,平均分为4个子热点数据块,每一个子热点数据块的数据量为25MB。需要确定除热点数据块以外的其它节点的固态硬盘的可使用容量大于25MB的可选服务器集,并从可选服务器集中确定距离最近的4个节点服务器为待激活服务器,将每个子热点数据块存储在确定距离最近的4个待激活服务器的固态硬盘中。

可选的,在本发明实施例中,当确定分布式存储系统空闲时,还需对数据块进行重新分布,分布的原则为节点服务器中的数据块数量尽量相同,而节点服务器的固态硬盘中的数据块的数量也需要尽量相同。

为了方便便于本领域技术人员的理解,在此举例说明。

如图2所示,在本发明实施例提供一种分布式存储系统中解决数据块访问热点的方法,其中,分布式存储系统为HBase,节点服务器为Region Server,数据块为Region,Region所属的激活服务器Region ServerA,Region所属的备份服务器为Region Server B以及Region Server C,固态硬盘为SSD,机械硬盘为HDD,且子热点数据块为热点数据块划分为两块后确定的,分别为region1以及region2,具体如下:

步骤201,实时统计HBase中的每个Region的每秒访问次数以及请求响应时间;

步骤202,针对每一个Region,判断Region是否为热点Region,在本发明实施例中,当确定Region的每秒访问次数大于热点访问次数阈值时或者请求响应时间大于热点响应时间阈值时,则确定Region为热点Region;若确定Region为热点Region,则执行步骤203,否则执行步骤204;

步骤203,确定热点Region所属的Region ServerA的SSD可使用容量是否大于热点Region的数据容量,若大于,则执行步骤205,否则执行步骤206;

步骤204,判断Region是否为冷点Region,在本发明实施例中,当确定Region的每秒访问次数小于冷点访问次数阈值时或者请求响应时间小于冷点响应时间阈值时,则确定为冷点点Region,若是,则执行步骤207;否则执行步骤201;

步骤205,将热点Region从Region ServerA的HDD中转移到Region ServerA的SSD中;

步骤206,确定Region所属的Region Server B或者Region Server C的SSD可使用容量是否大于热点Region的数据容量,若Region Server B或者Region Server C的SSD可使用容量任一个大于热点Region的数据容量,则执行步骤208,否则执行步骤209;在本发明实施例中,若Region Server B或者Region Server C的SSD可使用容量都大于热点Region的数据容量,则任选一个执行步骤208;

步骤207,确定冷点Region是否存储在冷点Region所属的Region ServerA的SSD中,若是,则执行步骤210;否则执行步骤201;

步骤208,将热点Region从Region Server B or C的HDD中转移到Region Server B or C的SSD中;

步骤209,确定其它Region Server中是否有满足Region Server的SSD可使用容量大于热点Region的数据容量,若有,则执行步骤211;否则执行步骤212;

步骤210,将冷点Region从冷点Region所属的Region Server A的SSD中转移到Region ServerA的HDD中;

步骤211,确定与热点Region所属的Region Server A、Region Server B以及Region Server C距离最近的Region Server,执行步骤213;

步骤212,确定与热点Region所属的Region Server A、Region Server B以及Region Server C距离最近的2个Region Server,执行步骤214;

步骤213,将热点Region复制到距离最近的Region Server的SSD中;

步骤214,将子热点region1以及region2复制到距离最近的2个Region Server中。

基于同样的构思,本发明实施例还提供一种分布式存储系统中解决数据块访问热点的装置,如图3所示,包括:

热点数据块确定单元301,用于确定所述分布式存储系统中存在热点数据块,且确定所述热点数据块所属的激活服务器和备份服务器;

转移单元302,用于当确定所述激活服务器可使用的固态硬盘容量不满足所述热点数据块的转移要求且所述备份服务器可使用的固态硬盘容量满足所述热点数据块的转移要求时,将所述备份服务器中的所述热点数据块从所述备份服务器的机械硬盘中转移到所述备份服务器的固态硬盘中并激活所述备份服务器中的所述热点数据块;

其中,所述分布式存储系统中存在多个节点服务器,每个数据块的数据分别存储在至少两个节点服务器中,所述至少两个节点服务器包括所述数据块的激活服务器以及所述数据块的备份服务器。

进一步地,所述转移单元302还用于:

当确定所述热点数据块所属的激活服务器可使用的固态硬盘容量满足所述热点数据块的转移要求时,则将所述激活服务器中的所述热点数据块从所述激活服务器的机械硬盘中转移到所述激活服务器的固态硬盘中。

进一步地,所述转移单元302,还用于:

若确定冷点数据块存放在所述冷点数据块所属的激活服务器的固态硬盘中,则将所述冷点数据块从所述激活服务器的固态硬盘转移到所述激活服务器的机械硬盘中。

进一步地,所述热点数据块确定单元301,具体用于:

实时统计所述分布式存储系统中每个数据块的每秒访问次数以及请求响应时间;

针对每个数据块,当确定所述数据块的每秒访问次数大于热点访问次数阈值时或者请求响应时间大于热点响应时间阈值时,则确定所述数据块为热点数据块;

针对每个数据块,当确定所述数据块的每秒的访问次数小于冷点访问次数阈值时或者请求响应时间小于冷点访问时间阈值时,则确定所述数据块为冷点数据块。

进一步地,所述装置还包括:

待激活服务器确定单元303,用于当确定所述热点数据块所属的激活服务器可使用的固态硬盘容量不满足所述热点数据块的转移要求且所述热点数据块所属的备份服务器可使用的固态硬盘容量也不满足所述热点数据块的转移要求时,则确定满足所述热点数据块的转移要求并且与所述热点数据块所属的节点服务器距离最近的节点服务器为所述热点数据块的待激活服务器;

复制单元304,用于将所述热点数据块复制到所述待激活服务器的固态硬盘中,并激活所述待激活服务器中的所述热点数据块。

进一步地,所述待激活服务器确定单元303具体用于:

确定除所述热点数据块所属的节点服务器外的所有节点服务器中满足所述所述热点数据块的转移要求的可选服务器集合,所述热点数据块所属的节点服务器包括所述热点数据块的激活服务器和所述热点数据块的备份服务器;

确定所述热点数据块所属的每一个节点服务器与所述可选服务器集合中的每一个节点服务器的距离;

将最短距离对应的所述可选服务集合中的节点服务器确定为所述热点数据块的待激活服务器。

进一步地,所述装置还包括:

拆分单元305,用于当确定所述分布式存储系统中所有节点服务器都不满足所述所述热点数据块的转移要求时,将所述热点数据块拆分成N个子热点数据块,其中N大于2;

所述待激活服务器确定单元303还用于:

确定所述热点数据块所属的每一个节点服务器与除所述热点数据块所属的节点服务器外的所有节点服务器的距离,并确定距离最近的N个节点服务器为待激活服务器;

所述复制单元304还用于:

将所述子热点数据块复制到所述待激活服务器中,并激活所述待激活服务器中的所述子热点数据块。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1