[发明专利]在云系统中自动检测分布式并发错误有效
申请号: | 201780049079.9 | 申请日: | 2017-08-08 |
公开(公告)号: | CN109643255B | 公开(公告)日: | 2020-09-08 |
发明(设计)人: | 陆善;刘浩鹏;李光普;哈里迪·古纳维;田琛;叶枫 | 申请(专利权)人: | 华为技术有限公司;芝加哥大学 |
主分类号: | G06F11/07 | 分类号: | G06F11/07 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 系统 自动检测 分布式 并发 错误 | ||
1.一种在包括多个组件计算机的分布式计算系统中检测分布式并发错误的方法,其特征在于,所述方法包括:
在运行所述分布式计算系统期间跟踪访问对象的操作,以生成跟踪结果;
对所述跟踪结果应用预定的一套先行发生规则,以标识所述跟踪操作中的候选操作,其中每个先行发生规则指示在第二种操作之前发生的第一种操作;
构建所述候选操作的有序图,所述图的每个顶点表示所述候选操作中的一个,每条两个顶点之间的边表示所述两个顶点表示的操作之间的先行发生关系,向每个顶点分配位阵列,所述位阵列中的每一位表示所述图中的对应顶点;
对于每个顶点,遍历所述图,并在遍历所述图期间到达目标顶点时设置所述位阵列中对应于所述目标顶点的一个位;
标识一个或多个并发候选操作对,每个标识的并发候选操作对访问对应的一个共同对象,以生成潜在分布式并发错误列表,其中,将所述第一候选操作标识为与所述第二候选操作并发包括:确定所述第一候选操作的位阵列中没有设置对应于所述第二候选操作的位;以及
使用所述标识的一个或多个并发候选操作对,标识所述多个组件计算机中导致分布式并发错误的冲突存储器访问。
2.根据权利要求1所述的方法,其特征在于,所述先行发生规则包括关于两个节点之间的消息的消息规则、关于不同节点发起的线程的线程规则、关于不同线程访问的事件的事件规则以及关于不同线程中操作的执行顺序的程序排序规则。
3.根据权利要求1所述的方法,其特征在于,还包括:
将来自对应的不同线程的、访问所述对应的共同对象并包括至少一个写操作的对应候选操作对标识为所述候选操作。
4.根据权利要求1所述的方法,其特征在于,跟踪所述访问对象的操作包括仅跟踪远程过程调用(remote procedure call,RPC)函数、实施套接字操作的函数和事件处理程序函数。
5.根据权利要求1所述的方法,其特征在于,还包括:分析用于生成所述潜在分布式并发错误列表的每个并发候选操作对,以从所述列表中删除不大可能导致严重故障的并发候选操作对。
6.根据权利要求5所述的方法,其特征在于,对于每个并发候选操作对,所述并发候选操作对访问的所述对应共同对象位于第一节点中,所述方法还包括:分析所述分布式计算系统中出现所述并发候选操作对的一个或多个部分,以确定所述并发操作乱序执行导致的分布式并发错误在不同于所述第一节点的第二节点中是否有影响。
7.根据权利要求1所述的方法,其特征在于,还包括:修改所述分布式计算系统的线程,确定运行所述分布式计算系统期间每个并发操作对中的每个操作的相对时序,以标识真正的动态并发错误。
8.根据权利要求1所述的方法,其特征在于,还包括:修改所述分布式计算系统的线程,以调整运行所述分布式计算系统期间所述并发操作对中所选择的操作的相对时序,引起真正的分布式并发错误,从而确定所述选择的操作的时序灵敏度。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司;芝加哥大学,未经华为技术有限公司;芝加哥大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201780049079.9/1.html,转载请声明来源钻瓜专利网。