一种数据存储方法、装置、电子设备及存储介质制造方法及图纸

技术编号:27654912 阅读:15 留言:0更新日期:2021-03-12 14:16
本发明专利技术公开了一种数据存储方法、装置、电子设备及存储介质。该方法包括:根据获取到的左孩子节点的待存储数据,确定所述待存储数据对应的内存空间,所述内存空间包括一个或多个内存切片,每一内存切片对应所述待存储数据中的子数据;将子数据存入对应的内存切片之后,触发数据加载节点读取对应内存切片中存入的子数据,直至所述待存储数据全部存入对应的内存空间。本发明专利技术实施例实现了有效地提升并发效率,减少响应时间。

【技术实现步骤摘要】
一种数据存储方法、装置、电子设备及存储介质
本专利技术实施例涉及计算机技术,尤其涉及一种并行调度方法、装置、电子设备及存储介质。
技术介绍
数据库管理系统为充分利用多核CPU物理资源、提升查询执行的效率,通常会支持多线程并发执行。并行查询的框架有一种生产者-消费者模型,该模型通过将查询计划按照数据发送操作符以及数据接收操作符划分,得到一个或者多个子计划,子计划在执行时按照依赖关系先后调度,以确保被依赖的子计划C(即生产者)在执行完成或者第一次输出数据之后,调度依赖于它的父层子计划P(即消费者)。由于在基于生产者-消费者并发调度模型框架中,对公共子计划的处理方式通常是等待生产者子计划调度完成,即数据存储完成后,再调度消费者子计划。这种方式的并发利用率不高,且响应时间较长。
技术实现思路
本专利技术提供一种数据存储方法、装置、电子设备及存储介质,以实现能够有效地提升并发效率,减少响应时间。第一方面,本专利技术实施例提供了一种数据存储方法,应用于数据存储节点,包括:根据获取到的左孩子节点的待存储数据,确定所述待存储数据对应的内存空间,所述内存空间包括一个或多个内存切片,每一内存切片对应所述待存储数据中的子数据;将子数据存入对应的内存切片之后,触发数据加载节点读取对应内存切片中存入的子数据,直至所述待存储数据全部存入对应的内存空间。进一步的,所述根据获取到的左孩子节点的待存储数据,确定所述待存储数据对应的内存空间,所述内存空间包括一个或多个内存切片,每一内存切片对应所述待存储数据中的子数据,包括:根据获取到的所述待存储数据的行数与内存切片行数,确定所述待存储数据对应的内存空间中内存切片数量;如果所述待存储数据对应的内存空间中内存切片数量大于零,则根据所述待存储数据对应的内存空间中内存切片数量在数据存储节点内存结构中申请对应的内存空间。进一步的,所述如果所述待存储数据对应的内存空间中内存切片数量大于零,则根据所述待存储数据对应的内存空间中内存切片数量在数据存储节点内存中申请对应的内存空间之后,还包括:如果所述待存储数据申请内存空间失败,则将数据存储节点中内存结构中的数据存入磁盘,同时将数据存储节点的访问状态更改为“限制访问”,查询所述数据存储节点对应的数据加载节点的个数及加载状态;如果所述数据存储节点对应的数据加载节点的个数为零或所述数据存储节点对应的数据加载节点均完成加载,则释放所述数据存储节点内存中的数据。进一步的,所述如果所述数据存储节点对应的数据加载节点的个数为零或所述数据存储节点对应的数据加载节点均完成加载,则释放所述数据存储节点内存中的数据之后,还包括:将接收所述获取到的左孩子节点的待存储数据存入磁盘,直至所述待存储数据全部存入磁盘;将所述数据存储节点的访问状态更改为“完全访问”,并触发所述数据加载节点继续执行加载。进一步的,所述根据获取到的左孩子节点的待存储数据,确定所述待存储数据对应的内存空间,所述内存空间包括一个或多个内存切片,每一内存切片对应所述待存储数据中的子数据之前,包括:设置自身的存储状态为“完全访问”;获取左孩子节点的数据。进一步的,应用于数据加载节点,所述方法包括:获取所述数据存储节点的当前访问状态;如果所述数据存储的当前访问状态为“限制访问”,则等待所述数据存储节点触发继续执行操作;如果所述数据存储节点触发所述数据加载节点且所述数据存储节点内存结构中数据不为空,则遍历所述数据存储节点内存结构中数据;如果遍历当前内存切片的序号大于等于所述数据存储节点内存结构中内存切片总数且所述数据存储节点存储操作未结束,则继续等待所述数据存储节点触发数据加载节点进行数据加载操作;如果所述数据存储节点触发所述数据加载节点继续数据加载遍历当前内存切片的序号大于等于数据存储节点内存结构中内存切片总数且磁盘数据为空,则增加所述数据存储节点的完成数据加载的所述数据加载节点的个数,当前所述数据加载节点执行完成。进一步,所述如果所述数据存储节点触发所述数据加载节点且所述数据存储节点内存结构中数据不为空,则遍历所述数据存储节点内存结构中数据,包括:如果遍历当前内存切片的序号小于所述数据存储节点内存结构中内存切片的总数,则将当前内存切片的序号加1继续进行遍历;如果所述遍历当前内存切片的序号大于等于所述数据存储节点内存结构中内存切片的总数且所述数据存储节点存储操作结束,则增加所述数据存储节点的完成数据加载的所述数据加载节点的个数,当前所述数据加载节点执行完成。第二方面,本专利技术实施例还提供了一种数据存储装置,该装置包括:数据存储模块,用于根据获取到的左孩子节点的待存储数据,确定所述待存储数据对应的内存空间,所述内存空间包括一个或多个内存切片,每一内存切片对应所述待存储数据中的子数据;读取触发模块,用于将子数据存入对应的内存切片之后,触发数据加载节点读取对应内存切片中存入的子数据,直至所述待存储数据全部存入对应的内存空间。第三方面,本专利技术实施例还提供了一种电子设备,其特征在于,所述电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现任一所述的并行调度方法。第四方面,本专利技术实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现任一所述的并行调度方法。本专利技术通过接收父计划的数据存储指令后,开始所述数据存储节点数据存储;根据获取到的左孩子节点的待存储数据,确定所述待存储数据对应的内存空间,所述内存空间包括一个或多个内存切片,每一内存切片对应所述待存储数据中的子数据;将子数据存入对应的内存切片之后,触发数据加载节点读取对应内存切片中存入的子数据,直至所述待存储数据全部存入对应的内存空间,解决在数据存储节点与数据加载节点同时执行时,但因为数据加载节点依赖于数据存储节点,受执行逻辑限制陷入阻塞,使得数据存储节点和数据加载节点无法真正的同时执行问题,实现能够有效地提升并发效率,减少响应时间效果。附图说明图1是本专利技术实施例一中的一种数据存储的方法的流程图;图1A是本专利技术实施例一中的一种数据存储方法的现有技术原理图;图1B是本专利技术实施例一中的一种数据存储方法的现有技术原理图;图1C是本专利技术实施例一中的一种数据存储方法的现有技术原理图;图1D是本专利技术实施例一中的一种数据存储方法的原理图;图1E是本专利技术实施例一中的一种数据存储方法的流程图;图2是本专利技术实施例二中的一种数据存储方法的流程图;图2A是本专利技术实施例二中的一种数据存储方法的原理图;图3是本专利技术实施例三中的一种数据存储装置的结构示意图;图4是本专利技术实施例三中的一种电子设备的结构示意图。具体实施方式下面结合附图和实施例对本发本文档来自技高网...

【技术保护点】
1.一种数据存储方法,其特征在于,应用于数据存储节点,包括:/n根据获取到的左孩子节点的待存储数据,确定所述待存储数据对应的内存空间,所述内存空间包括一个或多个内存切片,每一内存切片对应所述待存储数据中的子数据;/n将子数据存入对应的内存切片之后,触发数据加载节点读取对应内存切片中存入的子数据,直至所述待存储数据全部存入对应的内存空间。/n

【技术特征摘要】
1.一种数据存储方法,其特征在于,应用于数据存储节点,包括:
根据获取到的左孩子节点的待存储数据,确定所述待存储数据对应的内存空间,所述内存空间包括一个或多个内存切片,每一内存切片对应所述待存储数据中的子数据;
将子数据存入对应的内存切片之后,触发数据加载节点读取对应内存切片中存入的子数据,直至所述待存储数据全部存入对应的内存空间。


2.根据权利要求1所述的方法,其特征在于,所述根据获取到的左孩子节点的待存储数据,确定所述待存储数据对应的内存空间,所述内存空间包括一个或多个内存切片,每一内存切片对应所述待存储数据中的子数据,包括:
根据获取到的所述待存储数据的行数与内存切片行数,确定所述待存储数据对应的内存空间中内存切片数量;
如果所述待存储数据对应的内存空间中内存切片数量大于零,则根据所述待存储数据对应的内存空间中内存切片数量在数据存储节点内存结构中申请对应的内存空间。


3.根据权利要求2所述的方法,其特征在于,所述如果所述待存储数据对应的内存空间中内存切片数量大于零,则根据所述待存储数据对应的内存空间中内存切片数量在数据存储节点内存中申请对应的内存空间之后,还包括:
如果所述待存储数据申请内存空间失败,则将数据存储节点中内存结构中的数据存入磁盘,同时将数据存储节点的访问状态更改为“限制访问”,查询所述数据存储节点对应的数据加载节点的个数及加载状态;
如果所述数据存储节点对应的数据加载节点的个数为零或所述数据存储节点对应的数据加载节点均完成加载,则释放所述数据存储节点内存中的数据。


4.根据权利要求3所述的方法,其特征在于,所述如果所述数据存储节点对应的数据加载节点的个数为零或所述数据存储节点对应的数据加载节点均完成加载,则释放所述数据存储节点内存中的数据之后,还包括:
将接收所述获取到的左孩子节点的待存储数据存入磁盘,直至所述待存储数据全部存入磁盘;
将所述数据存储节点的访问状态更改为“完全访问”,并触发所述数据加载节点继续执行加载。


5.根据权利要求1所述的方法,其特征在于,所述根据获取到的左孩子节点的待存储数据,确定所述待存储数据对应的内存空间,所述内存空间包括一个或多个内存切片,每一内存切片对应所述待存储数据中的子数据之前,包括:
设置自身的存储状态为“完全访问”;
获取左孩子节点的数据。
<...

【专利技术属性】
技术研发人员:宋鑫韩朱忠
申请(专利权)人:上海达梦数据库有限公司
类型:发明
国别省市:上海;31

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

1