CN110162272A - 一种内存计算缓存管理方法及装置 - Google Patents

一种内存计算缓存管理方法及装置 Download PDF

Info

Publication number
CN110162272A
CN110162272A CN201910436377.4A CN201910436377A CN110162272A CN 110162272 A CN110162272 A CN 110162272A CN 201910436377 A CN201910436377 A CN 201910436377A CN 110162272 A CN110162272 A CN 110162272A
Authority
CN
China
Prior art keywords
data block
cost
memory
new data
importance
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.)
Granted
Application number
CN201910436377.4A
Other languages
English (en)
Other versions
CN110162272B (zh
Inventor
张海涛
赵正阳
马华东
耿欣
李奥星
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing University of Posts and Telecommunications
Original Assignee
Beijing University of Posts and Telecommunications
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing University of Posts and Telecommunications filed Critical Beijing University of Posts and Telecommunications
Priority to CN201910436377.4A priority Critical patent/CN110162272B/zh
Publication of CN110162272A publication Critical patent/CN110162272A/zh
Application granted granted Critical
Publication of CN110162272B publication Critical patent/CN110162272B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements

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)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例提供了一种内存计算缓存管理方法及装置,其中内存计算缓存管理方法包括:在存在新数据块需要缓存在内存中的情况下,获取数据块使用的成本,所述数据块包括:所述新数据块及所述内存中的原有数据块,所述成本至少包括:所述数据块的引用成本,该成本还包括:所述数据块的计算成本和/或所述数据块的存储成本;基于所述数据块使用的成本,确定所述数据块的重要性;在确定所述内存的剩余空间不足够缓存所述新数据块的情况下,将所述原有数据块中重要性最小的数据块逐出所述内存;选择所述新数据块中重要性最大的数据块,作为目标数据块;在确定所述剩余空间足够为所述目标数据块提供可用空间的情况下,将所述目标数据块缓存至所述内存。

Description

一种内存计算缓存管理方法及装置
技术领域
本发明涉及存储领域,特别是涉及一种内存计算缓存管理方法及装置。
背景技术
近年来,计算系统所需的内存数据不断增长,因此需要为内存数据计算技术提供更大的内存空间。目前内存数据处理框架广泛应用于机器学习、图计算和流式处理等应用。随机存取存储器(Random Access Memory,简称RAM)作为内存,由于RAM存取数据的速度分别比从硬盘和网络中存取数据的速度快几个数量级,因此内存数据处理框架执行应用的速度也有了大幅度的提高。然而,RAM较高的价格导致内存资源受到限制,只有部分数据能够被缓存到内存中,基于此,需要对内存计算缓存进行管理。
目前相关技术中可以以内存数据处理框架是Spark为例进行说明,实现内存计算缓存管理方法。其中,上述Spark是一个实现快速通用的集群计算平台。Spark是由加州大学伯克利分校算法,机器和人实验室(Algorithms,Machines and People Lab,简称AMP)开发的通用内存并行计算框架,用来构建大型的、低延迟的数据分析应用。当运行一个应用时,Spark会通过有向无环图(Directed Acyclic Graphs简称DAG)进行应用的调度。其中,DAG描述了弹性分布式数据集(Resilient Distributed Dataset,简称RDD)之间的依赖关系。
基于上述内容,相关技术提出了基于数据依赖的内存计算缓存管理方法,主要步骤说明如下:从DAG中提取应用语义信息,确定未来被访问的数据;将未来被访问数据中大于第一预设阈值访问次数的数据,确定为未来被更多访问的数据;将未来被访问数据中小于第二预设阈值访问次数的数据,确定为未来被较少访问的数据,第一预设阈值访问次数大于第二预设阈值访问次数;通过数据依赖的特性,将未来被更多次访问的数据提前缓存到内存中,内存还存在一些可访问的剩余存储空间,并将未来被较少访问的数据从内存中逐出到硬盘。
这种方式虽然实现了内存计算缓存管理,但上述内存计算缓存管理方法会存在如下问题:
上述未来被更多次访问的数据包含了体积较大的数据块,即较大数据块,由于未来被更多次访问的数据提前缓存到内存中,因此这些较大数据块会占用内存较大的缓存空间。而,未来被较少访问的数据包含了其他体积较小的数据块,即较小数据块,这些较小数据块存储在硬盘中,但是由于较小数据块的数量较多,所有较小数据块的体积之和大于较大数据块的体积。由于受到内存的容量限制,在需要计算时,需要将这些较小数据块,重新缓存到内存内,在计算完毕后,再从内存中逐出至硬盘,这样未来被较少访问的数据会被多次缓存及逐出内存,不仅会降低数据的命中率,而且会增加内存计算应用的运行时间。
发明内容
本发明实施例的目的在于提供一种内存计算缓存管理方法及装置,用以解决现有技术中未来被较少访问的数据会被多次缓存及逐出内存,不仅会降低数据的命中率,而且会增加内存计算应用的运行时间的技术问题。具体技术方案如下:
第一方面,本发明实施提供了内存计算缓存管理方法,包括:
在存在新数据块需要缓存在内存中的情况下,获取数据块使用的成本,所述数据块包括:所述新数据块及所述内存中的原有数据块,所述成本至少包括:所述数据块的引用成本,所述成本还包括:所述数据块的计算成本和/或所述数据块的存储成本,所述数据块的引用成本是指所述数据块被引用的频率,所述数据块的计算成本是指通过转换得到当前弹性分布式数据集RDD所需的计算代价,所述数据块的存储成本是指所述数据块从内存溢出到硬盘所需的成本;
基于所述数据块使用的成本,确定所述数据块的重要性;
在确定所述内存的剩余空间不足够缓存所述新数据块的情况下,将所述原有数据块中重要性最小的数据块逐出所述内存;
选择所述新数据块中重要性最大的数据块,作为目标数据块;
在确定所述剩余空间足够为所述目标数据块提供可用空间的情况下,将所述目标数据块缓存至所述内存。
进一步的,所述在存在新数据块需要缓存在内存中的情况下,获取数据块使用的成本,包括:
在确定存在新数据块需要缓存在内存中的情况下,获取包括原有数据块的成本的当前列表、所述新数据块的父RDD、所述新数据块的子RDD及所述新数据块的存储成本,所述原有数据块的成本包括:所述原有数据块的引用成本、所述原有数据块的计算成本及所述原有数据块的存储成本;
在确定所述新数据块的父RDD存在未处理的父RDD的情况下,根据不同依赖类型,累加所述新数据块的计算成本,利用累积后所述新数据块的计算成本,更新所述新数据块的计算成本;
在确定依赖所述新数据块的子RDD存在未处理的子RDD的情况下,根据不同依赖类型,累加所述新数据块的引用成本,利用累积后所述新数据块的引用成本,更新所述新数据块的引用成本。
进一步的,所述基于所述数据块使用的成本,确定所述数据块的重要性,包括:
将所述数据块的存储成本、更新后所述数据块的计算成本、更新后所述数据块的引用成本进行平均,得到所述数据块的块权重,作为所述数据块的重要性。
进一步的,位于在存在新数据块需要缓存在内存中的情况下,获取数据块使用的成本之后,所述方法还包括:
将所述新数据块的存储成本、更新后所述新数据块的计算成本及更新后所述新数据块的引用成本加入至所述当前列表中。
进一步的,所述在确定所述内存的剩余空间不足够缓存所述新数据块的情况下,将所述原有数据块中重要性最小的数据块逐出所述内存,包括:
基于所述数据块的重要性,利用预设权重与需替换数据块的预设替换概率关系,确定所述数据块的替换概率;
在确定所述内存的剩余空间不足够缓存所述新数据块的情况下,将所述原有数据中替换概率最大的数据块,作为原有数据块中重要性最小的数据块;
将所述原有数据块中重要性最小的数据块逐出所述内存。
进一步的,所述选择所述新数据块中重要性最大的数据块,作为目标数据块,包括:
将所述新数据块中替换概率最小的数据块,确定为所述新数据块中重要性最大的数据块;
将所述新数据块中重要性最大的数据块,作为目标数据块。
第二方面,本发明实施提供了内存计算缓存管理装置,包括:
获取模块,用于在存在新数据块需要缓存在内存中的情况下,获取数据块使用的成本,所述数据块包括:所述新数据块及所述内存中的原有数据块,所述成本至少包括:所述数据块的引用成本,所述成本还包括:所述数据块的计算成本和/或所述数据块的存储成本,所述数据块的引用成本是指所述数据块被引用的频率,所述数据块的计算成本是指通过转换得到当前弹性分布式数据集RDD所需的计算代价,所述数据块的存储成本是指所述数据块从内存溢出到硬盘所需的成本;
处理模块,用于基于所述数据块使用的成本,确定所述数据块的重要性;
第一控制模块,用于在确定所述内存的剩余空间不足够缓存所述新数据块的情况下,将所述原有数据块中重要性最小的数据块逐出所述内存;
选择模块,用于选择所述新数据块中重要性最大的数据块,作为目标数据块;
第二控制模块,用于在确定所述剩余空间足够为所述目标数据块提供可用空间的情况下,将所述目标数据块缓存至所述内存。
进一步的,所述获取模块,用于:
在确定存在新数据块需要缓存在内存中的情况下,获取包括原有数据块的成本的当前列表、所述新数据块的父RDD、所述新数据块的子RDD及所述新数据块的存储成本,所述原有数据块的成本包括:所述原有数据块的引用成本、所述原有数据块的计算成本及所述原有数据块的存储成本;
在确定所述新数据块的父RDD存在未处理的父RDD的情况下,根据不同依赖类型,累加所述新数据块的计算成本,利用累积后所述新数据块的计算成本,更新所述新数据块的计算成本;
在确定依赖所述新数据块的子RDD存在未处理的子RDD的情况下,根据不同依赖类型,累加所述新数据块的引用成本,利用累积后所述新数据块的引用成本,更新所述新数据块的引用成本。
进一步的,所述处理模块,用于:
将所述数据块的存储成本、更新后所述数据块的计算成本、更新后所述数据块的引用成本进行平均,得到所述数据块的块权重,作为所述数据块的重要性。
进一步的,所述第一控制模块,用于:
基于所述数据块的重要性,利用预设权重与需替换数据块的预设替换概率关系,确定所述数据块的替换概率;
在确定所述内存的剩余空间不足够缓存所述新数据块的情况下,将所述原有数据中替换概率最大的数据块,作为原有数据块中重要性最小的数据块;
将所述原有数据块中重要性最小的数据块逐出所述内存;
所述选择模块,用于:
将所述新数据块中替换概率最小的数据块,确定为所述新数据块中重要性最大的数据块;
将所述新数据块中重要性最大的数据块,作为目标数据块。
第三方面,本发明实施提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现第一方面所述的方法步骤。
第四方面,本发明实施提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面任一的方法。
本发明实施例提供的一种内存计算缓存管理方法及装置,数据块的引用成本是指数据块被引用的频率,这样可以提高数据块在内存中的命中率;数据块的计算成本是指通过转换得到RDD所需的代价,这样可以掌握数据块的计算量,和/或,数据块的存储成本是指将数据块从内存溢出到硬盘所需的成本,这样可以掌握数据块的数据量,并且,通过数据块使用的成本,确定数据块的重要性,然后,将原有数据中重要性较小的数据块逐出内存,将新数据块中重要性较大的数据块缓存至内存,这样相较于现有技术,减少了重要性较大的数据块被多次缓存及逐出内存,提高了重要性较大的数据块的命中率,节约了内存计算的运行时间。
当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的内存计算缓存管理方法的第一流程示意图;
图2为本发明实施例的获取数据块使用的成本的流程示意图;
图3为本发明实施例提供的内存计算缓存管理方法的第二流程示意图;
图4为本发明实施例提供的内存计算缓存管理装置的结构示意图;
图5为本发明实施例的内存计算缓存管理系统的结构示意图;
图6为本发明实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
针对现有技术的未来被较少访问的数据会被多次缓存及逐出内存,不仅会降低数据的命中率,而且会增加内存计算应用的运行时间的问题,本发明实施例提供一种内存计算缓存管理方法及装置,通过数据块使用的成本,确定数据块的重要性,然后,将原有数据中重要性较小的数据块逐出内存,将新数据块中重要性较大的数据块缓存至内存。由于数据块的引用成本是指数据块被引用的频率,这样可以提高数据块在内存中的命中率;数据块的计算成本是指通过转换得到RDD所需的代价,这样可以掌握数据块的计算量,和/或,数据块的存储成本是指将数据块从内存溢出到硬盘所需的成本,这样可以掌握数据块的数据量,这样相较于现有技术,减少了重要性较大的数据块被多次缓存及逐出内存,提高了重要性较大的数据块的命中率,节约了内存计算的运行时间。
下面首先对本发明实施例提供的内存计算缓存管理方法进行介绍。
本发明实施例所提供的一种内存计算缓存管理方法,应用于电子设备。具体的,该电子设备可以为:台式计算机、便携式计算机、智能移动终端、服务器等。在此不作限定,任何可以实现本发明的电子设备,均属于本发明的保护范围。
如图1所示,本发明实施例所提供的内存计算缓存管理方法,该方法可以包括如下步骤:
步骤110,在存在新数据块需要缓存在内存中的情况下,获取数据块使用的成本,数据块包括:新数据块及内存中的原有数据块,成本至少包括:数据块的引用成本,成本还包括:数据块的计算成本和/或数据块的存储成本,数据块的引用成本是指数据块被引用的频率,数据块的计算成本是指通过转换得到当前弹性分布式数据集RDD所需的计算代价,数据块的存储成本是指数据块从内存溢出到硬盘所需的成本。
其中,新数据块可以是指需要缓存在内存中的数据块,原有数据块可以是指已缓存在内存中的数据,这里的新数据块和原有数据块的命名是为了进行区分两种不同数据块。为了能够及时地确定存在新数据块需要缓存在内存中的情况,上述本步骤110可以采用如下步骤进行实现:
接收需要将数据块缓存在内存中的请求,则确定存在新数据块需要缓存在内存中的情况。这样系统可以在接收到请求之后,及时地执行本发明实施例内存计算缓存管理方法中的获取数据块使用的成本的步骤。
在确定存在新数据块需要缓存在内存中的情况下,通过包括原有数据块的成本的当前列表可以获取包括原有数据块的成本,并且实时计算新数据块的成本,如图2所示,本步骤110可以采用如下一种可能的实现方式获取数据块使用的成本:
步骤111,在确定存在新数据块需要缓存在内存中的情况下,获取包括原有数据块的成本的当前列表、新数据块的父RDD、新数据块的子RDD及新数据块的存储成本,原有数据块的成本包括:原有数据块的引用成本、原有数据块的计算成本及原有数据块的存储成本;
步骤112,判断新数据块的父RDD是否存在未处理的父RDD,若否,也就是确定新数据块的父RDD不存在未处理的父RDD,则执行步骤113;若是,也就是确定新数据块的父RDD存在未处理的父RDD,则执行步骤114;
步骤113,不计算新数据块的计算成本,这样说明不存在计算成本。
步骤114,根据不同依赖类型,累加新数据块的计算成本,利用累积后新数据块的计算成本,更新新数据块的计算成本。
其中,依赖类型可以包括:窄依赖和宽依赖。其中,由窄依赖连接的两个RDD,父RDD的每个分区只会被子RDD的一个分区使用至多一次;而由宽依赖连接的两个RDD,对于每个父RDD,会有多个子RDD的分区依赖于它。一般应用会记录RDD和这RDD依赖的RDD之间的依赖类型,同时记录每个依赖的块的大小。宽依赖的成本是窄依赖的成本的α倍。
本步骤114可以采用如下公式,累加新数据块的计算成本:
上述
其中,Cc(j)表示每一数据块的计算成本,n表示需替换数据块的依赖数量,本步骤114中需替换数据块为新数据块,k表示所有父依赖1,...,n中的第k个父依赖,S(k)表示每个依赖的父RDD中数据块的大小,α表示用来描述宽依赖和窄依赖成本差异的系数,α是一个整数,α的数值随着集群的规模变化,表示一个指示函数,中k的表示与上述相同,以下是的定义:
只有依赖k是宽依赖时,系数α才能对计算成本产生影响。
在上述114步骤之后,所述方法还可以包括:更新父RDD的访问状态,这样可以保留最新的父RDD,方便后期使用。
步骤115,判断依赖新数据块的子RDD是否存在未处理的子RDD,若否,也就是确定依赖新数据块的子RDD不存在未处理的子RDD,则执行步骤116;若是,也就是确定依赖新数据块的子RDD存在未处理的子RDD,则执行步骤117;
步骤116,不计算新数据块的引用成本,这样说明不存在引用成本。
步骤117,根据不同依赖类型,累加新数据块的引用成本,利用累积后新数据块的引用成本,更新新数据块的引用成本;这样可以实时获得新数据块的成本。
本步骤117可以采用如下公式,累加新数据块的引用成本:
上述
其中,Cr(k)表示每一数据块的引用成本,与计算成本中的相同符号的定义是一样的,然而,m表示用来计算需替换数据块的子RDD中数据块的依赖数量,本步骤117中需替换数据块为新数据块。
对于上述步骤115还可以在步骤112之前,此处仅仅是以步骤112在前进行举例说明,在此不再赘述。
在上述117步骤之后,所述方法还可以包括:更新子RDD的访问状态,这样可以保留最新的子RDD,方便后期使用。
在一种可能的实现方式中,在步骤110之后,所述方法还包括:
将新数据块的存储成本、更新后新数据块的计算成本及更新后新数据块的引用成本加入至当前列表中。这样可以后期可以通过当前列表,实时获得新数据块的成本。新数据块的存储成本可以是直接按照需替换数据块的大小确定,本步骤中的需替换数据块为新数据块。
对于原有数据块而言,原有数据块使用的成本的获取步骤与新数据块的获取步骤相同,上述步骤111中可以采用如下第1步至第7步,获取包括原有数据块的成本的当前列表:
第1步,判断原有数据块的父RDD是否存在未处理的父RDD,若否,也就是确定原有数据块的父RDD不存在未处理的父RDD,则执行步骤123;若是,也就是确定原有数据块的父RDD存在未处理的父RDD,则执行步骤114;
第2步,不计算原有数据块的计算成本,这样说明不存在计算成本。
第3步,根据不同依赖类型,累加原有数据块的计算成本,利用累积后原有数据块的计算成本,更新原有数据块的计算成本。
上述第3步的依赖类型和上述步骤114中的依赖类型相同,在此不再赘述。并且,上述第3步可以采用与上述步骤114相同的求解Cc(i)公式,累加原有数据块的计算成本,两个步骤的区别在于,第3步在使用求解Cc(i)公式中需替换数据块为原有数据块,而上述步骤114中求解Cc(i)公式需替换数据块为新数据块。
第4步,判断依赖原有数据块的子RDD是否存在未处理的子RDD,若否,也就是确定依赖原有数据块的子RDD不存在未处理的子RDD,则执行第5步;若是,也就是确定依赖原有数据块的子RDD存在未处理的子RDD,则执行第6步;
第5步,不计算原有数据块的引用成本,这样说明不存在引用成本。
第6步,根据不同依赖类型,累加原有数据块的引用成本,利用累积后原有数据块的引用成本,更新原有数据块的引用成本。
上述第6步的依赖类型和上述步骤117中的依赖类型相同,在此不再赘述。并且,上述第6步可以采用与上述步骤117相同的求解Cr(i)公式,累加原有数据块的计算成本,两个步骤的区别在于,第6步在使用求解Cr(i)公式中需替换数据块为原有数据块,而上述步骤117中求解Cr(i)公式需替换数据块为新数据块。
第7步,将原有数据块的存储成本、更新后原有数据块的计算成本及更新后原有数据块的引用成本更新至当前列表中。这样可以通过当前列表获取原有数据块的成本。
原有数据块的存储成本可以是直接按照需替换数据块的大小确定,上述第7步的需替换数据块为原有数据块。
对于本步骤110中的数据块的引用成本而言,数据块的引用成本是指数据块被引用的频率,说明了这些数据块在内存中的命中率,一般数据块被引用的频率越高,若存在内存中,则命中率越高,因此,数据块的引用成本越大,则数据块在内存中的被引用的频率越大,这样说明数据块在内存中的被命中的概率越大。
对于本步骤110中的数据块的计算成本而言,一般数据块的计算成本越大,则说明缓存计算相对困难,这样数据块的缓存计算会影响缓存的运行时间,也会增加系统的负担,因此数据块的计算成本越大,则数据块对缓存的运行时间的影响也会越大。
对于本步骤110中的数据块的存储成本而言,存储成本只受数据块大小的影响,当存储内存不足时,应用会将RDD逐出缓存并溢出到硬盘中。当这个RDD需要再次被使用时,应用会将RDD从硬盘中取回内存。数据块的存储成本越大,则说明数据块已经占据了较大的缓存,若这些数据块被多次缓存及逐出内存,则无疑增加了系统的负担,也影响系统的运行时间以及缓存的运行时间,因此,数据块的存储成本越大,则数据块对缓存的运行时间的影响也会越大。
故,本发明实施例可以从数据块的引用成本考虑,以及从数据块的计算成本和/或数据块的存储成本考虑等多个方面考虑,确定数据块的重要性,即,引用成本较大的数据块,则数据块的重要性较大,计算成本较大的数据块,则数据块的重要性较大;存储成本较大的数据块,则数据块的重要性较大;从而不仅可以提高数据块的命中率,而且能够有效避免计算复杂的数据块的重新计算,降低了任务的运行时间,可以节约缓存的运行时间。
步骤120,基于数据块使用的成本,确定数据块的重要性。
本步骤120中,一般数据块使用的成本越大,则数据块的重要性越大,因为对于数据块而言,已经使用了较大的成本,若忽略使用了较大的成本的数据块,那下次还需要重新使用这些数据块时,还需要再使用较大的成本,这样无疑增加了系统的负担以及缓存的运行时间,故,本发明实施例考虑需要数据块使用的成本越大,则数据块的重要性越大。
本步骤120中可以采用至少如下一种可能的实现方式,基于数据块使用的成本,确定数据块的重要性:
在一种可能的实现方式中,将数据块的存储成本、更新后数据块的计算成本、更新后数据块的引用成本进行平均,得到数据块的块权重,作为数据块的重要性。这样使用每个数据块的块权重,描述内存中一个数据块在分布式内存计算作业中的价值,价值越高,被逐出内存的概率就越小,块权重多方面考虑了成本因素,能提高内存的利用率。相较于现有技术使用数据块依赖性被逐出内存,但是实际上价值很大,可能还会被再次用,那么数据块被逐出再被缓存,本发明实施例按照重要性将这些数据块缓存在内存中,就不需要这些数据块被逐出再被缓存,相当于减少了内存的命中率,增加了处理的负担。
具体的,在数据块为新数据块时,将更新后所述新数据块的计算成本、更新后所述新数据块的引用成本及所述新数据块的存储成本进行加权平均或平均,得到所述新数据块的块权重,作为所述新数据块的重要性。在数据块为原有数据块时,将更新后所述原有数据块的计算成本、更新后所述原有数据块的引用成本及所述原有数据块的存储成本进行加权平均或平均,得到所述原有数据块的块权重,作为所述原有数据块的重要性。
其中,此处的平均可以是指加权平均,也可以是其他平均,只要能够计算数据块的块权重的平均,均属于本发明实施例的保护范围。
在本步骤120之后,所述方法还包括:将所有数据块的重要性,形成重要性列表;或者获取包括原有数据块的重要性的重要性列表,将新数据块的重要性,加入至重要性列表,这样可以重要性列表可以记录所有数据块的重要性,方便从重要性列表中直接获取所需数据块的重要性。
步骤130,在确定内存的剩余空间不足够缓存新数据块的情况下,将原有数据块中重要性最小的数据块逐出内存。
本步骤130中,内存的剩余空间的获取方式可以是通过实时监控得到的。这样方便实时确定内存的剩余空间是否足够缓存新数据块。为了能够准确且及时地管理内存,在确定所述内存的剩余空间不足够缓存所述新数据块的情况下,如图3所示,上述步骤130可以采用如下步骤,将所述原有数据块中重要性最小的数据块逐出所述内存:
步骤131,基于数据块的重要性,利用预设权重与需替换数据块的预设替换概率关系,确定数据块的替换概率。
其中,需替换数据块包括:需要缓存在内存中的新数据块及需要逐出内存的原有数据块,需要缓存在内存中的新数据块及需要逐出内存的原有数据块均包含于数据块。预设权重与数据块需替换的预设替换概率关系可以是预设权重与需替换的数据块的预设替换概率一一对应关系,这些一一对应关系可以是列表关系,也可以函数关系,比如倒数关系,任何可以实现本发明实施例的预设权重与需替换的数据块的预设替换概率均属于本发明实施例的保护范围。其中预设权重可以是基于计算成本、引用成本及存储成本得到的,预设替换概率可以是根据用户需求设置的。进一步的,假定基于替换概率的缓存和逐出内存的行为,也就是置换策略的行为,仅取决于内存中数据块的块权重,并且独立于过去。n表示缓存中所有数据块的总数量,令1,…,n每个序号可以分别代表缓存中所有数据块中每个数据块,而一个不在内存中的需替换数据块,即新数据块请求进入缓存。本发明实施例的预设权重与数据块需替换的预设替换概率关系举例如下:
其中,pi表示数据块需替换的预设替换概率,i表示需替换数据块,w(i)表示需替换数据块的块权重,C表示成本,Cc(i)表示需替换数据块的计算成本,Cr(i)表示需替换数据块的引用成本,Cs(i)表示需替换数据块的存储成本,Cc(i)中c,Cr(i)中r与Cs(i)中s分别用于区分不同成本,Cc(j)表示每一数据块的计算成本,Cr(k)表示每一数据块的引用成本,Cs(l)表示每一数据块的存储成本,q,k,l分别表示每个数据块的计算成本、引用成本、存储成本的索引,n表示缓存中所有数据块的总数量,w(j)表示计算预设替换概率的分母时的第j个权重,w(j)中的j表示计算预设替换概率的分母时权重的序号。w(i)的公式中分母是所有缓存中原有数据块和新数据块的使用的成本之和。分子是需替换的数据块的成本。
上述
其中,n表示需替换数据块的依赖数量,k表示所有父依赖1,...,N中的第k个父依赖,N表示父依赖的数量,S(k)表示每个依赖的父RDD中数据块的大小,α表示用来描述宽依赖和窄依赖成本差异的系数,α是一个整数,α的数值随着集群的规模变化,表示一个指示函数,中k的表示与上述相同,以下是的定义:
只有依赖k是宽依赖时,系数α才能对计算成本产生影响。
上述
其中,与计算成本中的相同符号的定义是一样的,然而,m表示用来计算需替换数据块的子RDD中数据块的依赖数量。
上述Cs(i)=s(i)
其中,s(i)是需替换数据块的大小,s(i)反映了将这个数据块从硬盘中取回内存或者从内存溢出到硬盘所需要的代价。
这样上述预设替换概率是实现本发明实施例的内存计算缓存管理方法的基础,它不同于传统的最近最少使用(Least Recently Used,简称LRU)替换策略会返回一个确定的逐出数据块的序列。基于替换概率的缓存策略中,每个数据块都有机会被逐出。这样可以基于数据块的重要性,确定数据块的逐出及缓存。
本发明利用基于替换概率的内存计算缓存管理方法代替传统基于单一数据依赖感知的内存计算缓存管理方法,综合考虑数据块的计算成本、引用成本及存储成本等多因素对数据块权重的影响,相对于当前单一基于数据依赖感知的内存计算缓存管理方法,提升了数据块在内存中的命中率并减少了缓存的运行时间,同时实现了缓存容量动态变化下的内存计算缓存管理方法,有利于节约缓存资源,进一步降低计算的延迟。
本步骤131中的数据块的重要性可以采用如下方式获取:
将所有数据块的重要性,形成重要性列表;从重要性列表中获取数据块的重要性,也可以是步骤110至步骤120计算得到的重要性。这样可以通过多种方式获取数据块的重要性。
步骤132,判断内存的剩余空间是否足够缓存新数据块,若否,也就是确定内存的剩余空间不足够缓存新数据块,则执行步骤133;若是,也就是确定内存的剩余空间足够缓存新数据块,则执行步骤134;
步骤133,将原有数据中替换概率最大的数据块,作为原有数据块中重要性最小的数据块。
此步骤133可以采用如下步骤,确定原有数据块中重要性最小的数据块:将原有数据的替换概率由大到小排序,确定第一位的数据块为原有数据块中重要性最小的数据块。
步骤134,将新数据块缓存至内存。
步骤135,将原有数据块中重要性最小的数据块逐出内存。
步骤140,选择新数据块中重要性最大的数据块,作为目标数据块。
如图3所示,本步骤140可以采用如下步骤,选择新数据块中重要性最大的数据块,作为目标数据块:
步骤141,将新数据块中替换概率最小的数据块,确定为新数据块中重要性最大的数据块;步骤142,将新数据块中重要性最大的数据块,作为目标数据块。这样可以基于置换概率,完成选择目标数据块及原有数据块中重要性最小的数据块。
此步骤140可以采用如下步骤,确定新数据块中重要性最大的数据块:将新数据的替换概率由小到大排序,确定第一位的数据块为新数据块中重要性最大的数据块。
在本步骤140之后,方法还包括:获取预取列表,将目标数据块加入至预取列表,这样方便后期直接从预取列表中获取目标数据块。
步骤150,在确定剩余空间足够为目标数据块提供可用空间的情况下,将目标数据块缓存至内存。
由于剩余空间为内存的总空间减去内存已占用的空间,这些剩余空间中的所有的空间,可能并不都能够被其他目标数据块用,对于剩余空间中能够被其他目标数据块使用的空间,称为可用空间。
如图3所示,本步骤150可以采用如下步骤,在确定剩余空间足够为目标数据块提供可用空间的情况下,将目标数据块缓存至内存:
步骤151,判断剩余空间是否足够为目标数据块提供可用空间,若否,也就是确定剩余空间不足够为目标数据块提供可用空间,则执行步骤152;若是,也就是确定剩余空间足够为目标数据块提供可用空间,则执行步骤153。
步骤152,结束流程;
步骤153,将目标数据块缓存至内存。
本发明实施例中,数据块的引用成本是指数据块被引用的频率,这样可以提高数据块在内存中的命中率;数据块的计算成本是指通过转换得到RDD所需的代价,这样可以掌握数据块的计算量,和/或,数据块的存储成本是指将数据块从内存溢出到硬盘所需的成本,这样可以掌握数据块的数据量,并且,通过数据块使用的成本,确定数据块的重要性,然后,将原有数据中重要性较小的数据块逐出内存,将新数据块中重要性较大的数据块缓存至内存,这样相较于现有技术,减少了重要性较大的数据块被多次缓存及逐出内存,提高了重要性较大的数据块的命中率,节约了内存计算的运行时间。
下面继续对本发明实施例提供的内存计算缓存管理装置进行介绍。
如图4所示,本发明实施例还提供一种内存计算缓存管理装置,包括:
获取模块11,用于在存在新数据块需要缓存在内存中的情况下,获取数据块使用的成本,所述数据块包括:所述新数据块及所述内存中的原有数据块,所述成本至少包括:所述数据块的引用成本,所述成本还包括:所述数据块的计算成本和/或所述数据块的存储成本,所述数据块的引用成本是指所述数据块被引用的频率,所述数据块的计算成本是指通过转换得到当前弹性分布式数据集RDD所需的计算代价,所述数据块的存储成本是指所述数据块从内存溢出到硬盘所需的成本;
处理模块12,用于基于所述数据块使用的成本,确定所述数据块的重要性;
第一控制模块13,用于在确定所述内存的剩余空间不足够缓存所述新数据块的情况下,将所述原有数据块中重要性最小的数据块逐出所述内存;
选择模块14,用于选择所述新数据块中重要性最大的数据块,作为目标数据块;
第二控制模块15,用于在确定所述剩余空间足够为所述目标数据块提供可用空间的情况下,将所述目标数据块缓存至所述内存。
本发明实施例中,数据块的引用成本是指数据块被引用的频率,这样可以提高数据块在内存中的命中率;数据块的计算成本是指通过转换得到RDD所需的代价,这样可以掌握数据块的计算量,和/或,数据块的存储成本是指将数据块从内存溢出到硬盘所需的成本,这样可以掌握数据块的数据量,并且,通过数据块使用的成本,确定数据块的重要性,然后,将原有数据中重要性较小的数据块逐出内存,将新数据块中重要性较大的数据块缓存至内存,这样相较于现有技术,减少了重要性较大的数据块被多次缓存及逐出内存,提高了重要性较大的数据块的命中率,节约了内存计算的运行时间。
在一种可能的实现方式中,所述获取模块,用于:
在确定存在新数据块需要缓存在内存中的情况下,获取包括原有数据块的成本的当前列表、所述新数据块的父RDD、所述新数据块的子RDD及所述新数据块的存储成本,所述原有数据块的成本包括:所述原有数据块的引用成本、所述原有数据块的计算成本及所述原有数据块的存储成本;
在确定所述新数据块的父RDD存在未处理的父RDD的情况下,根据不同依赖类型,累加所述新数据块的计算成本,利用累积后所述新数据块的计算成本,更新所述新数据块的计算成本;
在确定依赖所述新数据块的子RDD存在未处理的子RDD的情况下,根据不同依赖类型,累加所述新数据块的引用成本,利用累积后所述新数据块的引用成本,更新所述新数据块的引用成本。
在一种可能的实现方式中,所述处理模块,用于:
将所述数据块的存储成本、更新后所述数据块的计算成本、更新后所述数据块的引用成本进行平均,得到所述数据块的块权重,作为所述数据块的重要性。
在一种可能的实现方式中,所述装置还包括:
添加模块,用于位于在存在新数据块需要缓存在内存中的情况下,获取数据块使用的成本之后,将所述新数据块的存储成本、更新后所述新数据块的计算成本及更新后所述新数据块的引用成本加入至所述当前列表中。
在一种可能的实现方式中,所述第一控制模块,用于:
基于所述数据块的重要性,利用预设权重与需替换数据块的预设替换概率关系,确定所述数据块的替换概率;
在确定所述内存的剩余空间不足够缓存所述新数据块的情况下,将所述原有数据中替换概率最大的数据块,作为原有数据块中重要性最小的数据块;
将所述原有数据块中重要性最小的数据块逐出所述内存。
在一种可能的实现方式中,所述选择模块,用于:
将所述新数据块中替换概率最小的数据块,确定为所述新数据块中重要性最大的数据块;
将所述新数据块中重要性最大的数据块,作为目标数据块。
如图5所示,本发明实施例提供了一种内存计算缓存管理系统构架,这个系统构架主要有四个部分帮助实现了本发明实施例的内存计算缓存管理方法。
上述四部分分别包括:有向无环图读取器22DAGReader、属性管理器23StatManager、成本监控器26CostMonitor及区块重量管理器24BlockWeightManager。以下分别对每一部分进行详细介绍:
1、DAGReader这个组件在应用提交时进行实例化。Spark中的有向无环图调度程序21DAGScheduler生成任务的DAG,其中,DAGScheduler用于有向无环图负责划分为不同阶段;DAGReader接收DAG信息并分析DAG中每个RDD的依赖关系。然后,将引用关系和依赖类型传递给BlockWeightManager进行进一步的计算。
2、StatManager这个组件负责每一时刻从CostMonitor获取成本统计信息。下一步将这些统计信息进行汇总并转换为易于处理的格式。最后,经过转换的成本信息会被传递到BlockWeightManager来获取每一个RDD的块权重。
3、BlockWeightManager这个组件会频繁地进行实例化,原因是每当由一个RDD到达时,由BlockWeightManager维护的一个块权重列表就会要求更新。该模块实现了内存计算缓存管理方法的主要逻辑。它分别从DAGReader和StatManager接收依赖信息和在存在新数据块需要缓存在内存中的情况下,获取数据块使用的成本。然后利用依赖信息和在存在新数据块需要缓存在内存中的情况下,获取数据块使用的成本,计算每个RDD的块权重。最后,计算结果是数据块的替换概率的列表,这个列表提供每个数据块被逐出或缓存的概率,这个列表由此Block Weight Manager模块传递给集群中统一进行数据块相关操作的主节点的区域管理控制器25BlockManagerMaster,并由BlockManagerMaster根据替换概率进行数据块的逐出或缓存至内存。
4、CostMonitor这个组件被部署到每个工作节点,它负责监控每个工作节点的区域管理器27BlockManager上数据块的成本,并每隔一段时间就将成本传递给StatManager。而每个工作节点的管理模块也可以从CostMonitor模块获取内存28的使用情况的各项指标。
下面继续对本发明实施例提供的电子设备进行介绍。
本发明实施例还提供了一种电子设备,如图6所示,包括处理器31、通信接口32、存储器33和通信总线34,其中,处理器31,通信接口32,存储器33通过通信总线34完成相互间的通信,
存储器33,用于存放计算机程序;
处理器31,用于执行存储器33上所存放的程序时,实现如下步骤:
在存在新数据块需要缓存在内存中的情况下,获取数据块使用的成本,所述数据块包括:所述新数据块及所述内存中的原有数据块,所述成本至少包括:所述数据块的引用成本,所述成本还包括:所述数据块的计算成本和/或所述数据块的存储成本,所述数据块的引用成本是指所述数据块被引用的频率,所述数据块的计算成本是指通过转换得到当前弹性分布式数据集RDD所需的计算代价,所述数据块的存储成本是指所述数据块从内存溢出到硬盘所需的成本;
基于所述数据块使用的成本,确定所述数据块的重要性;
在确定所述内存的剩余空间不足够缓存所述新数据块的情况下,将所述原有数据块中重要性最小的数据块逐出所述内存;
选择所述新数据块中重要性最大的数据块,作为目标数据块;
在确定所述剩余空间足够为所述目标数据块提供可用空间的情况下,将所述目标数据块缓存至所述内存。
上述电子设备提到的通信总线可以是PCI(Peripheral ComponentInterconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括RAM(Random Access Memory,随机存取存储器),也可以包括NVM(Non-Volatile Memory,非易失性存储器),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括CPU(Central Processing Unit,中央处理器)、NP(Network Processor,网络处理器)等;还可以是DSP(Digital Signal Processing,数字信号处理器)、ASIC(Application Specific Integrated Circuit,专用集成电路)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本发明实施例提供了一种计算机可读存储介质,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述的内存计算缓存管理方法的步骤。
本发明实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述的内存计算缓存管理方法的步骤。
本发明实施例提供了一种计算机程序,当其在计算机上运行时,使得计算机执行上述的内存计算缓存管理方法的步骤。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相如即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置/服务器/电子设备/存储介质/包含指令的计算机程序产品/计算机程序实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处如方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (10)

1.一种内存计算缓存管理方法,其特征在于,包括:
在存在新数据块需要缓存在内存中的情况下,获取数据块使用的成本,所述数据块包括:所述新数据块及所述内存中的原有数据块,所述成本至少包括:所述数据块的引用成本,所述成本还包括:所述数据块的计算成本和/或所述数据块的存储成本,所述数据块的引用成本是指所述数据块被引用的频率,所述数据块的计算成本是指通过转换得到当前弹性分布式数据集RDD所需的计算代价,所述数据块的存储成本是指所述数据块从内存溢出到硬盘所需的成本;
基于所述数据块使用的成本,确定所述数据块的重要性;
在确定所述内存的剩余空间不足够缓存所述新数据块的情况下,将所述原有数据块中重要性最小的数据块逐出所述内存;
选择所述新数据块中重要性最大的数据块,作为目标数据块;
在确定所述剩余空间足够为所述目标数据块提供可用空间的情况下,将所述目标数据块缓存至所述内存。
2.如权利要求1所述的方法,其特征在于,所述在存在新数据块需要缓存在内存中的情况下,获取数据块使用的成本,包括:
在确定存在新数据块需要缓存在内存中的情况下,获取包括原有数据块的成本的当前列表、所述新数据块的父RDD、所述新数据块的子RDD及所述新数据块的存储成本,所述原有数据块的成本包括:所述原有数据块的引用成本、所述原有数据块的计算成本及所述原有数据块的存储成本;
在确定所述新数据块的父RDD存在未处理的父RDD的情况下,根据不同依赖类型,累加所述新数据块的计算成本,利用累积后所述新数据块的计算成本,更新所述新数据块的计算成本;
在确定依赖所述新数据块的子RDD存在未处理的子RDD的情况下,根据不同依赖类型,累加所述新数据块的引用成本,利用累积后所述新数据块的引用成本,更新所述新数据块的引用成本。
3.如权利要求1所述的方法,其特征在于,所述基于所述数据块使用的成本,确定所述数据块的重要性,包括:
将所述数据块的存储成本、更新后所述数据块的计算成本、更新后所述数据块的引用成本进行平均,得到所述数据块的块权重,作为所述数据块的重要性。
4.如权利要求2或3所述的方法,其特征在于,位于在存在新数据块需要缓存在内存中的情况下,获取数据块使用的成本之后,所述方法还包括:
将所述新数据块的存储成本、更新后所述新数据块的计算成本及更新后所述新数据块的引用成本加入至所述当前列表中。
5.如权利要求1至3任一项所述的方法,其特征在于,所述在确定所述内存的剩余空间不足够缓存所述新数据块的情况下,将所述原有数据块中重要性最小的数据块逐出所述内存,包括:
基于所述数据块的重要性,利用预设权重与需替换数据块的预设替换概率关系,确定所述数据块的替换概率;
在确定所述内存的剩余空间不足够缓存所述新数据块的情况下,将所述原有数据中替换概率最大的数据块,作为原有数据块中重要性最小的数据块;
将所述原有数据块中重要性最小的数据块逐出所述内存。
6.如权利要求5所述的方法,其特征在于,所述选择所述新数据块中重要性最大的数据块,作为目标数据块,包括:
将所述新数据块中替换概率最小的数据块,确定为所述新数据块中重要性最大的数据块;
将所述新数据块中重要性最大的数据块,作为目标数据块。
7.一种内存计算缓存管理装置,其特征在于,包括:
获取模块,用于在存在新数据块需要缓存在内存中的情况下,获取数据块使用的成本,所述数据块包括:所述新数据块及所述内存中的原有数据块,所述成本至少包括:所述数据块的引用成本,所述成本还包括:所述数据块的计算成本和/或所述数据块的存储成本,所述数据块的引用成本是指所述数据块被引用的频率,所述数据块的计算成本是指通过转换得到当前弹性分布式数据集RDD所需的计算代价,所述数据块的存储成本是指所述数据块从内存溢出到硬盘所需的成本;
处理模块,用于基于所述数据块使用的成本,确定所述数据块的重要性;
第一控制模块,用于在确定所述内存的剩余空间不足够缓存所述新数据块的情况下,将所述原有数据块中重要性最小的数据块逐出所述内存;
选择模块,用于选择所述新数据块中重要性最大的数据块,作为目标数据块;
第二控制模块,用于在确定所述剩余空间足够为所述目标数据块提供可用空间的情况下,将所述目标数据块缓存至所述内存。
8.如权利要求7所述的装置,其特征在于,所述获取模块,用于:
在确定存在新数据块需要缓存在内存中的情况下,获取包括原有数据块的成本的当前列表、所述新数据块的父RDD、所述新数据块的子RDD及所述新数据块的存储成本,所述原有数据块的成本包括:所述原有数据块的引用成本、所述原有数据块的计算成本及所述原有数据块的存储成本;
在确定所述新数据块的父RDD存在未处理的父RDD的情况下,根据不同依赖类型,累加所述新数据块的计算成本,利用累积后所述新数据块的计算成本,更新所述新数据块的计算成本;
在确定依赖所述新数据块的子RDD存在未处理的子RDD的情况下,根据不同依赖类型,累加所述新数据块的引用成本,利用累积后所述新数据块的引用成本,更新所述新数据块的引用成本。
9.如权利要求7所述的装置,其特征在于,所述处理模块,用于:
将所述数据块的存储成本、更新后所述数据块的计算成本、更新后所述数据块的引用成本进行平均,得到所述数据块的块权重,作为所述数据块的重要性。
10.如权利要求7至9任一项所述的装置,其特征在于,所述第一控制模块,用于:
基于所述数据块的重要性,利用预设权重与需替换数据块的预设替换概率关系,确定所述数据块的替换概率;
在确定所述内存的剩余空间不足够缓存所述新数据块的情况下,将所述原有数据中替换概率最大的数据块,作为原有数据块中重要性最小的数据块;
将所述原有数据块中重要性最小的数据块逐出所述内存;
所述选择模块,用于:
将所述新数据块中替换概率最小的数据块,确定为所述新数据块中重要性最大的数据块;
将所述新数据块中重要性最大的数据块,作为目标数据块。
CN201910436377.4A 2019-05-23 2019-05-23 一种内存计算缓存管理方法及装置 Active CN110162272B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910436377.4A CN110162272B (zh) 2019-05-23 2019-05-23 一种内存计算缓存管理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910436377.4A CN110162272B (zh) 2019-05-23 2019-05-23 一种内存计算缓存管理方法及装置

Publications (2)

Publication Number Publication Date
CN110162272A true CN110162272A (zh) 2019-08-23
CN110162272B CN110162272B (zh) 2020-06-12

Family

ID=67632491

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910436377.4A Active CN110162272B (zh) 2019-05-23 2019-05-23 一种内存计算缓存管理方法及装置

Country Status (1)

Country Link
CN (1) CN110162272B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110704336A (zh) * 2019-09-26 2020-01-17 北京神州绿盟信息安全科技股份有限公司 一种数据缓存方法及装置
CN115390752B (zh) * 2022-08-10 2023-04-18 中科豪联(杭州)技术有限公司 一种多磁盘的缓存文件管理方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103631730A (zh) * 2013-11-01 2014-03-12 深圳清华大学研究院 内存计算的缓存优化方法
CN106294772A (zh) * 2016-08-11 2017-01-04 电子科技大学 分布式内存列式数据库的缓存管理方法
CN107220188A (zh) * 2017-05-31 2017-09-29 莫倩 一种自适应缓冲块替换方法
US10176097B2 (en) * 2014-12-16 2019-01-08 Samsung Electronics Co., Ltd. Adaptable data caching mechanism for in-memory cluster computing

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103631730A (zh) * 2013-11-01 2014-03-12 深圳清华大学研究院 内存计算的缓存优化方法
US10176097B2 (en) * 2014-12-16 2019-01-08 Samsung Electronics Co., Ltd. Adaptable data caching mechanism for in-memory cluster computing
CN106294772A (zh) * 2016-08-11 2017-01-04 电子科技大学 分布式内存列式数据库的缓存管理方法
CN107220188A (zh) * 2017-05-31 2017-09-29 莫倩 一种自适应缓冲块替换方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
黄智濒等: "自适应访问模式的缓存替换策略", 《北京邮电大学学报》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110704336A (zh) * 2019-09-26 2020-01-17 北京神州绿盟信息安全科技股份有限公司 一种数据缓存方法及装置
CN110704336B (zh) * 2019-09-26 2021-10-15 绿盟科技集团股份有限公司 一种数据缓存方法及装置
CN115390752B (zh) * 2022-08-10 2023-04-18 中科豪联(杭州)技术有限公司 一种多磁盘的缓存文件管理方法

Also Published As

Publication number Publication date
CN110162272B (zh) 2020-06-12

Similar Documents

Publication Publication Date Title
US8965819B2 (en) System and method for effective caching using neural networks
US10176057B2 (en) Multi-lock caches
Acharya et al. Prefetching from a broadcast disk
EP1111517B1 (en) System and method for caching
Saemundsson et al. Dynamic performance profiling of cloud caches
US7284096B2 (en) Systems and methods for data caching
US6098152A (en) Method and apparatus for miss sequence cache block replacement utilizing a most recently used state
Li et al. Adaptive priority-based cache replacement and prediction-based cache prefetching in edge computing environment
US20020087798A1 (en) System and method for adaptive data caching
Chockler et al. Data caching as a cloud service
CN111917882B (zh) 文件缓存方法、装置及电子设备
CN110162272A (zh) 一种内存计算缓存管理方法及装置
Yuan et al. PR-LRU: A novel buffer replacement algorithm based on the probability of reference for flash memory
Zhang et al. Online file caching in latency-sensitive systems with delayed hits and bypassing
CN114253458A (zh) 内存缺页异常的处理方法、装置、设备及存储介质
JP2023507146A (ja) 頻繁にアクセスされるバケットのセットとあまり頻繁にアクセスされないバケットのセットとを備えたハッシュテーブルを使用するシステム及び方法
CN111159232A (zh) 一种数据缓存方法及系统
EP3876104B1 (en) Method for evicting data from memory
US11693778B2 (en) Cache grouping for increasing performance and fairness in shared caches
Almaslukh et al. Local trend discovery on real-time microblogs with uncertain locations in tight memory environments
Song et al. A Novel Hot-cold Data Identification Mechanism Based on Multidimensional Data
Lee et al. Dirty-block tracking in a direct-mapped DRAM cache with self-balancing dispatch
Aguilar et al. A Web proxy cache coherency and replacement approach
Ahn et al. Dynamic SEOF: An adaptable object prefetch policy for object-oriented database systems
Bächle et al. Lightweight performance forecasts for buffer algorithms

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant