基于SSD的mpCache混合存储系统技术方案

技术编号:13426477 阅读:79 留言:0更新日期:2016-07-29 14:49
本发明专利技术公开了一种基于SSD的mpCache混合存储系统,包括:多个mpCache从节点,用于缓存输入数据;mpCache主节点,用于全局管理并协调多个mpCache从节点,以确保缓存在每个mpCache从节点的输入数据遵从All‑or‑Nothing的缓存原则。本发明专利技术实施例的混合存储系统,不仅为IO密集型任务提供高IO速度,同时也保证内存密集型任务的并行度,提升了MapReduce性能,简单易实现。

【技术实现步骤摘要】
基于SSD的mpCache混合存储系统
本专利技术涉及分布式计算
,特别涉及一种基于SSD(SolidStateDisk,固态硬盘)的mpCache混合存储系统。
技术介绍
MapReduce为具有很强吸引力的处理大规模数据的编程模型,是运行一个并行运行于高性能集群计算环境中的分布式计算模型。在MapReduce模型中,Map阶段读入原始的输入数据并生成大量的中间key-value键值对,这些中间结果在Map阶段的末尾写入到磁盘中,在Shuffle阶段,这些中间结果又被从磁盘中读取然后发送到对应Reduce子任务执行的节点。而在整个任务的执行过程中,每次当内存缓存空间满了后就会将缓冲区中的临时数据写入到磁盘中。在MapReduce中,这些中间结果和临时数据都称之为本地数据。对于某些任务比如k-means和tera-sort,大量的本地数据写入到本地存储系统中,这些读写速度不够快的硬盘(HDD)通常会成为Map阶段和Reduce阶段的瓶颈。随着MapReduce集群节点数量的增长,MapReduce应用虽然可扩展性表现良好,但是当每个节点的CPU核数增加时,其性能改善甚微甚至没有变化。如图1所示,图中显示了self-join应用在一个有7个节点的集群上运行60GB的输入数据时在不同CPU核数下的执行时间,X轴为Hadoop使用的每台服务器的CPU核数,其中线条上标有加号的线表示Hadoop的执行时间,线条上有小正方形的线表示在理想环境下的执行时间(在理想环境中,如果忽略任务中的执行时间非常短的线性部分,那么任务的执行时间应该和CPU的核数成反比)。随着CPU核数的增加,加号线与正方形线之间的缺口越来越大,产生这一现象的根本原因是底层的低速存储系统(HDD,硬盘)无法满足MapReduce的频繁高速读写要求:在Map阶段,模型读入原始的输入数据生成大量的中间key-value键值对,并将中间结果写入到本地存储系统中;在Shuffle阶段,模型又一次从硬盘中读取中间结果并发送到对应Reduce子任务执行的节点上。不仅如此,在整个任务的执行过程中,当内存缓冲区满后临时数据都会写入到本地存储系统中。虽然当服务器有更多的CPU核数时任务的并行度相应增加了,但是MapReduce底层的存储系统IO速度并没有变化而无法满足高并发任务的IO需求,从而导致虽然CPU核数增加但是MapReduce性能没有变化的现象。不幸的是,在现代的数据中心中,越来越多的服务器都装备了大量的CPU核心(称之为众核)。消除IO瓶颈方向的研究工作大致可以分为两大类:第一类工作将应用的热点数据缓存在内存中,这类工作背后的理论依据是内存可以提供比硬盘快数个数量级的IO速度,只缓存热点数据是因为内存容量的限制。然而,在并行计算中除了CPU资源内存也是一种稀缺资源,比如说,众多的并行计算框架诸如ApacheYARN会根据可用的CPU核数和内存来决定任务的并行度(TaskParallelismDegree,TPD,同时运行的子任务的数量),将数据缓存在内存中不可避免的会占用大量的内存空间从而降低任务的并行度。更进一步说,一些机器学习的算法(比如k-means和term-vector)是内存密集型的,运行这类算法将会消耗大量的内存,占用额外内存的内存缓存方法也将严重降低这类算法的并行度而使某些CPU核处于空闲状态。虽然说增加服务器内存可以缓解这种情况,但是任务的数据量增加得更快,而且如果也把成本考虑进去的话,通过内存缓存将不是一种经济的提供高速IO的方法。第二类工作使用新型的高速存储介质替代HDD,其中目前最为流行的一种就是基于闪存的固态硬盘(FlashMemoryBasedSolidStateDrive,SSD)。由于SSD没有机械装置,因此与普通HDD硬盘相比具有更低的访问时间以及访问延迟,成为一种构建高性能存储系统的理想介质。然而,目前构建纯SSD的存储系统的昂贵价格仍然难以让普通数据中心接受,即使考虑到SSD价格的下降趋势,SSD的单GB价格在不久的将来仍难以达到普通HDD硬盘的价格。
技术实现思路
本专利技术旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本专利技术的目的在于提出一种基于SSD的mpCache混合存储系统,该系统可以有效地提升MapReduce性能,简单易实现。为达到上述目的,本专利技术实施例提出了一种基于SSD的mpCache混合存储系统,包括:多个mpCache从节点,用于缓存输入数据,其中,每个mpCache从节点包括:动态空间调整器,用于调整缓存空间在输入缓存和本地数据缓存间的配比;缓存管理器,用于管理缓存的数据块并且缓存新的数据;mpCache主节点,用于全局管理并协调所述多个mpCache从节点,以确保缓存在每个mpCache从节点的输入数据遵从All-or-Nothing的缓存原则,其中,所述mpCache主节点包括:动态空间管理器,用于管理所述每个mpCache从节点收集动态缓存空间的分配信息,并且根据不同的任务类型和输入数据集大小进行记录;替换仲裁,用于缓存替换的决策工作。本专利技术实施例的基于SSD的mpCache混合存储系统,通过缓存输入数据及本地数据,从而加速MapReduce中所有IO开销大的阶段—“读入”、“溢出”和“合并”,通过动态地调整整个空间在输入缓存和本地缓存之间的配比,更加高效地利用所有缓存空间,对所有的节点进行统一管理并且使用针对MapReduce任务“All-or-Nothing”特性的缓存替换策略来更加良好支持MapReduce应用,不仅为IO密集型任务提供高IO速度,同时也保证内存密集型任务的并行度,提升了MapReduce性能,简单易实现。另外,根据本专利技术上述实施例的基于SSD的mpCache混合存储系统还可以具有以下附加的技术特征:进一步地,在本专利技术的一个实施例中,所述多个mpCache从节点分别位于每个HDFS的数据节点上,所述每个数据节点上的缓存管理器拦截从Map子任务发出的每个读取数据请求,以检查该数据块是否已在缓存中,其中,如果是,则从缓存中读取该数据块并将数据发送给相应的Map子任务并且向所述替换仲裁发送该数据块的命中信息,并且如果该数据块不在缓存中,并且缓存区已没有足够的空间缓存该数据块,则向所述替换仲裁发送替换请求,在得到所述替换仲裁的反馈信息后,根据所述反馈信息对缓存中相应的数据块进行替换操作。进一步地,在本专利技术的一个实施例中,当所述本地数据的大小超过本地缓存的大小时,动态空间调整器检查动态池中是否还有空闲空间,如果没有,则根据所述缓存替换策略从所述动态池中踢出已缓存的输入数据块,并将新的动态池空间分配给本地缓存,而当所述本地缓存的利用率低于预设值时,则将所述本地缓存占用的动态池中的空间全部回收。进一步地,在本专利技术的一个实施例中,所述缓存替换策略如下:通过准入控制策略来决定是否值得将新到的数据块缓存,并且通过辅助缓存存储不同任务的输入数据集标识;对于主缓存替换策略,对缓存内的每一个任务的输入数据集关联一个值Fr(jd)记录当该数据集进入缓存后被访问次数,对每一个数据集均维护一个队列优先级值。进一步地,在本专利技术的一个实施例中,当一个任务的数据集加入队列时,通过以本文档来自技高网
...

【技术保护点】
一种基于SSD的mpCache混合存储系统,其特征在于,包括:多个mpCache从节点,用于缓存输入数据,其中,每个mpCache从节点包括:动态空间调整器,用于调整缓存空间在输入缓存和本地数据缓存间的配比;缓存管理器,用于管理缓存的数据块并且缓存新的数据;mpCache主节点,用于全局管理并协调所述多个mpCache从节点,以确保缓存在每个mpCache从节点的输入数据遵从All‑or‑Nothing的缓存原则,其中,所述mpCache主节点包括:动态空间管理器,用于管理所述每个mpCache从节点收集动态缓存空间的分配信息,并且根据不同的任务类型和输入数据集大小进行记录;替换仲裁,用于根据缓存替换策略进行缓存替换。

【技术特征摘要】
1.一种基于SSD的mpCache混合存储系统,其特征在于,包括:多个mpCache从节点,用于缓存输入数据,其中,每个mpCache从节点包括:动态空间调整器,用于调整缓存空间在输入缓存和本地数据缓存间的配比;缓存管理器,用于管理缓存的数据块并且缓存新的数据;mpCache主节点,用于全局管理并协调所述多个mpCache从节点,以确保缓存在每个mpCache从节点的输入数据遵从All-or-Nothing的缓存原则,其中,所述mpCache主节点包括:动态空间管理器,用于管理所述每个mpCache从节点收集动态缓存空间的分配信息,并且管理所述每个mpCache从节点对不同的任务类型和输入数据集大小进行记录;替换仲裁,用于根据缓存替换策略进行缓存替换。2.根据权利要求1所述的基于SSD的mpCache混合存储系统,其特征在于,所述多个mpCache从节点分别位于每个HDFS的数据节点上,所述每个数据节点上的缓存管理器拦截从Map子任务发出的每个读取数据请求,以检查该数据块是否已在缓存中,其中,如果是,则从缓存中读取该数据块并将数据发送给相应的Map子任务并且向所述替换仲裁发送该数据块的命中信息,并且如果该数据块不在缓存中,并且缓存区已没有足够的空间缓存该数据块,则向所述替换仲裁发送替换请求,在得到所述替换仲裁的反馈信息后,根据所述反馈信息对缓存中相应的数据块进行替换操作。3.根据权利要求2所述的基于SSD的...

【专利技术属性】
技术研发人员:姜进磊王博武永卫郑纬民
申请(专利权)人:鄞州浙江清华长三角研究院创新中心
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1