对分布式存储系统中慢节点的检测技术方案

技术编号:15695623 阅读:185 留言:0更新日期:2017-06-24 11:08
本发明专利技术的目的是提供一种检测分布式存储系统中的慢节点的方法、设备、系统以及计算机程序产品。其中,当检测到慢节点事件,客户端向所述文件的各副本节点发送异步请求,所述副本节点为存储有所述文件的副本的存储节点;根据所述各副本节点的响应信息,从所述各副本节点中确定慢节点;向所述主节点通知所述慢节点,以由所述主节点将所述慢节点从所述副本节点列表中删除;刷新所述文件的副本节点列表,以重新对其中一个副本节点中的文件副本执行数据写入操作。与现有技术相比,本发明专利技术通过对分布式存储系统中慢节点的探测及规避策略,使得分布式存储系统在用户的读写请求的耗时长尾显著减少。

【技术实现步骤摘要】
对分布式存储系统中慢节点的检测
本专利技术涉及分布式存储系统
,尤其涉及一种检测分布式存储系统中的慢节点的技术。
技术介绍
在当前的分布式存储系统中,随着集群节点数的线性增加,出现慢节点的概率也会随之增加。例如,当出现以下情形时,分布式存储系统可能出现慢节点:由于机器硬件资源达到瓶颈,导致对应的处理程序资源不足从而处理请求变慢,出现的场景如:机器出现故障;机器本身硬件条件不统一;机器上混布的其它业务占用资源增多。软件的单机实例自己本身达到了瓶颈,从而导致处理能力不足,出现的场景如:分布到单实例的请求数目不均;软件bug等。集群的节点之间网络出现割裂或者阻塞的情况。对应到分布式存储系统,在基于复制(Replication)的副本模式下,单个文件的数据在N个副本组成的管道(pipeline)中流动时,如果其中某个节点是慢节点,整个数据的写入流程必然会受到影响。当用户从分布式存储读取数据的时候,如果读取的副本是慢节点或者客户端到读取副本之间网络有问题,数据的读取流程也会受到影响。
技术实现思路
本专利技术的目的是提供一种检测分布式存储系统中的慢节点的方法、设备、系统以及计算机程序产品。根据本专利技术的一个方面,提供了一种检测分布式存储系统中的慢节点的方法,其中,所述分布式存储系统包括主节点、多个存储节点和一个或多个客户端,其中,在所述客户端,该方法包括以下步骤:-当根据从所述主节点获取的一文件的副本节点列表对其中一个副本节点中所述文件的副本执行数据写入操作时检测到慢节点事件,向所述文件的各副本节点发送异步请求,所述副本节点为存储有所述文件的副本的存储节点;-根据所述各副本节点的响应信息,从所述各副本节点中确定慢节点;-向所述主节点通知所述慢节点,以由所述主节点将所述慢节点从所述副本节点列表中删除;-刷新所述文件的副本节点列表,以重新对其中一个副本节点中的文件副本执行数据写入操作。根据本专利技术的一个方面,还提供了一种检测分布式存储系统中的慢节点的客户端,其中,所述分布式存储系统包括主节点、多个存储节点和一个或多个所述客户端,其中,所述客户端包括:用于当根据从所述主节点获取的一文件的副本节点列表对其中一个副本节点中所述文件的副本执行数据写入操作时检测到慢节点事件,向所述文件的各副本节点发送异步请求的装置,所述副本节点为存储有所述文件的副本的存储节点;用于根据所述各副本节点的响应信息,从所述各副本节点中确定慢节点的装置;用于向所述主节点通知所述慢节点的装置,以由所述主节点将所述慢节点从所述副本节点列表中删除;用于刷新所述文件的副本节点列表的装置,以重新对其中一个副本节点中的文件副本执行数据写入操作。根据本专利技术的一个方面,还提供了一种检测分布式存储系统中的慢节点的主节点,其中,所述分布式存储系统包括所述主节点、多个存储节点和一个或多个客户端,其中,所述主节点包括:用于在接收到所述客户端关于所述慢节点的通知后,更新所述文件的副本的版本号的装置;用于将更新后的版本号通知至所述文件的其他副本节点的装置,以由所述其他副本节点同步已执行的写入数据;用于更新所述文件的副本节点列表的装置。根据本专利技术的一个方面,还提供了一种分布式存储系统,其中,所述分布式存储系统包括所述主节点、多个存储节点和一个或多个客户端,其中,所述主节点包括如上所述的一种检测分布式存储系统中的慢节点的主节点,所述客户端包括如上所述的一种检测分布式存储系统中的慢节点的客户端。根据本专利技术的一个方面,还提供了一种计算机程序产品,其中,所述计算机程序产品运行于分布式存储系统的客户端中,所述分布式存储系统包括所述主节点、多个存储节点和一个或多个客户端,其中,所述计算机程序产品被运行来执行如上所述的一种检测分布式存储系统中的慢节点的方法。根据本专利技术的一个方面,还提供了一种计算机程序产品,其中,所述计算机程序产品运行于分布式存储系统的主节点中,所述分布式存储系统包括所述主节点、多个存储节点和一个或多个客户端,其中,所述计算机程序产品被运行来执行以下步骤:-在接收到所述客户端关于所述慢节点的通知后,更新所述文件的副本的版本号;-将更新后的版本号通知至所述文件的其他副本节点,以由所述其他副本节点同步已执行的写入数据;-更新所述文件的副本节点列表。根据本专利技术的一个方面,还提供了一种计算机设备,其中,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,当所述处理器运行所述计算机程序时,所述计算机设备被作为分布式存储系统中的客户端来执行如上所述的一种检测分布式存储系统中的慢节点的方法,其中,所述分布式存储系统包括主节点、多个存储节点和一个或多个所述客户端。根据本专利技术的一个方面,还提供了一种计算机设备,其中,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,当所述处理器运行所述计算机程序时,所述计算机设备被作为分布式存储系统中的主节点来执行以下步骤:-在接收到所述客户端关于所述慢节点的通知后,更新所述文件的副本的版本号;-将更新后的版本号通知至所述文件的其他副本节点,以由所述其他副本节点同步已执行的写入数据;-更新所述文件的副本节点列表;其中,所述分布式存储系统包括所述主节点、多个存储节点和一个或多个客户端。与现有技术相比,本专利技术通过对分布式存储系统中慢节点的探测及规避策略,使得分布式存储系统在用户的读写请求的耗时长尾显著减少。例如,线上统计数据显示:慢节点探测准确率99%;读写长尾请求减少了95%以上;从用户角度看,后端集群的慢节点影响降到了最低。并且,本专利技术中,慢节点探测与规避流程不阻塞正在进行的数据写入流程,两者完全并行。附图说明通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本专利技术的其它特征、目的和优点将会变得更明显:图1示出根据本专利技术一个实施例的分布式存储系统的示意图;图2示出根据本专利技术一个实施例的主节点检测慢节点的方法流程图;图3示出根据本专利技术一个示例的存储节点向主节点上报状态信息的示意图;图4示出根据本专利技术一个优选实施例的客户端在数据读取过程执行慢节点检测的方法流程图;图5示出根据本专利技术一个实施例的客户端在数据写入过程执行慢节点检测的方法流程图;图6示出根据本专利技术一个示例的客户端通过并发异步ping请求来检测慢节点的示意图;图7示出根据本专利技术一个优选实施例的主节点基于客户端的慢节点通知剔除慢节点的方法流程图;图8示出根据本专利技术一个优选实施例的客户端在数据写入过程执行慢节点检测的流程图;图9示出根据本专利技术一个示例的客户端通过模拟一个探测写请求(链式ping请求)来检测慢节点的示意图;图10示出根据本专利技术一个实施例的检测慢节点的主节点的装置示意图;图11示出根据本专利技术一个优选实施例的在数据读取过程执行慢节点检测的客户端的装置示意图;图12示出根据本专利技术一个优选实施例的在数据写入过程检测慢节点的客户端和主节点的装置示意图。附图中相同或相似的附图标记代表相同或相似的部件。具体实施方式在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可本文档来自技高网...
对分布式存储系统中慢节点的检测

【技术保护点】
一种检测分布式存储系统中的慢节点的方法,其中,所述分布式存储系统包括主节点、多个存储节点和一个或多个客户端,其中,在所述客户端,该方法包括以下步骤:‑当根据从所述主节点获取的一文件的副本节点列表对其中一个副本节点中所述文件的副本执行数据写入操作时检测到慢节点事件,向所述文件的各副本节点发送异步请求,所述副本节点为存储有所述文件的副本的存储节点;‑根据所述各副本节点的响应信息,从所述各副本节点中确定慢节点;‑向所述主节点通知所述慢节点,以由所述主节点将所述慢节点从所述副本节点列表中删除;‑刷新所述文件的副本节点列表,以重新对其中一个副本节点中的文件副本执行数据写入操作。

【技术特征摘要】
1.一种检测分布式存储系统中的慢节点的方法,其中,所述分布式存储系统包括主节点、多个存储节点和一个或多个客户端,其中,在所述客户端,该方法包括以下步骤:-当根据从所述主节点获取的一文件的副本节点列表对其中一个副本节点中所述文件的副本执行数据写入操作时检测到慢节点事件,向所述文件的各副本节点发送异步请求,所述副本节点为存储有所述文件的副本的存储节点;-根据所述各副本节点的响应信息,从所述各副本节点中确定慢节点;-向所述主节点通知所述慢节点,以由所述主节点将所述慢节点从所述副本节点列表中删除;-刷新所述文件的副本节点列表,以重新对其中一个副本节点中的文件副本执行数据写入操作。2.根据权利要求1所述的方法,其中,所述响应信息至少包括以下信息:-所述副本节点的状态信息;-所述副本节点中所述文件的副本的数据写入状态信息;-所述副本节点的响应时间信息。3.根据权利要求1或2所述的方法,其中,如果根据所述各副本节点的响应信息未能确定慢节点,在所述客户端,该方法还包括以下步骤:-模拟一个探测写请求并发送至其中一个副本节点,所述探测写请求将经过每个副本节点并要求每个副本节点收到所述探测写请求时返回确认信息;-根据所述每个副本节点返回的确认信息,从所述每个副本节点中确定慢节点。4.根据权利要求3所述的方法,其中,所述确认信息包括所述副本节点收到所述探测写请求的时间信息。5.根据权利要求1至4中任一项所述的方法,其中,在所述主节点,该方法还包括以下步骤:-在接收到所述客户端关于所述慢节点的通知后,更新所述文件的副本的版本号;-将更新后的版本号通知至所述文件的其他副本节点,以由所述其他副本节点同步已执行的写入数据;-更新所述文件的副本节点列表。6.根据权利要求5所述的方法,其中,在所述主节点,该方法还包括以下步骤:-根据各存储节点上报的状态信息,从所述各存储节点中确定慢节点,以用于之后的副本创建决策。7.根据权利要求1至6中任一项所述的方法,其中,在所述主节点,该方法还包括以下步骤:-将被作为慢节点的次数超过阈值的存储节点加入故障节点列表。8.根据权利要求1至7中任一项所述的方法,其中,在所述客户端,该方法还包括以下步骤:-根据从所述主节点获取的一文件的副本节点列表,按照其中各副本节点的访问耗时信息,从中选择执行对所述文件的副本的数据读取操作的副本节点;-从所选择的副本节点获取所述文件的副本。9.根据权利要求8所述的方法,其中,在所述客户端,该方法还包括以下步骤:-当在获取所述文件的副本时检测到慢节点事件,重新选择副本节点来获取所述文件的副本。10.一种检测分布式存储系统中的慢节点的客户端,其中,所述分布式存储系统包括主节点、多个存储节点和一个或多个所述客户端,其中,所述客户端包括:用于当根据从所述主节点获取的一文件的副本节点列表对其中一个副本节点中所述文件的副本执行数据写入操作时检测到慢节点事件,向所述文件的各副本节点发送异步请求的装置,所述副本节点为存储有所述文件的副本的存储节点;用于根据所述各副本节点的响应信息,从所述各副本节点中确定慢节点的装置;用于向所述主节点通知所述慢节点的装置,以由所述主节点将所述慢节点从所述副本节点列表中删除;用于刷新所述文件的副本节点列表的装置,以重新对其中一个副本节点中的文件副本执行数据写入操作。11.根据权利要求10所述的客户端,其中,所述响应信息至少包括以下信息:...

【专利技术属性】
技术研发人员:李志文郭波
申请(专利权)人:北京百度网讯科技有限公司
类型:发明
国别省市:北京,11

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

1