[发明专利]一种应用程序接口死锁监控方法和装置有效
申请号: | 201610195050.9 | 申请日: | 2016-03-30 |
公开(公告)号: | CN107291558B | 公开(公告)日: | 2020-11-24 |
发明(设计)人: | 邢勇 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F9/52 | 分类号: | G06F9/52 |
代理公司: | 北京润泽恒知识产权代理有限公司 11319 | 代理人: | 苏培华 |
地址: | 英属开曼群岛大开*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 应用程序 接口 死锁 监控 方法 装置 | ||
本申请实施例提供了一种应用程序接口死锁监控方法和装置,涉及计算机技术领域。所述方法包括:接收客户端对一应用程序接口的调用请求;创建针对所述调用请求的死锁检测结点;将所述死锁检测结点插入第一队列;其中,当所述调用请求对应用程序接口的调用结束时,删除第一队列中相应的死锁检测结点;监控第一队列中各死锁检测结点的存在时间是否超过死锁时间阈值;如果检测到任一死锁检测结点的存在时间超过死锁时间阈值,则确定相应被调用的应用程序接口死锁。从而可以基于死锁监控结点,通过监控利用死锁监控结点的存在时间,实现对API的死锁监控,适用性更强,而且精确度较高。
技术领域
本申请涉及计算机技术领域,特别是涉及一种应用程序接口死锁监控方法和一种应用程序接口死锁监控装置。
背景技术
在分步式系统中,系统架构和设计非常复杂,处理逻辑不可避免地存在错误。例如,客户端通过调用系统的应用程序接口(Application Programming Interface,API)请求服务,会有较低的概率很长时间没有得到响应,系统既不返回用户成功,也不返回用户错误。这就是API死锁,死锁的发生会导致程序无限等待或资源严重消耗,使整个系统没有可用资源而陷于瘫痪,严重影响系统安全性和可靠性。
现有的死锁检测的方法主要可以分为静态和动态两大类。静态方法最基本的是代码检查,而所有直接在源程序上做静态死锁检测的技术,都会使用静态程序分析技术。静态程序分析技术是对并发程序的源代码或者规格说明进行人工或者自动化分析,然后通过分析获得程序各个模块的数据依赖关系。静态方法能取得一定的效果,但如果出现并发缺陷如死锁和活锁,其产生来源于特定的程序状态,而且并发软件状态空间非常庞大,时间耗费较长,而且会使得以人工为主的代码检查难以胜任,适用性不高。
动态方法则是通过并发程序在真实环境或模拟环境中运行,通过检测软件对运行信息进行收集,然后利用收集到的信息进行死锁检测。动态分析方法可以分为测试和监控两大类。动态方法只能覆盖到有限的软件运行情况,对于死锁这类出现概率低的缺陷,并不能有效的检测,同样适用性不高。
发明内容
鉴于上述问题,提出了本申请实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种应用程序接口死锁监控方法和相应的一种应用程序接口死锁监控装置。
为了解决上述问题,本申请公开了一种应用程序接口死锁监控方法,其特征在于,包括:
接收客户端对一应用程序接口的调用请求;
创建针对所述调用请求的死锁检测结点;
将所述死锁检测结点插入第一队列;其中,当所述调用请求对应用程序接口的调用结束时,删除第一队列中相应的死锁检测结点;
监控第一队列中各死锁检测结点的存在时间是否超过死锁时间阈值;
如果检测到任一死锁检测结点的存在时间超过死锁时间阈值,则确定相应被调用的应用程序接口死锁。
可选地,所述将所述死锁检测结点插入第一队列的步骤之前,还包括:
根据当前的死锁时间阈值和时间轮中指针所在的槽位,以及整个时间轮周期,计算对应所述死锁检测结点的槽位;
则所述将所述死锁检测结点插入第一队列的步骤包括:将所述死锁检测结点插入所述槽位中的第一队列。
可选地,所述监控第一队列中各死锁检测结点的存在时间是否超过死锁时间阈值的步骤,包括:
定期将时间轮的指针移动到下一个槽位;
对于指针指向的槽位,判断所述槽位中的第一队列的各死锁检测结点的死锁时间阈值是否超过一个时间轮周期;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610195050.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种管理应用程序的方法及装置
- 下一篇:一种智能设备的内容确定方法和装置