一种锁管理方法、装置、计算设备和分布式系统制造方法及图纸

技术编号:37098914 阅读:15 留言:0更新日期:2023-04-01 05:00
一种锁管理方法、装置、计算设备和分布式系统,其方法包括:第一计算设备的网卡获取用于申请对第一锁执行访问操作的锁访问请求,该第一锁用于控制第一共享资源的访问权限;网卡响应于所述锁访问请求,触发对该第一锁的访问操作。通过上述方法,可以实现对第一计算设备的CPU执行的锁管理操作的卸载处理,由网卡执行锁管理控制,降低CPU的处理操作,提升CPU的利用率。另外,网卡可以直接获得锁访问请求或根据数据处理请求生成锁访问请求,无需CPU来响应锁访问请求,降低CPU的计算开销,并且由于第一锁存储在网卡的第一存储器中,网卡不需要跨总线访问该锁,这样,锁访问请求可以直接在网卡中完成,降低了该锁访问请求的响应时延。降低了该锁访问请求的响应时延。降低了该锁访问请求的响应时延。

【技术实现步骤摘要】
一种锁管理方法、装置、计算设备和分布式系统


[0001]本申请涉计算机
,尤其涉及一种锁管理方法、装置、计算设备和分布式系统。

技术介绍

[0002]锁是实现多个对象对同一共享资源的有序化访问的一种基本控制机制,该多个对象可以是同一个分布式系统内的多个计算设备,也可以是同一个计算设备中的多个进程(或多个线程)。
[0003]目前,一种基于锁的数据访问过程为:为每个共享资源设置一个对应的锁,访问者需要先获得锁,才可以对共享资源进行访问,访问完成之后,再释放锁,从而保证多个访问者能够有序地访问共享资源。
[0004]以分布式系统为例,假设该分布式系统包括第一计算设备和第二计算设备,当第二计算设备发起对第一计算设备上的某共享资源的访问之前,可以首先向第一计算设备发送用于获得该共享资源对应的锁的锁访问请求,第一计算设备通过网卡接收该锁访问请求,并由网卡将该锁访问请求发送至第一计算设备的处理器,然后由处理器执行对该锁的申请操作,锁的释放操作也是相同的流程,这里不再赘述。上述操作,不仅占用了较多处理器的计算资源、网络和I/O资源,而且处理器的处理速度还会影响数据处理请求,导致整个数据处理请求无法满足高性能的业务要求。

技术实现思路

[0005]本申请提供一种锁管理方法、装置、计算设备和分布式系统,用于降低CPU的处理操作的基础上,缩短对锁访问请求的响应时延。
[0006]第一方面,本申请实施例提供了一种锁管理方法,该方法可以应用于第一计算设备中,第一计算设备包括网卡、处理器,网卡上还设置有第一存储器。在该方法中,网卡可以接收锁访问请求,锁访问请求用于申请对指定锁(如第一锁)执行指定的访问操作(如申请锁操作或释放锁操作),其中,第一锁用于控制第一共享资源的访问权限,且第一锁存储在网卡的第一存储器中;网卡响应于该锁访问请求,触发对第一存储器中的第一锁的访问操作。
[0007]通过上述方法,本申请主要是对第一计算设备的CPU执行的锁管理操作的卸载处理,由网卡执行锁管理控制,降低CPU的处理操作,提升CPU的利用率。另一方面,网卡可以通过通信接口直接获得锁访问请求或根据数据处理请求生成锁访问请求,无需CPU来响应锁访问请求,降低CPU的计算开销,另外若锁访问请求所请求访问的锁位于网卡114的存储器1142中,由于第一存储器1142和锁控制模块1141是直接相连的,这样锁控制模块1141不需要跨总线访问该锁,这样,来自客户端10的锁访问请求可以直接在网卡114中完成,降低了服务端20响应该锁访问请求的时延,减少网卡114与内存113之间对锁的访问操作的拥塞压力。
[0008]在一种可能的实施方式中,网卡在获取锁访问请求之前,还可以根据网卡的第一存储器的可用存储空间确定锁存储策略;示例性的,锁存储策略包括:全卸载策略和部分卸载策略,其中全卸载策略用于完成对第一计算设备的处理器所管理的全部锁的管理操作;部分卸载策略用于完成对第一计算设备的处理器所管理的部分锁(如第一锁集合)的管理操作,第一锁集合包括处理器管理的全部锁中至少一个锁。
[0009]通过上述方法,执行全卸载策略,可以将处理器所管理的全部锁的管理操作卸载至网卡执行,可以进一步释放处理器的计算资源,提升处理器的利用率;执行部分卸载策略,可以将处理器所管理的部分锁的管理操作卸载至网卡执行,可以平衡处理器和网卡的负载状况,在减轻处理器计算负担的基础上,保证网卡的稳定运行。
[0010]在一种可能的实施方式中,处理器所管理的全部锁可以存储在第二存储器中,当确定第一存储器的可用存储空间大于第一阈值时,可以执行全卸载策略,即将第一计算设备的处理器所管理的全部锁存储于第一存储器,也即将第二存储器中的全部锁存储至第一存储器中,这时,第二存储器中便没有锁了。当第一存储器的可用存储空间不大于第二阈值时,可以执行部分卸载策略,即将第一锁集合存储于第一存储器,也即将第二存储器中属于第一锁集合的任一锁存储至第一存储器中。
[0011]通过上述方法,执行全卸载策略,可以将处理器所管理的全部锁均存储至网卡的第一存储器中,这样,对于网卡而言,所接收到的任一锁访问请求所请求访问的锁均存储在网卡内,节省了确定锁的存储位置的时间和计算开销,并且网卡不需要跨总线访问锁,降低了服务端20响应该锁访问请求的时延。执行部分卸载策略,可以缓解第一存储器的存储负担,降低对第一存储器的硬件容量的要求。
[0012]在一种可能的实施方式中,当第一计算设备的第一存储器和第二存储器中均存储有至少一个锁时,网卡还可以控制将所述第二存储器中的一个或多个锁迁移至所述第一存储器。例如,网卡根据锁被访问的频率确定第二存储器中第二锁集合,将第二锁集合中每一个锁迁移至第一存储器,第一锁为第二锁集合中任意一个锁。
[0013]通过上述方法,网卡可以动态控制锁在第一存储器和第二存储器之间迁移,如将第二存储器中的锁迁移至第一存储器时,可以减轻第二存储器的存储负担,进一步基于锁的动态迁移,网卡可以将高频访问的锁尽量存储第一存储器中,从而缩短网卡对锁访问请求的响应时延,降低网卡跨总线访问第二存储器中锁的流量和拥塞压力。
[0014]在一种可能的实施方式中,处理器根据锁被访问的频率确定存储于第一存储器中第三锁集合,将第三锁集合中每一个锁从第一存储器迁移至第二存储器。
[0015]通过上述方法,处理器可以将存储在第一存储器的锁迁移至第二存储器,可以减轻第一存储器的存储负担,进一步基于锁的动态迁移,处理器可以将自身高频访问的锁尽量存储第二存储器中,从而缩短处理器对锁访问请求的响应时延。
[0016]在一种可能的实施方式中,网卡获取锁访问请求的途径可以包括:网卡接收第二计算设备发送的锁访问请求;或者,网卡接收第一计算设备的处理器发送的锁访问请求;或者网卡执行程序调用请求生成锁访问请求。
[0017]在一种可能的实施方式中,网卡和处理器通过多协议互联总线连接。
[0018]通过上述方法,由于多协议互联总线支持多种语义,因此可以通过一种协议总线满足网卡与处理器之间的多种数据传输需求,提供了锁迁移的灵活性和便利性。
[0019]在一种可能的实施方式中,网卡和处理器可以通过PCIe连接。
[0020]在一种可能的实施方式中,第一共享资源位于第一计算设备的第二存储器中,第二存储器包括多个共享资源,第一共享资源为该多个共享资源中的任意一个;或第一共享资源存储于第二计算设备中,第一共享资源对应的锁存储在第一计算设备。
[0021]第二方面,本申请实施例还提供了一种锁管理装置,该锁管理装置具有实现上述第一方面的方法实例中行为的功能,有益效果可以参见第一方面的描述此处不再赘述。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。在一个可能的设计中,所述锁管理装置的结构中包括获取模块、处理模块,这些模块可以执行上述第一方面方法示例中的相应功能,具体参见方法示例中的详细描述,此处不做赘述。
[0本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种锁管理方法,其特征在于,所述方法包括:第一计算设备的网卡获取锁访问请求,所述锁访问请求用于申请对第一锁执行访问操作,所述第一锁用于控制第一共享资源的访问权限;所述第一锁存储在所述网卡的第一存储器中;所述网卡响应于所述锁访问请求,触发对所述第一锁的访问操作。2.根据权利要求1所述的方法,其特征在于,在所述第一计算设备的网卡获取锁访问请求之前,所述方法还包括:所述网卡根据所述第一存储器的可用存储空间确定锁存储策略;所述锁存储策略包括:全卸载策略和部分卸载策略,所述全卸载策略用于完成所述第一计算设备的处理器所管理的全部锁的管理操作;所述部分卸载策略用于完成所述第一计算设备的处理器所管理的第一锁集合的管理操作,所述第一锁集合包括所述处理器管理的全部锁中至少一个锁。3.根据权利要求2所述的方法,其特征在于,所述全卸载策略包括:当所述第一存储器的可用存储空间大于第一阈值时,将所述第一计算设备的处理器所管理的全部锁存储于所述第一存储器;所述部分卸载包括:当所述第一存储器的可用存储空间不大于第二阈值时,将所述第一锁集合存储于所述第一存储器。4.根据权利要求1至3中任一项所述的方法,其特征在于,所述第一锁存储在所述第一计算设备的第二存储器中;该方法还包括:所述网卡将所述第二存储器中的至少一个锁迁移至所述第一存储器,所述至少一个锁包括所述第一锁。5.根据权利要求4所述的方法,其特征在于,所述网卡将所述第二存储器中的一个或多个锁迁移至所述第一存储器,包括:所述网卡根据锁被访问的频率确定所述第二存储器中第二锁集合,将所述第二锁集合中每一个锁迁移至所述第一存储器,所述第一锁为所述第二锁集合中任意一个锁。6.根据权利要求1至5中任一项所述的方法,其特征在于,该方法还包括:所述处理器根据锁被访问的频率确定所述第一存储器中第三锁集合,将所述第三锁集合中每一个锁迁移至所述第一计算设备的第二存储器。7.一种锁管理装置,其特征在于,所述锁管理装置设置在第一计算设备中,所述锁管理装置包括通信模块、处理模块、第一存储模块:所述获取模块,用于获取锁访问请求,所述锁访问请求用于申请对第一锁执行访问操作,所述第一锁用于控制第一共享资源的访问权限;所述第一锁存储在所述第一存储模块中;所述处理模块,用于响应于所述锁访问请...

【专利技术属性】
技术研发人员:潘秋萍凌文凯林伟彬
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1