CN105808160B - 基于SSD的mpCache混合存储系统 - Google Patents
基于SSD的mpCache混合存储系统 Download PDFInfo
- Publication number
- CN105808160B CN105808160B CN201610102562.6A CN201610102562A CN105808160B CN 105808160 B CN105808160 B CN 105808160B CN 201610102562 A CN201610102562 A CN 201610102562A CN 105808160 B CN105808160 B CN 105808160B
- Authority
- CN
- China
- Prior art keywords
- mpcache
- data
- cache
- caching
- node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/068—Hybrid storage device
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于SSD的mpCache混合存储系统,包括:多个mpCache从节点,用于缓存输入数据;mpCache主节点,用于全局管理并协调多个mpCache从节点,以确保缓存在每个mpCache从节点的输入数据遵从All‑or‑Nothing的缓存原则。本发明实施例的混合存储系统,不仅为IO密集型任务提供高IO速度,同时也保证内存密集型任务的并行度,提升了MapReduce性能,简单易实现。
Description
技术领域
本发明涉及分布式计算技术领域,特别涉及一种基于SSD(Solid State Disk,固态硬盘)的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资源内存也是一种稀缺资源,比如说,众多的并行计算框架诸如Apache YARN会根据可用的CPU核数和内存来决定任务的并行度(Task Parallelism Degree,TPD,同时运行的子任务的数量),将数据缓存在内存中不可避免的会占用大量的内存空间从而降低任务的并行度。更进一步说,一些机器学习的算法(比如k-means和term-vector)是内存密集型的,运行这类算法将会消耗大量的内存,占用额外内存的内存缓存方法也将严重降低这类算法的并行度而使某些CPU核处于空闲状态。虽然说增加服务器内存可以缓解这种情况,但是任务的数据量增加得更快,而且如果也把成本考虑进去的话,通过内存缓存将不是一种经济的提供高速IO的方法。
第二类工作使用新型的高速存储介质替代HDD,其中目前最为流行的一种就是基于闪存的固态硬盘(Flash Memory Based Solid State Drive,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)记录当该数据集进入缓存后被访问次数,对每一个数据集均维护一个队列优先级值。
进一步地,在本发明的一个实施例中,当一个任务的数据集加入队列时,通过以下公式计算该数据集的Pr(jd):
Pr(jd)=Full+Clock+Fr(jd),
其中,Blocks_Access(jd)为数据集jd的所有数据块的访问量,Fr(jd)为数据集jd的访问频次,Full为当数据集所有的数据块都已缓存在缓存中时的加成值;Clock为从0开始的队列时钟值,并且当每次有数据集jd_evicted从缓存中被替换出去时,所述时钟值则更新为该数据集的队列优先值Pr(jd_evicted),Size(jd)为输入数据集jd的数据块数量。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为相关技术中输入数据时在不同CPU核数下的执行时间示意图;
图2为根据本发明实施例的基于SSD的mpCache混合存储系统的结构示意图;
图3为根据本发明一个实施例的不同并行度下的MapReduce任务执行过程示意图;
图4为根据本发明一个实施例的在Map输入数据和临时中间本地数据寻找平衡点以达到最优系能示意图;
图5为根据本发明一个实施例的mpCache与Hadoop和PACMan的任务执行时间对比示意图;以及
图6为根据本发明一个实施例的mpCache与LRU和LFU的性能比较示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
下面参照附图描述根据本发明实施例提出的基于SSD的mpCache混合存储系统。
图2是本发明实施例的基于SSD的mpCache混合存储系统的结构示意图。
如图2所示,该系统包括:多个mpCache从节点100(如图中mpCache从节点101、mpCache从节点102和mpCache从节点103所示)和mpCache主节点200。其中,每个mpCache从节点包括:动态空间调整器(如动态空间调整器1011、动态空间调整器1021、动态空间调整器1031所示)和缓存管理器(如缓存管理器1012、缓存管理器1022、缓存管理器1032所示),mpCache主节点包括:动态空间管理器201和替换仲裁202。
具体地,多个mpCache从节点100用于缓存输入数据。动态空间调整器用于调整缓存空间在输入缓存和本地数据缓存间的配比。缓存管理器用于管理缓存的数据块并且缓存新的数据。mpCache主节点200用于全局管理并协调多个mpCache从节点,以确保缓存在每个mpCache从节点的输入数据遵从All-or-Nothing的缓存原则。动态空间管理器201用于管理每个mpCache从节点收集动态缓存空间的分配信息,并且根据不同的任务类型和输入数据集大小进行记录。替换仲裁202用于根据缓存替换策略进行缓存替换。
在本发明的实施例中,考虑SSD硬盘不应该单纯地替代HDD硬盘,而应该作为一种增强HDD硬盘的附加存储介质,同时将存储介质的性能和价格考虑在内,因此,本发明实施例的系统作为一种高效支持MapReduce在众核集群上高可扩展性的基于SSD混合存储系统,mpCache采用主从结构,不仅为IO密集型任务提供高IO速度,同时也保证内存密集型任务的并行度,提升了MapReduce性能,针对MapReduce在众核集群上的扩展性能并不令人满意的这一问题,提出一个基于SSD的面向MapReduce的统一缓存系统,该系统缓存输入数据及本地数据来加速MapReduce中所有IO开销大的阶段—“读入”、“溢出”和“合并”,为了更加高效地利用所有缓存空间,本发明实施例的系统动态地调整整个空间在输入缓存和本地缓存之间的配比,对所有的节点进行统一管理并且使用针对MapReduce任务“All-or-Nothing”特性的缓存替换策略来更加良好支持MapReduce应用,下面将进行详细赘述。
在本发明的一个实施例中,多个mpCache从节点100分别位于每个HDFS的数据节点上,每个数据节点上的缓存管理器拦截从Map子任务发出的每个读取数据请求,以检查该数据块是否已在缓存中,其中,如果是,则从缓存中读取该数据块并将数据发送给相应的Map子任务并且向替换仲裁202发送该数据块的命中信息,并且如果该数据块不在缓存中,并且缓存区已没有足够的空间缓存该数据块,则向替换仲裁202发送替换请求,在得到替换仲裁202的反馈信息后,根据反馈信息对缓存中相应的数据块进行替换操作。
进一步地,在本发明的一个实施例中,当本地数据的大小超过本地缓存的大小时,动态空间调整器检查动态池中是否还有空闲空间,如果没有,则根据缓存替换策略从动态池中踢出已缓存的输入数据块,并将新的动态池空间分配给本地缓存,而当本地缓存的利用率低于预设值时,则将本地缓存占用的动态池中的空间全部回收。另外,预设值可以由本领域的技术人员根据实际情况进行设置。
也就是说,动态空间调整者把整个缓存空间划分为三部分—输入缓存、动态池和本地缓存。由于支持MapReduce运行的底层分布式文件系统(比如,GFS和HDFS)在存储数据层都是以数据块为单位进行存储,把动态池划分为块。当输入缓存已满时,空闲的动态池块被分配给输入缓存。在任务的执行过程中,动态空间调整者持续监控本地缓存的使用情况,当本地数据的大小超过本地缓存的大小时,动态空间调整者会检查动态池中是否还有空闲空间,如果没有,动态空间调整者则会使用缓存替换策略从动态池中踢出已缓存的输入数据块,并将新的动态池空间分配给本地缓存,而当本地缓存的利用率低于某个守护值时,动态空间调整者会降本地缓存占用的动态池中的空间全部回收
进一步地,在本发明的一个实施例中,缓存替换策略如下:通过准入控制策略来决定是否值得将新到的数据块缓存,并且通过辅助缓存存储不同任务的输入数据集标识;对于主缓存替换策略,对缓存内的每一个任务的输入数据集关联一个值Fr(jd)记录当该数据集进入缓存后被访问次数,对每一个数据集均维护一个队列优先级值。
具体而言,本发明实施例的系统使用准入控制策略来决定是否值得将新到的数据块缓存起来。由于不同任务的输入数据集大小不同,缓存某个任务的数据很有可能会替换已缓存的别的任务的数据,过于频繁的数据替换可能存储一些以后不会再被访问的数据从而导致缓存空间的浪费。准入控制策略可以使缓存替换策略的性能不会随着工作负载的变化而产生大的波动,从而使缓存性能更加稳定。
进一步地,本发明实施例的系统使用辅助缓存存储不同任务的输入数据集标识,对于辅助缓存中的每一个对象,同样也维护该对象的最后访问时间戳,既统计数据集访问次数同时也统计访问时间。缓存中数据集每次被访问时,对应辅助缓存中的访问计数器都会相应增加。由于在辅助缓存器中存储的只是输入数据集的标识而并非数据本身,因此与主缓存相比辅助缓存所需要的空间非常小,本发明实施例将辅助缓存存储在内存中并且使用LRU替换策略进行维护。
在本发明的一个实施例中,当一个任务的数据集加入队列时,通过以下公式计算该数据集的Pr(jd):
Pr(jd)=Full+Clock+Fr(jd),
其中,Blocks_Access(jd)为数据集jd的所有数据块的访问量,Fr(jd)为数据集jd的访问频次,Full为当数据集所有的数据块都已缓存在缓存中时的加成值;Clock为从0开始的队列时钟值,并且当每次有数据集jd_evicted从缓存中被替换出去时,时钟值则更新为该数据集的队列优先值Pr(jd_evicted),Size(jd)为输入数据集jd的数据块数量。
从公式可以看出,对于长时间没有访问的数据集,其优先值是根据旧(因此是小)的Clock值计算的,因此这些数据即便有比较高的访问次数也会被作为替换对象,本发明实施例使用这种“年龄”策略来避免“缓存污染”问题。To_Del是一个存放着<data_node,blocks_evicted>键值对的列表。在某些分布式文件系统中(比如,HDFS),元数据节点器无法主动和数据节点进行通信而只能通过回复数据节点的消息进行通信,因此,替换仲裁使用To_Del来存储每一个数据节点上已经被替换仲裁替换出却还没有通知相应缓存管理者的数据块。
下面对本发明实施例的系统的工作原理进行详细的介绍。
本发明在基于MapReduce模型,针对计算节点也是存储节点,底层数据分布决定上层任务分布,计算寻找存储的特点,设计了异构集群中支持MapReduce任务高效执行的分布式文件存储系统,提出了(1)数据分布优化任务调度技术,针对MapReduce计算模型中存储决定计算的特性,异构集群中计算效率低下的问题,通过底层数据的分布指导上层任务的调度,合理分布数据,避免计算能力与分布数据不匹配的问题;(2)计算能力感知数据分布技术,通过感知各节点计算能力,根据历史数据预测下一阶段节点计算能力,以预测的节点计算能力为基准,决定新任务的数据分布;(3)节点数据均衡技术,对于已分布数据,根据感知节点历史执行数据,在各节点进行负载均衡。
结合图3与图4所示,为了验证本发明提出的方法对众核集群MapReduce模型的支持效果,设计具有7个节点的实验环境,分别在传统Hadoop的HDFS分布式文件系统和本发明实施例的mpCache混合存储系统下运行13个测试用例。统计各个测试用例的执行时间进行比较。
各任务执行时间如图5所示,图中Hadoop表示传统Hadoop的HDFS分布式文件系统,mpCache表示采用本发明提出的混合存储系统,并且以传统Hadoop中用例的时间为基准进行了归一化,mpCache取得了相对于Hadoopx1.79倍的加速比。
图6显示了mpCache与传统缓存替换算法LFU、LRU的比较结果,结果显示mpCache比LFU和LRU均有更好的效果。
根据本发明实施例提出的基于SSD的mpCache混合存储系统,将MapReduce应有的输入数据和本地数据都进行了缓存以加速IO密集型的任务阶段,不仅对Map阶段进行了加速,对Reduce阶段也同样进行了加速,通过动态地调整缓存空间在输入缓存和本地缓存之间的配额来高效利用缓存空间以提供更好的性能,以及高效地对输入数据进行替换,将替换开销、数据集大小、访问频率、all-or-nothing特性均考虑在内来提供更好的性能,尤其适用于通用场景下支持MapReduce计算模型的混合存储系统,能够大大提高在众核集群中MapReduce计算任务的执行效率,显著加快任务的执行速度。
在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”、“顺时针”、“逆时针”、“轴向”、“径向”、“周向”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
在本发明中,除非另有明确的规定和限定,第一特征在第二特征“上”或“下”可以是第一和第二特征直接接触,或第一和第二特征通过中间媒介间接接触。而且,第一特征在第二特征“之上”、“上方”和“上面”可是第一特征在第二特征正上方或斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”可以是第一特征在第二特征正下方或斜下方,或仅仅表示第一特征水平高度小于第二特征。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (5)
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的mpCache混合存储系统,其特征在于,当所述本地数据的大小超过本地缓存的大小时,动态空间调整器检查动态池中是否还有空闲空间,如果没有,则根据所述缓存替换策略从所述动态池中踢出已缓存的输入数据块,并将新的动态池空间分配给本地缓存,而当所述本地缓存的利用率低于预设值时,则将所述本地缓存占用的动态池中的空间全部回收。
4.根据权利要求1所述的基于SSD的mpCache混合存储系统,其特征在于,所述缓存替换策略如下:
通过准入控制策略来决定是否值得将新到的数据块缓存,并且通过辅助缓存存储不同任务的输入数据集标识;
对于主缓存替换策略,对缓存内的每一个任务的输入数据集关联一个值Fr(jd)记录当该数据集进入缓存后被访问次数,对每一个数据集均维护一个队列优先级值。
5.根据权利要求4所述的基于SSD的mpCache混合存储系统,其特征在于,当一个任务的数据集加入队列时,通过以下公式计算该数据集的Pr(jd):
Pr(jd)=Full+Clock+Fr(jd),
其中,Blocks_Access(jd)为数据集jd的所有数据块的访问量,Fr(jd)为数据集jd的访问频次,Full为当数据集所有的数据块都已缓存在缓存中时的加成值;Clock为从0开始的队列时钟值,并且当每次有数据集jd_evicted从缓存中被替换出去时,所述时钟值则更新为该数据集的队列优先值Pr(jd_evicted),Size(jd)为输入数据集jd的数据块数量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610102562.6A CN105808160B (zh) | 2016-02-24 | 2016-02-24 | 基于SSD的mpCache混合存储系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610102562.6A CN105808160B (zh) | 2016-02-24 | 2016-02-24 | 基于SSD的mpCache混合存储系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105808160A CN105808160A (zh) | 2016-07-27 |
CN105808160B true CN105808160B (zh) | 2019-02-05 |
Family
ID=56466527
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610102562.6A Active CN105808160B (zh) | 2016-02-24 | 2016-02-24 | 基于SSD的mpCache混合存储系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105808160B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110020266B (zh) * | 2017-07-13 | 2021-12-14 | 深圳市Tcl高新技术开发有限公司 | 存取图片的方法、装置及计算机可读存储介质、终端设备 |
EP3759582B1 (en) | 2018-03-01 | 2024-05-01 | Micron Technology, Inc. | Performing operation on data blocks concurrently and based on performance rate of another operation on data blocks |
CN112463048B (zh) * | 2020-11-26 | 2022-08-30 | 新华三技术有限公司成都分公司 | 一种compact处理速度的调整方法、装置、电子设备和介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103685544A (zh) * | 2013-12-24 | 2014-03-26 | 华中科技大学 | 一种基于性能预估的客户端缓存分配方法和系统 |
CN104270412A (zh) * | 2014-06-24 | 2015-01-07 | 南京邮电大学 | 一种基于Hadoop分布式文件系统的三级缓存方法 |
CN105138679A (zh) * | 2015-09-14 | 2015-12-09 | 桂林电子科技大学 | 一种基于分布式缓存的数据处理系统及处理方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10353923B2 (en) * | 2014-04-24 | 2019-07-16 | Ebay Inc. | Hadoop OLAP engine |
-
2016
- 2016-02-24 CN CN201610102562.6A patent/CN105808160B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103685544A (zh) * | 2013-12-24 | 2014-03-26 | 华中科技大学 | 一种基于性能预估的客户端缓存分配方法和系统 |
CN104270412A (zh) * | 2014-06-24 | 2015-01-07 | 南京邮电大学 | 一种基于Hadoop分布式文件系统的三级缓存方法 |
CN105138679A (zh) * | 2015-09-14 | 2015-12-09 | 桂林电子科技大学 | 一种基于分布式缓存的数据处理系统及处理方法 |
Non-Patent Citations (1)
Title |
---|
支持高并发数据流处理的MapReduce中间结果缓存;亓开元,韩燕波;《计算机研究与发展》;20130402(第1期);111-121 |
Also Published As
Publication number | Publication date |
---|---|
CN105808160A (zh) | 2016-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Rasmussen et al. | {TritonSort}: A Balanced {Large-Scale} Sorting System | |
CN106502792B (zh) | 一种面向不同类型负载的多租户资源优化调度方法 | |
CN110120915A (zh) | 高性能计算的三级成本效益分解和具有在线扩展灵活性的高容量存储器 | |
CN103885728B (zh) | 一种基于固态盘的磁盘缓存系统 | |
WO2017206649A1 (zh) | 一种去中心化的分布式异构存储系统数据分布方法 | |
CN101556557B (zh) | 一种基于对象存储设备的对象文件组织方法 | |
KR101502896B1 (ko) | 맵 리듀스를 이용한 분산 메모리 클러스터 제어 장치 및 방법 | |
CN103366016B (zh) | 基于hdfs的电子文件集中存储及优化方法 | |
US11093410B2 (en) | Cache management method, storage system and computer program product | |
CN104407879B (zh) | 一种电网时序大数据并行加载方法 | |
CN110058932A (zh) | 一种用于数据流驱动计算的存储方法和存储系统 | |
CN105808160B (zh) | 基于SSD的mpCache混合存储系统 | |
Chockler et al. | Design and implementation of caching services in the cloud | |
CN109299056B (zh) | 一种基于分布式文件系统的数据同步方法和装置 | |
CN102163231A (zh) | 数据收集方法和装置 | |
CN102984280A (zh) | 针对社交类云存储网络应用的数据备份系统和方法 | |
US20170351620A1 (en) | Caching Framework for Big-Data Engines in the Cloud | |
CN103095788A (zh) | 一种基于网络拓扑的云资源调度策略 | |
Xu et al. | Rethink the storage of virtual machine images in clouds | |
CN104216988A (zh) | 分布式大数据的ssd磁盘和hdd磁盘混合存储方法 | |
CN106126434B (zh) | 中央处理器的缓存区的缓存行的替换方法及其装置 | |
CN113986830A (zh) | 一种面向分布式ct的云端数据管理和任务调度方法及系统 | |
CN104765572B (zh) | 一种节能的虚拟存储服务器系统及其调度方法 | |
CN113311994A (zh) | 一种基于高并发的数据缓存方法 | |
Zhao et al. | LS-AMS: An adaptive indexing structure for realtime search on microblogs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20191231 Address after: 9F Asia Pacific Road No. 705 Jiaxing Nanhu District of Zhejiang Province in 314006 Patentee after: Qinghua Changsanjiao Research Inst., Zhejiang Address before: 315105 Zhejiang city of Ningbo province Yinzhou District Qiming Road No. 818 building 14, No. 108 Patentee before: Innovation center of Yin Zhou Qinghua Changsanjiao Research Inst., Zhejiang |