请求分发方法、装置、设备和计算机可读存储介质制造方法及图纸

技术编号:34466477 阅读:13 留言:0更新日期:2022-08-10 08:39
本申请提供了一种请求分发方法、装置、设备和计算机可读存储介质,其中,所述请求分发方法包括:服务端获取客户端发送的任务请求,所述任务请求中携带有请求类型标识及文件句柄标识;根据所述请求类型标识和所述文件句柄标识,从与所述请求类型标识对应的线程类型中,选取出用于处理所述任务请求的目标线程;将所述任务请求分发至所述目标线程对应的任务队列中,以对所述任务请求进行处理。本申请实施例中通过任务请求的类型,利用对应的工作线程对任务请求进行分组处理,能够隔离不同类型请求的异常,达到提高工作线程可用性的效果。果。果。

【技术实现步骤摘要】
请求分发方法、装置、设备和计算机可读存储介质


[0001]本申请涉及网络文件系统
,涉及但不限于一种请求分发方法、装置、设备和计算机可读存储介质。

技术介绍

[0002]网络文件系统(NFS,Network File System)是当前主流异构平台共享文件系统之一,能够支持在不同类型的系统之间通过网络进行文件共享。通过使用NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件,使得每个计算机的节点能够像使用本地资源一样方便地使用网上资源。
[0003]传统NFS server的多线程执行NFS client的请求时,各种类型的请求被无差别地分发到全部工作线程。当某一类型的请求在底层文件系统上出现异常卡住后,会导致全部工作线程卡住,最终NFS server无法再响应任何请求。

技术实现思路

[0004]有鉴于此,本申请实施例提供一种请求分发方法、装置、设备和计算机可读存储介质。
[0005]本申请实施例的技术方案是这样实现的:
[0006]本申请实施例提供一种请求分发方法,包括:
[0007]获取客户端发送的任务请求,所述任务请求中携带有请求类型标识及文件句柄标识;
[0008]根据所述请求类型标识和所述文件句柄标识,从与所述请求类型标识对应的线程类型中,选取出用于处理所述任务请求的目标线程;
[0009]将所述任务请求分发至所述目标线程对应的任务队列中,以对所述任务请求进行处理。
[0010]在一些实施例中,所述方法还包括:
>[0011]对所述任务请求进行解析处理,提取出所述任务请求中携带的请求类型标识及文件句柄标识;
[0012]其中,所述请求类型标识包括读类型标识、写类型标识和元数据类型标识。
[0013]在一些实施例中,所述根据所述请求类型标识和所述文件句柄标识,从与所述请求类型标识对应的线程类型中,选取出用于处理所述任务请求的目标线程,包括:
[0014]当所述请求类型标识为读类型标识时,获取读管理数组,所述读管理数组用于管理读工作线程,所述读工作线程用于处理读类型的任务请求;
[0015]判断所述客户端的读请求对应的文件句柄是否已绑定所述服务端的读工作线程;
[0016]若所述客户端的读请求对应的文件句柄已绑定所述服务端的读工作线程,从所述读管理数组中查找与所述文件句柄标识相同的读工作线程,得到查找结果;
[0017]当所述查找结果表征查找成功时,将与所述文件句柄标识相同的读工作线程确定
为目标线程。
[0018]在一些实施例中,所述方法还包括:
[0019]当所述客户端的读请求对应的文件句柄未绑定所述服务端的读工作线程,或者当所述查找结果表征查找失败时,获取所述读管理数组中各个读工作线程的已分配任务数量;
[0020]将所述已分配任务数量最少的读工作线程确定为目标线程。
[0021]在一些实施例中,所述根据所述请求类型标识和所述文件句柄标识,从与所述请求类型标识对应的线程类型中,选取出用于处理所述任务请求的目标线程,包括:
[0022]当所述请求类型标识为写类型标识时,获取写管理数组,所述写管理数组用于管理写工作线程,所述写工作线程用于处理写类型的任务请求;
[0023]获取所述写管理数组中各个写工作线程的已分配任务数量;
[0024]将所述已分配任务数量最少的写工作线程确定为目标线程。
[0025]在一些实施例中,所述根据所述请求类型标识和所述文件句柄标识,从与所述请求类型标识对应的线程类型中,选取出用于处理所述任务请求的目标线程,还包括:
[0026]当所述请求类型标识为元数据类型标识时,获取元数据管理数组,所述元数据管理数组用于管理元数据工作线程,所述元数据工作线程用于处理元数据类型的任务请求;
[0027]获取所述元数据管理数组中各个元数据工作线程的已分配任务数量;
[0028]将所述已分配任务数量最少的元数据工作线程确定为目标线程。
[0029]在一些实施例中,所述方法还包括:
[0030]对所述目标线程的已分配任务数量进行更新;
[0031]其中,所述对所述目标线程的已分配任务数量进行更新,包括:
[0032]当所述目标线程每处理完成一个任务请求时,将所述目标线程的已分配任务数量减一;
[0033]当所述目标线程每分发一个任务请求时,将所述目标线程的已分配任务数量加一。
[0034]本申请实施例提供一种请求分发装置,所述装置包括:
[0035]获取模块,用于获取客户端发送的任务请求,所述任务请求中携带有请求类型标识及文件句柄标识;
[0036]选取模块,用于根据所述请求类型标识和所述文件句柄标识,从与所述请求类型标识对应的线程类型中,选取出用于处理所述任务请求的目标线程;
[0037]分发模块,用于将所述任务请求分发至所述目标线程对应的任务队列中,以对所述任务请求进行处理。
[0038]本申请实施例提供一种电子设备,包括:
[0039]存储器,用于存储可执行指令;
[0040]处理器,用于执行所述存储器中存储的可执行指令时,实现本申请实施例提供的请求分发方法。
[0041]本申请实施例提供一种计算机可读存储介质,存储有可执行指令,用于引起处理器执行时,实现本申请实施例提供的请求分发方法。
[0042]本申请实施例具有以下有益效果:
[0043]本申请实施例提供的请求分发方法,服务端获取客户端发送的任务请求,所述任务请求中携带有请求类型标识及文件句柄标识;根据所述请求类型标识和所述文件句柄标识,从与所述请求类型标识对应的线程类型中,选取出用于处理所述任务请求的目标线程;将所述任务请求分发至所述目标线程对应的任务队列中,以对所述任务请求进行处理。通过将NFS server的工作线程按照请求任务的类型进行分组处理,能够隔离不同类型请求的异常,达到提高工作线程可用性的效果。
附图说明
[0044]在附图(其不一定是按比例绘制的)中,相似的附图标记可在不同的视图中描述相似的部件。附图以示例而非限制的方式大体示出了本文中所讨论的各个实施例。
[0045]图1为本申请实施例提供的请求分发方法的一种实现流程示意图;
[0046]图2为本申请实施例提供的当请求类型标识为读类型标识时选取目标线程的一种实现流程示意图;
[0047]图3为本申请实施例提供的当请求类型标识为写类型标识时选取目标线程的一种实现流程示意图;
[0048]图4为本申请实施例提供的当请求类型标识为元数据类型标识时选取目标线程的一种实现流程示意图;
[0049]图5为本申请实施例提供的请求分发方法的另一种实现流程示意图;
[0050]图6为本申请实施例提供的记录不同worker_index到对应类型的不同管理数组的元素中的实现流程示意图;
[0051]图本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种请求分发方法,应用于服务端,所述方法包括:获取客户端发送的任务请求,所述任务请求中携带有请求类型标识及文件句柄标识;根据所述请求类型标识和所述文件句柄标识,从与所述请求类型标识对应的线程类型中,选取出用于处理所述任务请求的目标线程;将所述任务请求分发至所述目标线程对应的任务队列中,以对所述任务请求进行处理。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:对所述任务请求进行解析处理,提取出所述任务请求中携带的请求类型标识及文件句柄标识;其中,所述请求类型标识包括读类型标识、写类型标识和元数据类型标识。3.根据权利要求2所述的方法,其特征在于,所述根据所述请求类型标识和所述文件句柄标识,从与所述请求类型标识对应的线程类型中,选取出用于处理所述任务请求的目标线程,包括:当所述请求类型标识为读类型标识时,获取读管理数组,所述读管理数组用于管理读工作线程,所述读工作线程用于处理读类型的任务请求;判断所述客户端的读请求对应的文件句柄是否已绑定所述服务端的读工作线程;若所述客户端的读请求对应的文件句柄已绑定所述服务端的读工作线程,从所述读管理数组中查找与所述文件句柄标识相同的读工作线程,得到查找结果;当所述查找结果表征查找成功时,将与所述文件句柄标识相同的读工作线程确定为目标线程。4.根据权利要求3所述的方法,其特征在于,所述方法还包括:当所述客户端的读请求对应的文件句柄未绑定所述服务端的读工作线程,或者当所述查找结果表征查找失败时,获取所述读管理数组中各个读工作线程的已分配任务数量;将所述已分配任务数量最少的读工作线程确定为目标线程。5.根据权利要求2所述的方法,其特征在于,所述根据所述请求类型标识和所述文件句柄标识,从与所述请求类型标识对应的线程类型中,选取出用于处理所述任务请求的目标线程,包括:当所述请求类型标识为写类型标识时,获取写管理数组,...

【专利技术属性】
技术研发人员:丁宇光
申请(专利权)人:联想凌拓科技有限公司
类型:发明
国别省市:

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

1