【技术实现步骤摘要】
【国外来华专利技术】
技术介绍
内存是很大程度上确定数据库性能和稳定性的关键系统资源。在本说明书中,术语“内存(memory)”,除非修改,指的是随机存取存储器。在没有足够内存存在的情况下,因为溢出或简单地出错,查询会缓慢,而导致不期望的行为。由于内存是无限的,适当内存管理是确保公平和可接受的使用以及最佳的可能用户体验的关键。在大规模并行处理(MPP)数据库中,以下高级步骤描述了查询处理:1.用户提交查询。2.解析器解析查询。3.计划器对查询进行计划并产生查询计划树,其由不同进程构成;进程可以在该树上多次发生。4.内存配额进程向每个操作器指派限定该操作器能够使用的最大内存的一定内存配额,以限制其运行时内存分配。5.计划被调度给多个工作者节点来以分布式方式执行。6.每个工作者节点接收它的计划树的副本,其指示被指派给该进程的内存配额。7.查询执行引擎执行计划。8.通过服务器,向用户返回结果。贯穿此过程,内存由多个查询分配。为了确保内存的公平使用和适当利用以及确保系统稳定性,系统必须进行下述操作:1.测量每个查询的内存使用。2.检查以了解内存使用是否在配额内。3.对于不同查询施行(enforce)内存配额。每个主要数据库具有内存管理器来有效率地分配和释放内存。此外,主要的数据库具有算法来在对查询的计划期间向SQL(结构查询语言)语句指派内存配额。在执行期间,内存管理器通常使用内存区域来将内存分配给SQL操作器,其主要为了效率以及为了跟踪分配。
技术实现思路
本说明书描述了用于在计算环境中跟踪内存使用的技术。这些技术大体上涉及在计算机系统的节点中运行的多个进程中的每一个中实现内存使用跟踪器(M ...
【技术保护点】
一种装置,包括:计算机系统,包括一个或多个操作地互连的主机,每个主机包括计算机和一个或多个存储设备,所述存储设备存储指令,所述指令可操作以在所述一个或多个主机上被执行时,使得所述一个或多个主机在计算机系统的节点中运行的多个进程中的每一个中实现内存使用跟踪器(MUT)的实例,所述内存使用跟踪器的每个实例可操作以对该实例在其上运行的进程执行以下操作:对于运行在该进程上的多个拥有者中的每一个维持内存使用的账户,每个拥有者是逻辑拥有者的实例,每个逻辑拥有者是与公共功能相关联的代码的一个或多个区域的集合;确定每个拥有者的实际内存配额;以及对于每个拥有者来施行该拥有者的实际内存配额,包括:接收每个拥有者所作出的对于内存的每个分配请求;相对该拥有者的实际配额来检查每个分配请求和该拥有者的账户的当前状态;批准或拒绝每个分配请求,并且将所述批准或拒绝传输到底层内存管理器;以及对于每个所批准的分配请求,更新该拥有者的账户。
【技术特征摘要】
【国外来华专利技术】2014.06.13 US 62/012,2561.一种装置,包括:计算机系统,包括一个或多个操作地互连的主机,每个主机包括计算机和一个或多个存储设备,所述存储设备存储指令,所述指令可操作以在所述一个或多个主机上被执行时,使得所述一个或多个主机在计算机系统的节点中运行的多个进程中的每一个中实现内存使用跟踪器(MUT)的实例,所述内存使用跟踪器的每个实例可操作以对该实例在其上运行的进程执行以下操作:对于运行在该进程上的多个拥有者中的每一个维持内存使用的账户,每个拥有者是逻辑拥有者的实例,每个逻辑拥有者是与公共功能相关联的代码的一个或多个区域的集合;确定每个拥有者的实际内存配额;以及对于每个拥有者来施行该拥有者的实际内存配额,包括:接收每个拥有者所作出的对于内存的每个分配请求;相对该拥有者的实际配额来检查每个分配请求和该拥有者的账户的当前状态;批准或拒绝每个分配请求,并且将所述批准或拒绝传输到底层内存管理器;以及对于每个所批准的分配请求,更新该拥有者的账户。2.如权利要求1所述的装置,其中,对于每个拥有者施行该拥有者的实际内存配额进一步包括:接收一个或多个解除分配请求以对先前由拥有者分配的内存解除分配,并且对于每个解除分配请求:识别先前分配该内存的拥有者;以及更新该拥有者的账户。3.如权利要求1所述的装置,其中,所述操作进一步包括:对于一个或多个多态拥有者中的每一个维持内存使用的子账户,每个多态拥有者是多态逻辑拥有者的实例,每个多态逻辑拥有者是与公共功能相关联的代码的一个或多个区域的集合,每个多态拥有者针对相应的拥有者来运行;以及将针对拥有者运行的多态拥有者所作的任何分配请求计入该拥有者的账户以及该多态拥有者的子账户。4.如权利要求1所述的装置,其中所述一个或多个计算机存储介质是非暂时性的;所述多个逻辑拥有者包括作为代码的多个非毗连区域的集合的逻辑拥有者;初始地确定每个拥有者的实际内存配额作为该逻辑拥有者的逻辑内存配额;以及所述底层内存管理器是基于区域的内存管理器。5.如权利要求1所述的装置,所述操作进一步包括:接收表示每个逻辑拥有者的逻辑内存配额的数据;以及根据对应的逻辑拥有者的逻辑内存配额,确定每个拥有者的实际内存配额。6.如权利要求1所述的装置,所述操作进一步包括:在具有长寿命分配的账户和任何子账户的原始拥有者已经终止之后,将所有权从所述原始拥有者切换至滚转账户。7.如权利要求1所述的装置,所述操作进一步包括:当包括多个逻辑拥有者的程序的寿命的新分区开始时,根据划分该寿命的逻辑执行模型来将所有权从账户和任何子账户的原始拥有者切换至滚转账户。8.如权利要求1所述的装置,所述操作进一步包括:从在所述计算机系统的与所述内存使用跟踪器的所述实例相同的节点中运行的一个或多个其他内存使用跟踪器实例获得内存使用数据;检测影响在所述计算机系统的与所述内存使用跟踪器的所述实例相同的节点中运行的全部的所述多个进程的低内存状况;以及从由在所述相同的节点中运行的全部的内存使用跟踪器实例跟踪的拥有者当中识别特定拥有者作为应当被终止的拥有者;以及当所述特定拥有者运行在与所述内存使用跟踪器的所述实例相同的进程中时,终止所述特定拥有者。9.如权利要求1所述的装置,所述操作进一步包括:从在所述计算机系统的与所述内存使用跟踪器的所述实例相同的节点中运行的一个或多个其他内存使用跟踪器实例中获得每任务内存使用数据;检测影响在所述计算机系统的与所述内存使用跟踪器的所述实例相同的节点中运行的全部的所述多个进程的低内存状况;确定所述多个进程中执行的多个更高级别任务中的每一个的汇总内存使用和汇总配额,其中,所述更高级别任务中的每一个包括一个或多个拥有者;基于所述任务中的每一个的所述汇总内存使用和所述汇总配额之间的关系来确定该任务的分值;选择具有最差分值的特定任务作为待终止的任务;以及当所述特定任务在与所述内存使用跟踪器的所述实例相同的进程中运行时,终止所述特定任务。10.如权利要求1所述的装置,所述操作进一步包括:接收表示查询计划树的数据,所述查询计划树是SQL查询的SQL查询计划的一部分,所述查询计划树包括表示SQL操作器的操作器节点元素和表示非SQL操作器的非操作器节点元素;以及根据与所述查询计划树相对应的账户树结构来维持每个拥有者的内存使用的账户,其中,每个拥有者具有逻辑拥有者,该逻辑拥有者具有执行所述查询计划树的对应操作器节点元素的操作的代码。11.如权利要求10所述的介质,所述操作进一步包括:从...
【专利技术属性】
技术研发人员:穆罕默德·福伊祖尔·拉赫曼,乔治·康斯坦丁·卡拉贾,卡洛斯·加西亚阿尔瓦拉多,米哈伊尔·彼得罗普洛斯,
申请(专利权)人:皮沃塔尔软件公司,
类型:发明
国别省市:美国;US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。