分布式存储方法及装置、电子设备、计算机可读介质制造方法及图纸

技术编号:25947563 阅读:18 留言:0更新日期:2020-10-17 03:39
本公开提供了一种分布式存储方法,涉及计算机、云计算技术领域。该方法包括:响应驱动线程的任务请求,读取并向外部洗牌服务发送数据;在所述外部洗牌服务发送所述数据完毕后,将所述任务的状态修改为等待完成态;将所述等待完成态发送给所述驱动线程,以供所述驱动线程释放所述任务对应的执行线程。该分布式存储方法可减少执行线程资源的浪费,提升任务运行效率。本公开还提供了一种分布式存储装置、电子设备和计算机可读介质。

【技术实现步骤摘要】
分布式存储方法及装置、电子设备、计算机可读介质
本公开实施例涉及计算机、云计算
,特别涉及分布式存储方法及装置、电子设备、计算机可读介质。
技术介绍
在分布式存储数据时,分布式计算引擎Spark需要借助外部洗牌(Shuffle)服务运行作业。具体地,Spark将数据不断地传输到外部Shuffle服务,外部Shuffle服务将这些数据合并和排序后,发送给分布式存储系统存储。当数据被成功地写入分布式存储系统之后,外部Shuffle服务会向Spark的执行线程(Executor线程)发送数据写入成功的响应消息。这个过程运行效率低、耗时较长,存在资源浪费。公开内容本公开实施例提供一种分布式存储方法及装置、电子设备、计算机可读介质。第一方面,本公开实施例提供一种分布式存储方法,其包括:响应驱动线程的任务请求,读取并向外部洗牌服务发送数据;在所述外部洗牌服务发送所述数据完毕后,将所述任务的状态修改为等待完成态;将所述等待完成态发送给所述驱动线程,以供所述驱动线程释放所述任务对应的执行线程。在一些实施例中,所述响应驱动线程的任务请求,读取并向外部洗牌服务发送数据,包括:响应驱动线程的任务请求,读取所述数据并构造弹性分布式数据集;对所述弹性分布式数据集进行处理获得洗牌数据;将所述洗牌数据写入所述外部洗牌服务。在一些实施例中,所述在所述数据向所述外部洗牌服务发送完毕后,将所述任务的状态修改为等待完成态之后,包括:将处于等待完成态的所述任务加入管道任务集合;其中,所述管道任务集合是处于等待完成态的任务的集合。在一些实施例中,所述将处于等待完成态的所述任务加入管道任务集合之后,还包括:响应所述外部洗牌服务返回的响应消息,调用回调函数对所述任务进行回调操作;将执行所述回调操作后的所述任务从所述管道任务集合中移除。在一些实施例中,所述将处于等待完成态的所述任务加入管道任务集合之后,还包括:对所述管道任务集合中的任务进行冲刷操作;从所述管道任务集合中获得处于终止态的任务;调用失败回调函数和完成回调函数,对处于终止态的所述任务进行回调操作;将执行所述回调操作后的所述任务从所述管道任务集合中移除。在一些实施例中,所述对所述管道任务集合中的任务进行冲刷操作,包括:按照预设时间间隔或所述任务的数量达到预设值时,对所述管道任务集合中的任务进行冲刷操作。在一些实施例中,所述终止态包括停止态、超时态和完成态。第二方面,本公开实施例提供一种分布式存储方法,其包括:向执行线程发送任务请求,以使所述执行线程读取并向外部洗牌服务发送数据;响应所述执行线程返回任务的状态为等待完成态,释放所述任务对应的执行线程;其中,所述等待完成态是所述执行线程向所述外部洗牌服务发送所述数据完毕后任务所处的状态。第三方面,本公开实施例提供一种分布式存储装置,其包括:读取数据模块,用于响应驱动线程的任务请求读取数据;第一发送模块,用于将所述数据发送给外部洗牌服务;状态修改模块,用于在所述外部洗牌服务发送所述数据完毕后,将所述任务的状态修改为等待完成态;第二发送模块,用于将所述等待完成态发送给所述驱动线程,以供所述驱动线程释放所述任务对应的执行线程。第四方面,本公开实施例提供一种分布式存储装置,其包括:任务发送模块,用于向执行线程发送任务请求,以使所述执行线程读取并向外部洗牌服务发送数据;资源释放模块,用于响应所述执行线程返回任务的状态为等待完成态,释放所述任务对应的执行线程;其中,所述等待完成态是所述执行线程向所述外部洗牌服务发送所述数据完毕后任务所处的状态。第五方面,本公开实施例提供一种电子设备,其包括:一个或多个处理器;存储器,其上存储有一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器上述任意一种分布式存储方法;一个或多个I/O接口,连接在所述处理器与存储器之间,配置为实现所述处理器与存储器的信息交互。第六方面,本公开实施例提供一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现上述任意一种分布式存储方法。本公开实施例提供的分布式存储方法,响应驱动线程的任务请求,读取并向外部洗牌服务发送数据;在所述外部洗牌服务发送所述数据完毕后,将所述任务的状态修改为等待完成态;将所述等待完成态发送给所述驱动线程,以供所述驱动线程释放所述任务对应的执行线程,即,当执行线程向外部洗牌服务发送完毕后,即向驱动线程返回该任务处于等待完成态,驱动线程随即释放该任务对应的执行线程,并不需要等到该任务为终止态时才释放对应的执行线程,减少了执行线程资源的浪费,提升了任务运行效率。附图说明附图用来提供对本公开实施例的进一步理解,并且构成说明书的一部分,与本公开的实施例一起用于解释本公开,并不构成对本公开的限制。通过参考附图对详细示例实施例进行描述,以上和其它特征和优点对本领域技术人员将变得更加显而易见,在附图中:图1为本公开实施例提供的使用外部Shuffle服务分布式存储数据的流程示意图;图2为本公开实施例提供的一种分布式存储方法的流程图;图3为本公开实施例提供的分布式存储方法中驱动线程的工作流程图;图4为本公开实施例提供的另一种分布式存储方法的流程图;图5为本公开实施例提供的一种Pipeline线程对管道任务集合管理的流程图;图6为本公开实施例提供的另一种Pipeline线程对管道任务集合管理的流程图;图7为本公开实施例提供的状态更新函数更新任务状态的流程图;图8为本公开实施例中利用失败回调函数进行失败回调的流程图;图9为本公开实施例中利用完成回调函数进行完成回调的流程图;图10为本公开实施例提供的一种分布式存储方法的流程图;图11为本公开实施例提供的一种分布式存储装置的原理框图;图12为本公开实施例提供的一种分布式存储装置的原理框图;图13为本公开实施例提供的一种电子设备的组成框图。具体实施方式为使本领域的技术人员更好地理解本公开的技术方案,下面结合附图对本公开提供的分布式存储方法及装置、电子设备、计算机可读介质进行详细描述。在下文中将参考附图更充分地描述示例实施例,但是所述示例实施例可以以不同形式来体现且不应当被解释为限于本文阐述的实施例。反之,提供这些实施例的目的在于使本公开透彻和完整,并将使本领域技术人员充分理解本公开的范围。在不冲突的情况下,本公开各实施例及实施例中的各特征可相互组合。如本文所使用的,术语“和/或”包括一个或多个相关列举条目的任何和所有组合。本文所使用的术语仅用于描述特定实施例,且不意欲限制本公开。如本文所使用的,单数形式“一个”和“该”也意欲包括复数形式,除本文档来自技高网...

【技术保护点】
1.一种分布式存储方法,其包括:/n响应驱动线程的任务请求,读取并向外部洗牌服务发送数据;/n在所述外部洗牌服务发送所述数据完毕后,将所述任务的状态修改为等待完成态;/n将所述等待完成态发送给所述驱动线程,以供所述驱动线程释放所述任务对应的执行线程。/n

【技术特征摘要】
1.一种分布式存储方法,其包括:
响应驱动线程的任务请求,读取并向外部洗牌服务发送数据;
在所述外部洗牌服务发送所述数据完毕后,将所述任务的状态修改为等待完成态;
将所述等待完成态发送给所述驱动线程,以供所述驱动线程释放所述任务对应的执行线程。


2.根据权利要求1所述的方法,其中,所述响应驱动线程的任务请求,读取并向外部洗牌服务发送数据,包括:
响应驱动线程的任务请求读取所述数据,并基于所述数据构造弹性分布式数据集;
对所述弹性分布式数据集进行处理获得洗牌数据;
将所述洗牌数据写入所述外部洗牌服务。


3.根据权利要求1所述的方法,其中,所述在所述数据向所述外部洗牌服务发送完毕后,将所述任务的状态修改为等待完成态之后,包括:
将处于等待完成态的所述任务加入管道任务集合;其中,所述管道任务集合是处于等待完成态的任务的集合。


4.根据权利要求3所述的方法,其中,所述将处于等待完成态的所述任务加入管道任务集合之后,还包括:
响应所述外部洗牌服务返回的响应消息,调用回调函数对所述任务进行回调操作;
将执行所述回调操作的所述任务从所述管道任务集合中移除。


5.根据权利要求3所述的方法,其中,所述将处于等待完成态的所述任务加入管道任务集合之后,还包括:
对所述管道任务集合中的所述任务进行冲刷操作;
从所述管道任务集合中过滤出处于终止态的任务;
调用失败回调函数和完成回调函数,对处于终止态的所述任务进行回调操作;
将执行所述回调操作后的所述任务从所述管道任务集合中移除。


6.根据权利要求5所述的方法,其中,所述对所述管道任务集合中的任务进行冲刷操作,包括:
按照预设时间间隔或所述任务的数量达到预设值时,对所述管道任务集合中的任务进行冲刷操作。<...

【专利技术属性】
技术研发人员:齐赫王亚知
申请(专利权)人:北京百度网讯科技有限公司
类型:发明
国别省市:北京;11

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

1