CN105335245B - 故障存储方法和装置、故障查找方法和装置 - Google Patents
故障存储方法和装置、故障查找方法和装置 Download PDFInfo
- Publication number
- CN105335245B CN105335245B CN201410373049.1A CN201410373049A CN105335245B CN 105335245 B CN105335245 B CN 105335245B CN 201410373049 A CN201410373049 A CN 201410373049A CN 105335245 B CN105335245 B CN 105335245B
- Authority
- CN
- China
- Prior art keywords
- failure
- characteristic value
- red
- implanted
- injected
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Abstract
本发明公开了一种故障存储方法和装置、故障查找方法和装置,属于故障注入领域。故障存储方法包括:注入故障时获取待注入故障的描述符作哈希运算,从结果中提取待注入故障的特征值;将多个待注入故障的特征值中的每个特征值根据二叉搜索树插入算法确定对应的红黑树节点;存储待注入故障并获取存储地址;将每个待注入故障的特征值和存储地址组成键值对存储在红黑树节点中。故障查找方法包括:查找故障时获取待查找故障的描述符作哈希运算,从结果中提取特征值并作为索引遍历红黑树节点,判断是否存在该特征值,是则确定故障存在,返回该特征值对应的故障信息的存储地址;否则确定故障不存在。本发明有效地提高了故障注入系统中故障查找的效率。
Description
技术领域
本发明涉及故障注入领域,特别涉及一种故障存储方法和装置、故障查找方法和装置。
背景技术
故障注入技术目前已经从单故障注入发展到了多故障注入。通常情况下,故障注入系统不支持注入两个相同的故障,因此,在注入故障之前需要先遍历系统当前已注入的所有故障,以避免重复注入。在遍历的过程中,故障查询是非常关键的步骤,将直接影响每次故障注入的响应时间和处理时间。
目前,故障注入系统中的故障普遍以链表的形式存储,由于链表本身具有一个节点指向另一个节点的特性,在进行故障查找时,只能以遍历链表的形式从链表中的第一个节点开始一个接一个地进行查找,直到找到需要的故障为止,这种方式查找速度慢,效率很低。
发明内容
有鉴于此,本发明提供了一种故障存储方法和装置、故障查找方法和装置,以提高故障注入系统中故障查找的速度。所述技术方案如下:
第一方面,本发明提供了一种故障存储方法,所述方法包括:
在注入故障时,获取待注入故障的描述符;
对所述描述符进行哈希运算,从所述哈希运算的结果中提取特征值;
将多个所述待注入故障的特征值中的每一个特征值根据二叉搜索树插入算法确定与所述每一个特征值对应的红黑树节点;
存储所述待注入故障,并获取所述待注入故障的存储地址;
将所述每一个待注入故障的特征值和存储地址按照如下针对待注入故障A的特征值和存储地址的处理方式处理:
将所述待注入故障A的特征值与所述待注入故障A的存储地址组成键值对,并将所述键值对存储在与所述待注入故障A的特征值对应的红黑树节点。
结合上述第一方面,在第一种实施方式下,所述方法还包括:
所述描述符包括:故障类别编号;或者,
所述描述符包括:故障类别编号,以及下面三种参数中的至少一种:故障发生对象、故障作用域和故障触发条件。
结合上述第一方面或第一种实施方式,在第二种实施方式下,所述对所述描述符进行哈希运算,从所述哈希运算的结果中提取所述待注入故障的特征值,包括:
对所述描述符进行消息摘要算法MD5运算,在运算结果中提取连续的N个位中的值作为所述待注入故障的特征值;
所述N是根据处理器的位数确定的,是指可由所述处理器一次性处理的位的个数。
结合上述第一方面、第一方面的第一种实施方式或第一方面的第二种实施方式,在第三种实施方式下,所述对所述描述符进行哈希运算,包括:
当所述描述符包括至少两个参数时,先用连接符将所述描述符中的各个参数连接起来,然后对所述连接后的描述符进行哈希运算。
第二方面,本发明提供了一种故障查找方法,该方法包括:在查找故障时,获取待查找故障的描述符;
对所述待查找故障的描述符进行哈希运算,从所述哈希运算的结果中提取特征值;
以所述特征值为索引,遍历与多个已注入故障的特征值对应的多个红黑树节点,判断所述与多个已注入故障的特征值对应的多个红黑树节点中是否存在与所述特征值对应的红黑树节点,所述与多个已注入故障的特征值对应的多个红黑树节点是由所述多个已注入故障的特征值中每一已注入故障的特征值根据二叉搜索树插入算法确定的,所述每一个已注入故障的特征值对应的红黑树节点按照如下针对已注入故障B的特征值对应的红黑树节点的处理方式处理:将所述已注入故障B的特征值与所述已注入故障B的存储地址组成键值对,并将所述键值对存储在与所述已注入故障B的特征值对应的红黑树节点;
如果所述与多个已注入故障的特征值对应的多个红黑树节点中存在与所述特征值对应的红黑树节点,则确定所述故障存在,返回所述特征值对应的故障信息的存储地址;如果所述与多个已注入故障的特征值对应的多个红黑树节点中不存在与所述特征值对应的红黑树节点,则确定所述故障不存在。
结合第二方面,在第一种实施方式下,所述返回所述特征值对应的故障信息的存储地址之后,还包括:
从所述存储地址对应的存储空间中读取故障信息。
第三方面,本发明提供了一种故障存储装置,所述装置包括:
获取模块,用于在注入故障时,获取待注入故障的描述符;
提取模块,用于对所述描述符进行哈希运算,从所述哈希运算的结果中提取所述待注入故障的特征值;
生成模块,用于将多个所述待注入故障的特征值中的每一个特征值根据二叉搜索树插入算法确定与所述每一个特征值对应的红黑树节点;
存储模块,用于存储所述待注入故障;
所述获取模块还用于获取所述待注入故障的存储地址;
所述存储模块还用于将所述每一个待注入故障的特征值和存储地址按照如下针对待注入故障A的特征值和存储地址的处理方式处理:
将所述待注入故障A的特征值与所述待注入故障A的存储地址组成键值对,并将所述键值对存储在与所述待注入故障A的特征值对应的红黑树节点。
结合上述第三方面,在第一种实施方式下,所述描述符包括:故障类别编号;或者,
所述描述符包括:故障类别编号,还有故障发生对象、故障作用域和故障触发条件中的至少一种。
结合上述第三方面或第三方面的第一种实施方式,所述提取模块具体用于对所述描述符进行消息摘要算法MD5运算,在运算结果中提取连续的N个位中的值作为所述待注入故障的特征值;所述N是根据处理器的位数确定的,是指可由所述处理器一次性处理的位的个数。
结合上述第三方面、第三方面的第一种实施方式或第三方面的第二种实施方式,在第三种实施方式下,所述提取模块具体用于当所述描述符包括至少两个参数时,先用连接符将所述描述符中的各个参数连接起来,然后对所述连接后的描述符进行哈希运算,从所述哈希运算的结果中提取所述待注入故障的特征值。
第四方面,本发明还提供了一种故障查找装置,该装置包括:
获取模块,用于在查找故障时,获取待查找故障的描述符;
提取模块,用于对所述待查找故障的描述符进行哈希运算,从所述哈希运算的结果中提取特征值;
查找模块,用于以所述特征值为索引,遍历与多个已注入故障的特征值对应的多个红黑树节点,判断所述与多个已注入故障的特征值对应的多个红黑树节点中是否存在与所述特征值对应的红黑树节点,所述与多个已注入故障的特征值对应的多个红黑树节点是由所述多个已注入故障的特征值中每一已注入故障的特征值根据二叉搜索树插入算法确定的,所述每一个已注入故障的特征值对应的红黑树节点按照如下针对已注入故障B的特征值对应的红黑树节点的处理方式处理:将所述已注入故障B的特征值与所述已注入故障B的存储地址组成键值对,并将所述键值对存储在与所述已注入故障B的特征值对应的红黑树节点;
判定模块,用于如果所述与多个已注入故障的特征值对应的多个红黑树节点中存在与所述特征值对应的红黑树节点,则确定所述故障存在,返回所述特征值对应的故障信息的存储地址;如果所述与多个已注入故障的特征值对应的多个红黑树节点中不存在与所述特征值对应的红黑树节点,则确定所述故障不存在。
结合第四方面,在第一种实施方式下,所述装置还包括:
读取模块,用于在所述判定模块返回所述特征值对应的故障信息的存储地址之后,从所述存储地址对应的存储空间中读取故障信息。
本发明提供的技术方案带来的有益效果是:
在注入故障时,获取待注入故障的描述符;对所述描述符进行哈希运算,从所述哈希运算的结果中提取特征值;将多个所述待注入故障的特征值中的每一个特征值根据二叉搜索树插入算法确定与所述每一个特征值对应的红黑树节点;存储所述待注入故障,并获取所述待注入故障的存储地址;将所述每一个待注入故障的特征值和存储地址按照如下针对待注入故障A的特征值和存储地址的处理方式处理:将所述待注入故障A的特征值与所述待注入故障A的存储地址组成键值对,并将所述键值对存储在与所述待注入故障A的特征值对应的红黑树节点;其中,所述红黑树节点中的特征值作为索引用于故障查找,能够实现基于索引进行故障注入系统中的故障查找,与链表式存储结构相比,更优化更利于查找。
在查找故障时,获取待查找故障的描述符;对所述待查找故障的描述符进行哈希运算,从所述哈希运算的结果中提取特征值;以所述特征值为索引,遍历与多个已注入故障的特征值对应的多个红黑树节点,判断所述与多个已注入故障的特征值对应的多个红黑树节点中是否存在与所述特征值对应的红黑树节点,所述与多个已注入故障的特征值对应的多个红黑树节点是由所述多个已注入故障的特征值中每一已注入故障的特征值根据二叉搜索树插入算法确定的,所述每一个已注入故障的特征值对应的红黑树节点按照如下针对已注入故障B的特征值对应的红黑树节点的处理方式处理:将所述已注入故障B的特征值与所述已注入故障B的存储地址组成键值对,并将所述键值对存储在与所述已注入故障B的特征值对应的红黑树节点;如果所述与多个已注入故障的特征值对应的多个红黑树节点中存在与所述特征值对应的红黑树节点,则确定所述故障存在,返回所述特征值对应的故障信息的存储地址;如果所述与多个已注入故障的特征值对应的多个红黑树节点中不存在与所述特征值对应的红黑树节点,则确定所述故障不存在;上述查找过程仅对存储键值对的红黑树进行查找,无需对存储故障信息的存储空间进行遍历式查找,查找速度快、效果好,有效地提高了故障查找的效率,以及故障注入系统的多故障管理能力。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的故障存储方法流程图;
图2是本发明另一实施例提供的故障查找方法流程图;
图3是本发明另一实施例提供的故障存储方法流程图;
图4是本发明另一实施例提供的红黑树结构示意图;
图5是本发明另一实施例提供的故障查找方法流程图;
图6是本发明另一实施例提供的故障存储装置结构图;
图7是本发明另一实施例提供的故障查找装置结构图;
图8是本发明另一实施例提供的故障存储装置结构图;
图9是本发明另一实施例提供的故障查找装置结构图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
参见图1,本发明一实施例提供了一种故障存储方法,包括:
101:在注入故障时,获取待注入故障的描述符。
本实施例提供的上述方法可以应用于故障注入系统中,该故障注入系统可以为Linux系统等,本实施例对此不做具体限定。
所述描述符用于唯一表征故障,如Linux内核的各种故障等等。根据描述符可以唯一确定一种故障。所述描述符可以用一个参数来表示,或者也可以用多个参数来表示,本实施例对此不做具体限定。
可选的,所述描述符可以包括:故障类别编号;或者,所述描述符可以包括:故障类别编号,还有故障发生对象、故障作用域和故障触发条件中的至少一种。
例如,所述描述符可以用二元组:故障类别编号和故障触发条件来表示;或者,也可以用三元组:故障类别编号、故障发生对象和故障作用域来表示;或者,也可以用四元组:故障类别编号、故障发生对象、故障作用域和故障触发条件来表示,本实施例对此不做具体限定。当采用四元组描述符时,故障类别编号不可为空,其余三个字段皆可为空值,空值代表不做任何限定。
其中,故障类别编号表示该类故障在故障模式库中的次序,可以用数字来表示,如1、2、3等等。故障发生对象为故障的发生载体,可以是某个进程或某些进程等,可以用进程名或进程标识PID等来表示。故障作用域为故障发生时所影响的范围,可以是文件系统中的某个符号名或者整个文件系统等。故障触发条件为故障触发时所必须满足的条件,如某个进程读取root根目录时触发故障2等等,进一步地还可以包括故障最大触发次数或故障最晚触发时间等等。所述故障最大触发次数是指某个故障在触发次数达到该最大触发次数之后就不再被触发了,所述故障最晚触发时间是指超过该最晚触发时间之后该故障就不再被触发了。当然,故障触发条件也可以包括其它参数,本实施例对此不做具体限定。
本实施例中,故障描述符可以以单链表或者双链表等形式来储存,优选地,可以采用双链表的形式来存储,本实施例对此不做具体限定。
102:对所述描述符进行哈希运算,从所述哈希运算的结果中提取待注入故障的特征值。
103:将多个所述待注入故障的特征值中的每一个特征值根据二叉搜索树插入算法确定与每一个特征值对应的红黑树节点。
104:存储上述待注入故障,并获取上述待注入故障的存储地址。
105:将每一个待注入故障的特征值和存储地址按照如下针对待注入故障A的特征值和存储地址的处理方式处理:将该待注入故障A的特征值与该待注入故障A的存储地址组成键值对,并将该键值对存储在与该待注入故障A的特征值对应的红黑树节点。
本实施例中,可选的,所述对该描述符进行哈希运算,从该哈希运算的结果中提取该待注入故障的特征值,可以包括:
对所述描述符进行MD5(Message Digest Algorithm,消息摘要算法)运算,在运算结果中提取连续的N个位中的值作为所述待注入故障的特征值;
所述N是根据处理器的位数确定的,是指可由所述处理器一次性处理的位的个数。
本实施例中,可选的,所述对该描述符进行哈希运算,可以包括:
当该描述符包括至少两个参数时,先用连接符将该描述符中的各个参数连接起来,然后对该连接后的描述符进行哈希运算。
本实施例提供的上述方法,在注入故障时,获取待注入故障的描述符;对所述描述符进行哈希运算,从所述哈希运算的结果中提取特征值;将多个所述待注入故障的特征值中的每一个特征值根据二叉搜索树插入算法确定与所述每一个特征值对应的红黑树节点;存储所述待注入故障,并获取所述待注入故障的存储地址;将所述每一个待注入故障的特征值和存储地址按照如下针对待注入故障A的特征值和存储地址的处理方式处理:将所述待注入故障A的特征值与所述待注入故障A的存储地址组成键值对,并将所述键值对存储在与所述待注入故障A的特征值对应的红黑树节点;其中,所述红黑树节点中的特征值作为索引用于故障查找,能够实现基于索引进行故障注入系统中的故障查找,与链表式存储结构相比,更优化更利于查找。
参见图2,本发明另一实施例还提供了一种故障查找方法,包括:
201:在查找故障时,获取待查找故障的描述符。
202:对该待查找故障的描述符进行哈希运算,从所述哈希运算的结果中提取特征值。
203:以所述特征值为索引,遍历与多个已注入故障的特征值对应的多个红黑树节点,判断所述与多个已注入故障的特征值对应的多个红黑树节点中是否存在与所述特征值对应的红黑树节点,如果是,则执行204;否则,执行205。
其中,所述与多个已注入故障的特征值对应的多个红黑树节点是由所述多个已注入故障的特征值中每一已注入故障的特征值根据二叉搜索树插入算法确定的,所述每一个已注入故障的特征值对应的红黑树节点按照如下针对已注入故障B的特征值对应的红黑树节点的处理方式处理:将所述已注入故障B的特征值与所述已注入故障B的存储地址组成键值对,并将所述键值对存储在与所述已注入故障B的特征值对应的红黑树节点。
204:确定该待查找故障存在,返回所述特征值对应的故障信息的存储地址,流程结束。
205:确定该待查找故障不存在,流程结束。
本实施例中,可选的,所述返回所述特征值对应的故障信息的存储地址之后,还可以包括:
从所述存储地址对应的存储空间中读取故障信息。
本实施例中,可选的,所述描述符可以包括:故障类别编号;或者,
所述描述符包括:故障类别编号,还有故障发生对象、故障作用域和故障触发条件中的至少一种。
本实施例提供的上述方法,在查找故障时,获取待查找故障的描述符;对所述待查找故障的描述符进行哈希运算,从所述哈希运算的结果中提取特征值;以所述特征值为索引,遍历与多个已注入故障的特征值对应的多个红黑树节点,判断所述与多个已注入故障的特征值对应的多个红黑树节点中是否存在与所述特征值对应的红黑树节点,所述与多个已注入故障的特征值对应的多个红黑树节点是由所述多个已注入故障的特征值中每一已注入故障的特征值根据二叉搜索树插入算法确定的,所述每一个已注入故障的特征值对应的红黑树节点按照如下针对已注入故障B的特征值对应的红黑树节点的处理方式处理:将所述已注入故障B的特征值与所述已注入故障B的存储地址组成键值对,并将所述键值对存储在与所述已注入故障B的特征值对应的红黑树节点;如果所述与多个已注入故障的特征值对应的多个红黑树节点中存在与所述特征值对应的红黑树节点,则确定所述故障存在,返回所述特征值对应的故障信息的存储地址;如果所述与多个已注入故障的特征值对应的多个红黑树节点中不存在与所述特征值对应的红黑树节点,则确定所述故障不存在;上述查找过程仅对存储键值对的红黑树进行查找,无需对存储故障信息的存储空间进行遍历式查找,查找速度快、效果好,有效地提高了故障查找的效率,以及故障注入系统的多故障管理能力。
参见图3,本发明另一实施例提供了一种故障存储方法,包括:
301:在注入故障时,获取待注入故障的描述符。
本实施例中,注入的故障可以为一个,或者为多个,通常都为多个。当注入多个故障时,与上述注入一个故障的方法相同,此处不赘述。
本实施例中,可选的,所述描述符可以包括:故障类别编号;或者,所述描述符可以包括:故障类别编号,还有故障发生对象、故障作用域和故障触发条件中的至少一种。
302:对该描述符进行MD5运算,在运算结果中提取连续的N个位中的值作为所述待注入故障的特征值,所述N是根据处理器的位数确定的,是指可由该处理器一次性处理的位的个数。
其中,所述对该描述符进行MD5运算,可以包括:
当该描述符包括至少两个参数时,先用连接符将该描述符中的各个参数连接起来,然后对该连接后的描述符进行MD5运算。
所述连接符可以根据需要设置,如可以为“|”、“+”、“-”、“#”或者“&”等等,本实施例对此不做具体限定。例如,四元组描述符中包括A、B、C和D四个参数,则使用连接符“|”连接后得到字符串“A|B|C|D”。
除上述MD5算法外,还可以采用其它哈希算法进行运算等等,本实施例对此不做具体限定。
303:将多个所述待注入故障的特征值中的每一个特征值根据二叉搜索树插入算法确定与每一个特征值对应的红黑树节点。
当然,也可以采用其它形式来替代该红黑树节点,包括但不限于:数组或链表等等。优选地,本实施例采用红黑树这种二叉搜索树的形式进行存储,有利于提高查找的速度。
红黑树是一种自平衡二叉查找树,是一种数据结构。红黑树是每个节点都带有颜色属性的二叉查找树,颜色或红色或黑色。除了二叉查找树的基本特征外,红黑树还具有以下特征:节点是红色或黑色;根节点是黑色;每个叶节点(NIL节点,空节点)是黑色的;每个红色节点的两个子节点都是黑色,即从每个叶子到根的所有路径上不能有两个连续的红色节点;从任一节点到其每个叶子的所有路径都包含相同数目的黑色节点。基于上述特征,红黑树不同于普通的二叉查找树,具有更快的查找速度,性能更优越。
参见图4,为本发明另一实施例提供的红黑树结构示意图。其中,红黑树上有多个节点,每一个节点上存储有特征值和存储地址组成的键值对,该存储地址对应存储空间中的一个地址,该地址内存储有故障描述符,可以唯一表征一个故障。图中的存储空间采用双链表的形式来存储故障描述符。例如,故障描述符为四元组:(2,“ssh”,“/root”,60),表征的故障如下:故障类别编号为2,故障发生对象为ssh进程,故障作用域为/root目录下,故障触发条件为60s以内。该故障属于故障类型2,注入到ssh进程中,当ssh进程访问/root下的文件时触发该故障,且该故障注入之后60s自动失效。生成一个链表节点存储上述四元组信息,并把该节点插入到链表的尾节点之后,即图中最右侧的节点。对上述故障描述符进行预处理,通过连接符连接后得到字符串“2|ssh|/root|60”,然后对该字符串做MD5运算,取其结果的前4位“8af2”作为该故障描述符的特征值。在红黑树中生成一个新的节点N,将上述特征值“8af2”作为key,将上述链表中最右侧的节点的存储地址“xxxx”作为value,组成键值对存储在红黑树的节点N中,从而完成了故障注入的过程。
304:存储上述待注入故障,并获取该待注入故障的存储地址。
305:将所述每一个待注入故障的特征值和存储地址按照如下针对待注入故障A的特征值和存储地址的处理方式处理:将待注入故障A的特征值与待注入故障A的存储地址组成键值对,并将该键值对存储在与待注入故障A的特征值对应的红黑树节点。
本实施例提供的上述方法,在注入故障时,获取待注入故障的描述符;对该描述符进行MD5运算,在运算结果中提取连续的N个位中的值作为所述待注入故障的特征值;将多个所述待注入故障的特征值中的每一个特征值根据二叉搜索树插入算法确定与所述每一个特征值对应的红黑树节点;存储所述待注入故障,并获取所述待注入故障的存储地址;将所述每一个待注入故障的特征值和存储地址按照如下针对待注入故障A的特征值和存储地址的处理方式处理:将所述待注入故障A的特征值与所述待注入故障A的存储地址组成键值对,并将所述键值对存储在与所述待注入故障A的特征值对应的红黑树节点;其中,所述红黑树节点中的特征值作为索引用于故障查找,能够实现基于索引进行故障注入系统中的故障查找,与链表式存储结构相比,更优化更利于查找。
参见图5,本发明另一实施例提供了一种故障查找方法,包括:
501:在查找故障时,获取待查找故障的描述符。
502:对该待查找故障的描述符进行哈希运算,从该哈希运算的结果中提取特征值。
本实施例中,优选地,对该待查找故障的描述符进行哈希运算,从该哈希运算的结果中提取特征值,可以包括以下步骤:
对该描述符进行MD5运算,在运算结果中提取连续的N个位中的值作为该待注入故障的特征值,所述N是根据处理器的位数确定的,是指可由所述处理器一次性处理的位的个数。
其中,所述N可以在处理器一次性处理的位的个数满足的情况下根据需要设置,如在总共32位的哈希运算结果中,指定前面的第1位,或者指定后面的第1位,或者指定前面的第5位,或者从中间的某位开始的8位或10位等等,本实施例对此不做具体限定。
503:以所述特征值为索引,遍历与多个已注入故障的特征值对应的多个红黑树节点,判断所述与多个已注入故障的特征值对应的多个红黑树节点中是否存在与所述特征值对应的红黑树节点,如果所述与多个已注入故障的特征值对应的多个红黑树节点中存在与所述特征值对应的红黑树节点,则执行504;如果所述与多个已注入故障的特征值对应的多个红黑树节点中不存在与所述特征值对应的红黑树节点,则执行505。
其中,所述与多个已注入故障的特征值对应的多个红黑树节点是由所述多个已注入故障的特征值中每一已注入故障的特征值根据二叉搜索树插入算法确定的,所述每一个已注入故障的特征值对应的红黑树节点按照如下针对已注入故障B的特征值对应的红黑树节点的处理方式处理:将所述已注入故障B的特征值与所述已注入故障B的存储地址组成键值对,并将所述键值对存储在与所述已注入故障B的特征值对应的红黑树节点。
504:确定该待查找故障存在,返回该特征值对应的故障信息的存储地址,从该存储地址对应的存储空间中读取故障信息,流程结束。
其中,所述故障信息为该故障的描述符,可以唯一表征该故障,通过获取该故障信息可以唯一确定该故障,从而完成了故障查找。
505:确定该待查找故障不存在,流程结束。
例如,参见图4,查找节点N所指向的故障信息。已知待查找的故障描述符为(2,“ssh”,“/root”,60),进行预处理通过连接符连接后得到字符串“2|ssh|/root|60”,对该字符串做MD5运算,取其结果的前4位“8af2”作为该故障描述符的特征值,以该特征值为索引在红黑树中进行搜索,找到节点N,因此可以确定该故障存在,即已注入系统中,则返回节点N中的存储地址“xxxx”,从而根据该存储地址可以读取相应的故障描述符信息,完成了查找过程。
本实施例提供的上述方法,在查找故障时,获取待查找故障的描述符;对所述待查找故障的描述符进行哈希运算,从所述哈希运算的结果中提取特征值;以所述特征值为索引,遍历与多个已注入故障的特征值对应的多个红黑树节点,判断所述与多个已注入故障的特征值对应的多个红黑树节点中是否存在与所述特征值对应的红黑树节点;如果所述与多个已注入故障的特征值对应的多个红黑树节点中存在与所述特征值对应的红黑树节点,则确定所述待查找故障存在,返回所述特征值对应的故障信息的存储地址,从该存储地址对应的存储空间中读取故障信息;如果所述与多个已注入故障的特征值对应的多个红黑树节点中不存在与所述特征值对应的红黑树节点,则确定所述待查找故障不存在;上述查找过程仅对存储键值对的红黑树进行查找,无需对存储故障信息的存储空间进行遍历式查找,查找速度快、效果好,有效地提高了故障查找的效率,以及故障注入系统的多故障管理能力。
参见图6,本发明另一实施例提供了一种故障存储装置,包括:
获取模块601,用于在注入故障时,获取待注入故障的描述符;
提取模块602,用于对所述描述符进行哈希运算,从所述哈希运算的结果中提取该待注入故障的特征值;
生成模块603,用于将多个所述待注入故障的特征值中的每一个特征值根据二叉搜索树插入算法确定与所述每一个特征值对应的红黑树节点;
存储模块604,用于存储该待注入故障;
该获取模块601还用于获取该待注入故障的存储地址;
该存储模块604还用于将所述每一个待注入故障的特征值和存储地址按照如下针对待注入故障A的特征值和存储地址的处理方式处理:
将所述待注入故障A的特征值与所述待注入故障A的存储地址组成键值对,并将所述键值对存储在与所述待注入故障A的特征值对应的红黑树节点。
本实施例中,可选的,所述提取模块602具体用于对所述描述符进行消息摘要算法MD5运算,在运算结果中提取连续的N个位中的值作为所述待注入故障的特征值;所述N是根据处理器的位数确定的,是指可由所述处理器一次性处理的位的个数。
本实施例中,可选的,所述提取模块602具体用于当所述描述符包括至少两个参数时,先用连接符将所述描述符中的各个参数连接起来,然后对所述连接后的描述符进行哈希运算,从所述哈希运算的结果中提取所述待注入故障的特征值。
本实施例中,可选的,所述描述符可以包括:故障类别编号;或者,
所述描述符包括:故障类别编号,还有故障发生对象、故障作用域和故障触发条件中的至少一种。
本实施例提供的上述装置可以执行上述任一方法实施例中提供的故障存储方法,详细过程见方法实施例中的描述,此处不赘述。
本实施例提供的上述装置,在注入故障时,获取待注入故障的描述符;对所述描述符进行哈希运算,从所述哈希运算的结果中提取特征值;将多个所述待注入故障的特征值中的每一个特征值根据二叉搜索树插入算法确定与所述每一个特征值对应的红黑树节点;存储所述待注入故障,并获取所述待注入故障的存储地址;将所述每一个待注入故障的特征值和存储地址按照如下针对待注入故障A的特征值和存储地址的处理方式处理:将所述待注入故障A的特征值与所述待注入故障A的存储地址组成键值对,并将所述键值对存储在与所述待注入故障A的特征值对应的红黑树节点;其中,所述红黑树节点中的特征值作为索引用于故障查找,能够实现基于索引进行故障注入系统中的故障查找,与链表式存储结构相比,更优化更利于查找。
参见图7,本发明另一实施例提供了一种故障查找装置,包括:
获取模块701,用于在查找故障时,获取待查找故障的描述符;
提取模块702,用于对所述待查找故障的描述符进行哈希运算,从所述哈希运算的结果中提取特征值;
查找模块703,用于以所述特征值为索引,遍历与多个已注入故障的特征值对应的多个红黑树节点,判断所述与多个已注入故障的特征值对应的多个红黑树节点中是否存在与所述特征值对应的红黑树节点,所述与多个已注入故障的特征值对应的多个红黑树节点是由所述多个已注入故障的特征值中每一已注入故障的特征值根据二叉搜索树插入算法确定的,所述每一个已注入故障的特征值对应的红黑树节点按照如下针对已注入故障B的特征值对应的红黑树节点的处理方式处理:将所述已注入故障B的特征值与所述已注入故障B的存储地址组成键值对,并将所述键值对存储在与所述已注入故障B的特征值对应的红黑树节点;
判定模块704,用于如果所述与多个已注入故障的特征值对应的多个红黑树节点中存在与所述特征值对应的红黑树节点,则确定所述故障存在,返回所述特征值对应的故障信息的存储地址;如果所述与多个已注入故障的特征值对应的多个红黑树节点中不存在与所述特征值对应的红黑树节点,则确定所述故障不存在。
本实施例中,可选的,所述装置还可以包括:
读取模块,用于在所述判定模块返回所述特征值对应的故障信息的存储地址之后,从所述存储地址对应的存储空间中读取故障信息。
本实施例中,可选的,所述描述符可以包括:故障类别编号;或者,所述描述符可以包括:故障类别编号,还有故障发生对象、故障作用域和故障触发条件中的至少一种。
本实施例提供的上述装置可以执行上述任一方法实施例中提供的故障查找方法,详细过程见方法实施例中的描述,此处不赘述。
本实施例提供的上述装置,在查找故障时,获取待查找故障的描述符;对所述待查找故障的描述符进行哈希运算,从所述哈希运算的结果中提取特征值;以所述特征值为索引,遍历与多个已注入故障的特征值对应的多个红黑树节点,判断所述与多个已注入故障的特征值对应的多个红黑树节点中是否存在与所述特征值对应的红黑树节点,所述与多个已注入故障的特征值对应的多个红黑树节点是由所述多个已注入故障的特征值中每一已注入故障的特征值根据二叉搜索树插入算法确定的,所述每一个已注入故障的特征值对应的红黑树节点按照如下针对已注入故障B的特征值对应的红黑树节点的处理方式处理:将所述已注入故障B的特征值与所述已注入故障B的存储地址组成键值对,并将所述键值对存储在与所述已注入故障B的特征值对应的红黑树节点;如果所述与多个已注入故障的特征值对应的多个红黑树节点中存在与所述特征值对应的红黑树节点,则确定所述故障存在,返回所述特征值对应的故障信息的存储地址;如果所述与多个已注入故障的特征值对应的多个红黑树节点中不存在与所述特征值对应的红黑树节点,则确定所述故障不存在;上述查找过程仅对存储键值对的红黑树进行查找,无需对存储故障信息的存储空间进行遍历式查找,查找速度快、效果好,有效地提高了故障查找的效率,以及故障注入系统的多故障管理能力。
参见图8,本发明另一实施例提供了一种故障存储装置,包括:
处理器801,用于在注入故障时,获取待注入故障的描述符;对所述描述符进行哈希运算,从所述哈希运算的结果中提取所述待注入故障的特征值;将多个所述待注入故障的特征值中的每一个特征值根据二叉搜索树插入算法确定与所述每一个特征值对应的红黑树节点;获取所述待注入故障的存储地址;所述存储模块还用于将所述每一个待注入故障的特征值和存储地址按照如下针对待注入故障A的特征值和存储地址的处理方式处理:将所述待注入故障A的特征值与所述待注入故障A的存储地址组成键值对,并将所述键值对存储在与所述待注入故障A的特征值对应的红黑树节点;
存储器802,用于存储所述待注入故障。
本实施例中,所述描述符可以包括:故障类别编号;或者,所述描述符包括:故障类别编号,还有故障发生对象、故障作用域和故障触发条件中的至少一种。
本实施例中,处理器801可以用于对所述描述符进行消息摘要算法MD5运算,在运算结果中提取连续的N个位中的值作为所述待注入故障的特征值;所述N是根据处理器的位数确定的,是指可由所述处理器一次性处理的位的个数。
本实施例中,处理器801可以用于当所述描述符包括至少两个参数时,先用连接符将所述描述符中的各个参数连接起来,然后对所述连接后的描述符进行哈希运算,从所述哈希运算的结果中提取所述待注入故障的特征值。
本实施例提供的上述装置可以执行上述任一方法实施例中提供的故障存储方法,详细过程见方法实施例中的描述,此处不赘述。
本实施例提供的上述装置,在注入故障时,获取待注入故障的描述符;对所述描述符进行哈希运算,从所述哈希运算的结果中提取特征值;将多个所述待注入故障的特征值中的每一个特征值根据二叉搜索树插入算法确定与所述每一个特征值对应的红黑树节点;存储所述待注入故障,并获取所述待注入故障的存储地址;将所述每一个待注入故障的特征值和存储地址按照如下针对待注入故障A的特征值和存储地址的处理方式处理:将所述待注入故障A的特征值与所述待注入故障A的存储地址组成键值对,并将所述键值对存储在与所述待注入故障A的特征值对应的红黑树节点;其中,所述红黑树节点中的特征值作为索引用于故障查找,能够实现基于索引进行故障注入系统中的故障查找,与链表式存储结构相比,更优化更利于查找。
参见图9,本发明另一实施例提供了一种故障查找装置,包括:
处理器901,用于获取模块,用于在查找故障时,获取待查找故障的描述符;对所述待查找故障的描述符进行哈希运算,从所述哈希运算的结果中提取特征值;以所述特征值为索引,遍历与多个已注入故障的特征值对应的多个红黑树节点,判断所述与多个已注入故障的特征值对应的多个红黑树节点中是否存在与所述特征值对应的红黑树节点,所述与多个已注入故障的特征值对应的多个红黑树节点是由所述多个已注入故障的特征值中每一已注入故障的特征值根据二叉搜索树插入算法确定的,所述每一个已注入故障的特征值对应的红黑树节点按照如下针对已注入故障B的特征值对应的红黑树节点的处理方式处理:将所述已注入故障B的特征值与所述已注入故障B的存储地址组成键值对,并将所述键值对存储在与所述已注入故障B的特征值对应的红黑树节点;如果所述与多个已注入故障的特征值对应的多个红黑树节点中存在与所述特征值对应的红黑树节点,则确定所述故障存在,返回所述特征值对应的故障信息的存储地址;如果所述与多个已注入故障的特征值对应的多个红黑树节点中不存在与所述特征值对应的红黑树节点,则确定所述故障不存在。
存储器902,用于存储所述红黑树节点以及故障信息。
本实施例中,可选的,所述处理器901还可以用于:
在返回所述特征值对应的故障信息的存储地址之后,从该存储地址对应的存储空间中读取故障信息。
本实施例中,可选的,所述描述符可以包括:故障类别编号;或者,所述描述符可以包括:故障类别编号,还有故障发生对象、故障作用域和故障触发条件中的至少一种。
本实施例提供的上述装置可以执行上述任一方法实施例中提供的故障查找方法,详细过程见方法实施例中的描述,此处不赘述。
本实施例提供的上述装置,在查找故障时,获取待查找故障的描述符;对所述待查找故障的描述符进行哈希运算,从所述哈希运算的结果中提取特征值;以所述特征值为索引,遍历与多个已注入故障的特征值对应的多个红黑树节点,判断所述与多个已注入故障的特征值对应的多个红黑树节点中是否存在与所述特征值对应的红黑树节点,如果所述与多个已注入故障的特征值对应的多个红黑树节点中存在与所述特征值对应的红黑树节点,则确定所述故障存在,返回所述特征值对应的故障信息的存储地址;如果所述与多个已注入故障的特征值对应的多个红黑树节点中不存在与所述特征值对应的红黑树节点,则确定所述故障不存在。上述查找过程仅对存储键值对的红黑树进行查找,无需对存储故障信息的存储空间进行遍历式查找,查找速度快、效果好,有效地提高了故障查找的效率,以及故障注入系统的多故障管理能力。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种故障存储方法,其特征在于,所述方法包括:
在注入故障时,获取待注入故障的描述符,所述描述符包括:故障类别编号;或者,所述描述符包括:故障类别编号,以及下面三种参数中的至少一种:故障发生对象、故障作用域和故障触发条件;
对所述描述符进行哈希运算,从所述哈希运算的结果中提取所述待注入故障的特征值;
将多个所述待注入故障的特征值中的每一个特征值根据二叉搜索树插入算法确定与所述每一个特征值对应的红黑树节点;
存储所述待注入故障,并获取所述待注入故障的存储地址;
将所述每一个待注入故障的特征值和存储地址按照如下针对待注入故障A的特征值和存储地址的处理方式处理:
将所述待注入故障A的特征值与所述待注入故障A的存储地址组成键值对,并将所述键值对存储在与所述待注入故障A的特征值对应的红黑树节点。
2.根据权利要求1所述的方法,其特征在于,所述对所述描述符进行哈希运算,从所述哈希运算的结果中提取所述待注入故障的特征值,包括:
对所述描述符进行消息摘要算法MD5运算,在运算结果中提取连续的N个位中的值作为所述待注入故障的特征值;
所述N是根据处理器的位数确定的,是指可由所述处理器一次性处理的位的个数。
3.根据权利要求1至2任一项所述的方法,其特征在于,所述对所述描述符进行哈希运算,包括:
当所述描述符包括至少两个参数时,先用连接符将所述描述符中的各个参数连接起来,然后对所述连接后的描述符进行哈希运算。
4.一种故障查找方法,其特征在于,所述方法包括:
在查找故障时,获取待查找故障的描述符,所述描述符包括:故障类别编号;或者,所述描述符包括:故障类别编号,以及下面三种参数中的至少一种:故障发生对象、故障作用域和故障触发条件;
对所述待查找故障的描述符进行哈希运算,从所述哈希运算的结果中提取特征值;
以所述特征值为索引,遍历与多个已注入故障的特征值对应的多个红黑树节点,判断所述与多个已注入故障的特征值对应的多个红黑树节点中是否存在与所述特征值对应的红黑树节点,所述与多个已注入故障的特征值对应的多个红黑树节点是由所述多个已注入故障的特征值中每一已注入故障的特征值根据二叉搜索树插入算法确定的,所述每一个已注入故障的特征值对应的红黑树节点按照如下针对已注入故障B的特征值对应的红黑树节点的处理方式处理:将所述已注入故障B的特征值与所述已注入故障B的存储地址组成键值对,并将所述键值对存储在与所述已注入故障B的特征值对应的红黑树节点;
如果所述与多个已注入故障的特征值对应的多个红黑树节点中存在与所述特征值对应的红黑树节点,则确定所述故障存在,返回所述特征值对应的故障信息的存储地址;如果所述与多个已注入故障的特征值对应的多个红黑树节点中不存在与所述特征值对应的红黑树节点,则确定所述故障不存在。
5.根据权利要求4所述的方法,其特征在于,所述返回所述特征值对应的故障信息的存储地址之后,还包括:
从所述存储地址对应的存储空间中读取故障信息。
6.一种故障存储装置,其特征在于,所述装置包括:
获取模块,用于在注入故障时,获取待注入故障的描述符,所述描述符包括:故障类别编号;或者,所述描述符包括:故障类别编号,以及下面三种参数中的至少一种:故障发生对象、故障作用域和故障触发条件;
提取模块,用于对所述描述符进行哈希运算,从所述哈希运算的结果中提取所述待注入故障的特征值;
生成模块,用于将多个所述待注入故障的特征值中的每一个特征值根据二叉搜索树插入算法确定与所述每一个特征值对应的红黑树节点;
存储模块,用于存储所述待注入故障;
所述获取模块还用于获取所述待注入故障的存储地址;
所述存储模块还用于将所述每一个待注入故障的特征值和存储地址按照如下针对待注入故障A的特征值和存储地址的处理方式处理:
将所述待注入故障A的特征值与所述待注入故障A的存储地址组成键值对,并将所述键值对存储在与所述待注入故障A的特征值对应的红黑树节点。
7.根据权利要求6所述的装置,其特征在于:
所述提取模块具体用于对所述描述符进行消息摘要算法MD5运算,在运算结果中提取连续的N个位中的值作为所述待注入故障的特征值;所述N是根据处理器的位数确定的,是指可由所述处理器一次性处理的位的个数。
8.根据权利要求6至7任一项所述的装置,其特征在于:
所述提取模块具体用于当所述描述符包括至少两个参数时,先用连接符将所述描述符中的各个参数连接起来,然后对所述连接后的描述符进行哈希运算,从所述哈希运算的结果中提取所述待注入故障的特征值。
9.一种故障查找装置,其特征在于,所述装置包括:
获取模块,用于在查找故障时,获取待查找故障的描述符,所述描述符包括:故障类别编号;或者,所述描述符包括:故障类别编号,以及下面三种参数中的至少一种:故障发生对象、故障作用域和故障触发条件;
提取模块,用于对所述待查找故障的描述符进行哈希运算,从所述哈希运算的结果中提取特征值;
查找模块,用于以所述特征值为索引,遍历与多个已注入故障的特征值对应的多个红黑树节点,判断所述与多个已注入故障的特征值对应的多个红黑树节点中是否存在与所述特征值对应的红黑树节点,所述与多个已注入故障的特征值对应的多个红黑树节点是由所述多个已注入故障的特征值中每一已注入故障的特征值根据二叉搜索树插入算法确定的,所述每一个已注入故障的特征值对应的红黑树节点按照如下针对已注入故障B的特征值对应的红黑树节点的处理方式处理:将所述已注入故障B的特征值与所述已注入故障B的存储地址组成键值对,并将所述键值对存储在与所述已注入故障B的特征值对应的红黑树节点;
判定模块,用于如果所述与多个已注入故障的特征值对应的多个红黑树节点中存在与所述特征值对应的红黑树节点,则确定所述故障存在,返回所述特征值对应的故障信息的存储地址;如果所述与多个已注入故障的特征值对应的多个红黑树节点中不存在与所述特征值对应的红黑树节点,则确定所述故障不存在。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
读取模块,用于在所述判定模块返回所述特征值对应的故障信息的存储地址之后,从所述存储地址对应的存储空间中读取故障信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410373049.1A CN105335245B (zh) | 2014-07-31 | 2014-07-31 | 故障存储方法和装置、故障查找方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410373049.1A CN105335245B (zh) | 2014-07-31 | 2014-07-31 | 故障存储方法和装置、故障查找方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105335245A CN105335245A (zh) | 2016-02-17 |
CN105335245B true CN105335245B (zh) | 2019-02-01 |
Family
ID=55285800
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410373049.1A Active CN105335245B (zh) | 2014-07-31 | 2014-07-31 | 故障存储方法和装置、故障查找方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105335245B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105843750A (zh) * | 2016-03-22 | 2016-08-10 | 深圳森格瑞通信有限公司 | 一种提升线性数据结构查询效率的方法 |
CN109271936B (zh) * | 2018-09-18 | 2021-09-24 | 哈尔滨工程大学 | 基于感知哈希算法的飞机振动故障数据库构建与检索方法 |
CN110674028A (zh) * | 2019-08-20 | 2020-01-10 | 华为技术有限公司 | 故障注入方法及其装置、业务服务系统 |
CN111241098A (zh) * | 2020-01-09 | 2020-06-05 | 佛山科学技术学院 | 一种工业故障数据响应方法及装置 |
CN114490565A (zh) * | 2020-10-27 | 2022-05-13 | 网联清算有限公司 | 数据库故障处理方法和装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101420331A (zh) * | 2008-12-12 | 2009-04-29 | 北京邮电大学 | 一种t-mpls网络中的超长连接快速故障定位方法 |
CN103049346A (zh) * | 2012-12-11 | 2013-04-17 | 工业和信息化部电子第五研究所 | 基于失效物理的元器件故障树构建方法和系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS59121450A (ja) * | 1982-12-24 | 1984-07-13 | Fujitsu Ltd | 障害情報記憶方式 |
-
2014
- 2014-07-31 CN CN201410373049.1A patent/CN105335245B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101420331A (zh) * | 2008-12-12 | 2009-04-29 | 北京邮电大学 | 一种t-mpls网络中的超长连接快速故障定位方法 |
CN103049346A (zh) * | 2012-12-11 | 2013-04-17 | 工业和信息化部电子第五研究所 | 基于失效物理的元器件故障树构建方法和系统 |
Non-Patent Citations (1)
Title |
---|
基于URL分类技术的垃圾邮件过滤系统的分析与设计;邢文钊;《中国优秀硕士学位论文全文数据库》;20131115;第15,44-47页 |
Also Published As
Publication number | Publication date |
---|---|
CN105335245A (zh) | 2016-02-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105335245B (zh) | 故障存储方法和装置、故障查找方法和装置 | |
CN109345388B (zh) | 区块链智能合约验证方法、装置及存储介质 | |
US9171153B2 (en) | Bloom filter with memory element | |
CA2743273C (en) | Method and device for intercepting junk mail | |
CN110362597A (zh) | 一种结构化查询语言sql注入检测方法及装置 | |
CN102694801B (zh) | 病毒检测方法、装置以及防火墙设备 | |
US20160092566A1 (en) | Clustering repetitive structure of asynchronous web application content | |
CN110909364B (zh) | 面向源代码双极性软件安全漏洞图谱构建方法 | |
EP3438845A1 (en) | Data updating method and device for a distributed database system | |
CN108804516A (zh) | 相似用户查找装置、方法及计算机可读存储介质 | |
CN112269316A (zh) | 一种基于图神经网络的高鲁棒性威胁狩猎系统与方法 | |
CN102981947A (zh) | 一种测试中准备数据的方法及系统 | |
CN103310350B (zh) | 一种基于谓词区分和关联的快速订阅与匹配方法 | |
CN109800337B (zh) | 一种适用于大字母表的多模式正则匹配算法 | |
CN107992402A (zh) | 日志管理方法及日志管理装置 | |
CN107920067B (zh) | 一种主动对象存储系统上的入侵检测方法 | |
CN105843809A (zh) | 数据处理方法和装置 | |
US8051060B1 (en) | Automatic detection of separators for compression | |
CN106610899B (zh) | 一种测试用例生成方法及装置 | |
CN105357177A (zh) | 一种数据包过滤规则集处理方法及数据包匹配方法 | |
CN106874745A (zh) | 风险检测方法及装置 | |
Raj et al. | Distributed component-based crawler for AJAX applications | |
CN110110524A (zh) | 一种面向计算设备系统的漏洞扫描与维护方法 | |
CN105025017A (zh) | 基于防火墙的防挂马的方法及防火墙 | |
CN109408505A (zh) | 一种布隆过滤器的生成方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |