内存管理方法、装置、设备及存储介质制造方法及图纸

技术编号:29060508 阅读:21 留言:0更新日期:2021-06-30 09:02
本申请实施例提供一种内存管理方法、装置、设备及存储介质。在内存管理方法中,进程中的第一算子申请内存空间时,若内存池中剩余的可用内存空间小于第一算子申请的内存空间,那么可从该进程中找出占用的内存空间大于其运行依赖的内存空间的目标算子。目标算子可释放其占用的内存空间中大于其运行依赖的内存空间的部分,也就是目标算子释放其多占的内存空间,直至内存池中剩余的可用内存空间满足第一算子的申请需求。基于这种实施方式,可有效地提升内存空间的利用率,有利于提升算子执行的任务的处理效率。任务的处理效率。任务的处理效率。

【技术实现步骤摘要】
内存管理方法、装置、设备及存储介质


[0001]本申请涉及计算机
,尤其涉及一种内存管理方法、装置、设备及存储介质。

技术介绍

[0002]通常,数据库接收到查询任务时,会生成查询任务对应的执行计划。执行计划包括多个算子,每个算子可向数据库申请一定的内存,以执行对应的查询任务。
[0003]现有技术提供的为算子分配内存的方法,对内存的利用率较低,不利于提升查询效率。因此,一种解决方案亟待提出。

技术实现思路

[0004]本申请的多个方面提供一种内存管理方法、装置、设备及存储介质,用以有效地提升内存的利用率。
[0005]本申请实施例还提供一种内存管理方法,包括:接收进程中的第一算子申请第一内存空间的请求消息;若内存池中剩余可用的内存空间小于所述第一内存空间,则从所述进程中筛选出目标算子,所述目标算子占用的内存空间大于其运行依赖的内存空间;将所述目标算子占用的内存空间中大于其运行依赖的内存空间的部分进行释放,直至所述内存池中剩余的可用内存空间大于或者等于所述第一内存空间;从所述内存池中为所述第一算子分配所述第一内存空间。
[0006]本申请实施例还提供一种内存管理装置,包括:消息接收模块,用于接收进程中的第一算子申请第一内存空间的请求消息;算子筛选模块,用于若内存池中剩余可用的内存空间小于所述第一内存空间,则从所述进程中筛选出目标算子,所述目标算子占用的内存空间大于其运行依赖的内存空间;内存释放模块,用于将所述目标算子占用的内存空间中大于其运行依赖的内存空间的部分进行释放,直至所述内存池中剩余的可用内存空间大于或者等于所述第一内存空间;内存分配模块,用于从所述内存池中为所述第一算子分配所述第一内存空间。
[0007]本申请实施例还提供一种内存管理设备,包括:存储器和处理器;所述存储器用于存储一条或多条计算机指令;所述处理器用于执行所述一条或多条计算机指令以用于执行本申请实施例提供的内存管理方法中的步骤。
[0008]本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被执行时能够实现本申请实施例提供的内存管理方法。
[0009]本申请实施例中,向目标算子索取内存空间时,保留了目标算子运行依赖的内存空间,不影响目标算子的处理效率,同时,内存池中增加的可用内存空间可供申请内存空间的其他算子使用,进而有效地提升了内存空间的利用率,有利于提升算子执行的任务的处理效率。
附图说明
[0010]此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
[0011]图1为本申请一示例性实施例提供的内存管理方法的流程示意图;
[0012]图2a是本申请一示例性实施例提供的内存空间划分的示意图;
[0013]图2b为本申请另一示例性实施例提供的内存管理方法的流程示意图;
[0014]图3为本申请一示例性实施例提供的内存管理装置的结构示意图;
[0015]图4为本申请一示例性实施例提供的内存管理设备的流程示意图。
具体实施方式
[0016]为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0017]在本专利技术实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本专利技术。在本专利技术实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种,但是不排除包含至少一种的情况。
[0018]还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。
[0019]针对现有技术中,为算子分配内存时,无法合理利用内存空间,进而不利于提升查询效率的技术问题,在本申请一些实施例中,提供了一种解决方案,以下结合附图,详细说明本申请各实施例提供的技术方案。
[0020]图1为本申请一示例性实施例提供的内存管理方法的流程示意图,如图1所示,该方法包括:
[0021]步骤101、接收进程中的第一算子申请第一内存空间的请求消息。
[0022]步骤102、若内存池中剩余可用的内存空间小于该第一内存空间,则从该进程中筛选出目标算子,该目标算子占用的内存空间大于其运行依赖的内存空间。
[0023]步骤103、将该目标算子占用的内存空间中大于其运行依赖的内存空间的部分进行释放,直至该内存池中剩余的可用内存空间大于或者等于该第一内存空间。
[0024]步骤104、从该内存池中为该第一算子分配该第一内存空间。
[0025]在本实施例中,第一算子,指的是进程中任意一个申请内存空间的算子,本实施例为描述方便,采用“第一”对其进行限定,但该“第一”仅用于将申请内存空间的算子和其他算子进行区分,并不用于限制该算子的排列顺序或者内存申请顺序。第一算子可以在已经分配到一定的内存空间但是当前仍需要申请更多内存空间的情况下申请第一内存空间,也可以在还未被分配到内存空间时申请第一内存空间,本实施例不做限制。
[0026]其中,算子(Operator)是一个处理单元,用于按照指定的数据处理逻辑进行数据处理,在数学上可以解释为将一个函数空间映射到另一个函数空间。算子有输入和输出,算子的输入通常是待处理的数据,算子的输出为处理完成的数据。
[0027]算子可应用在多种数据处理领域中,例如,在数据库查询领域中,多种不同的算子可构成查询语句对应的执行计划。执行计划被执行时,待查询的数据输入算子,算子做相应的数据处理后返回处理结果,根据算子返回的数据处理结果可得到查询语句的查询结果。
[0028]一些算子进行数据处理时,需要申请一定的内存空间以缓存数据。在本实施例中,为便于描述,采用第一内存空间来描述第一算子申请的内存空间的大小。不同类型的算子申请的内存空间的大小不同,本实施例不对该第一内存空间进行限制。
[0029]其中,内存池,是在真正使用内存之前预先为算子预备的一定数量的内存空间,进程中的算子申请使用内存时,可从该内存池中为算子分配内存空间。在该内存池中,算子可共享内存空间。内存池中剩余可用的内存空间,指的是内存池中,除已经分配给算子使用的内存空间之外可供分配给其他算子的内存空间。若内存池中剩余可用的内存空间不足以供第一算子使用,则可判断已分配出的内存空间是否被合理利本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种内存管理方法,其特征在于,包括:接收进程中的第一算子申请第一内存空间的请求消息;若内存池中剩余可用的内存空间小于所述第一内存空间,则从所述进程中筛选出目标算子,所述目标算子占用的内存空间大于其运行依赖的内存空间;将所述目标算子占用的内存空间中大于其运行依赖的内存空间的部分进行释放,直至所述内存池中剩余的可用内存空间大于或者等于所述第一内存空间;从所述内存池中为所述第一算子分配所述第一内存空间。2.根据权利要求1所述的方法,其特征在于,从所述进程中筛选出目标算子,包括:根据所述进程中的多个算子各自对内存空间的依赖特征以及所述内存池的总内存空间,计算所述多个算子各自运行依赖的内存空间;从所述多个算子中,筛选出占用的内存空间大于其运行依赖的内存空间的算子,作为所述目标算子。3.根据权利要求2所述的方法,其特征在于,根据所述进程中的多个算子各自对内存空间的依赖特征以及所述内存池的总内存空间,计算所述多个算子各自运行依赖的内存空间,包括:根据所述多个算子各自对内存空间的依赖特征,计算所述多个算子各自的内存代价;根据所述多个算子各自的内存代价以及所述多个算子的总内存代价,计算所述多个算子各自的内存权重;根据所述多个算子各自的内存权重和所述内存池的总内存空间,计算所述多个算子各自运行依赖的内存空间。4.根据权利要求3所述的方法,其特征在于,根据所述多个算子各自对内存空间的依赖特征,计算所述多个算子各自的内存代价,包括:针对所述多个算子中的任一算子,若所述算子执行时需全量缓存输入数据,则根据所述算子执行时输入数据的行数以及每行数据的数据量计算所述算子的内存代价。5.根据权利要求3所述的方法,其特征在于,根据所述多个算子各自对内存空间的依赖特征,计算所述多个算子各自的内存代价,包括:针对所述多个算子中的任一算子,若所述算子执行时无需全量缓存输入数据,则根据所述...

【专利技术属性】
技术研发人员:方孝健
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:

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

1