CN109889440B - 一种基于最大生成树的纠删码失效节点重构路径选择方法 - Google Patents
一种基于最大生成树的纠删码失效节点重构路径选择方法 Download PDFInfo
- Publication number
- CN109889440B CN109889440B CN201910126692.7A CN201910126692A CN109889440B CN 109889440 B CN109889440 B CN 109889440B CN 201910126692 A CN201910126692 A CN 201910126692A CN 109889440 B CN109889440 B CN 109889440B
- Authority
- CN
- China
- Prior art keywords
- node
- nodes
- weight
- edge
- central
- 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
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明属于数据存储领域,具体涉及一种基于最大生成树的纠删码失效节点重构路径选择方法。本发明的目的是针对传统数据修复方式在多节点失效情况下性能下降严重的问题,提出一种基于最大生成树的纠删码失效节点重构路径选择方法,根据节点的计算能力,选举中心节点,并根据各节点间带宽,生成最大生成树,降低多节点修复时的网络带宽消耗和修复时间,提升修复效率。本发明所述的一种基于最大生成树的纠删码失效节点重构路径选择方法,克服传统纠删码数据修复方法串行修复问题,减少冗余数据传输,提高修复效率,降低修复时间。
Description
技术领域
本发明属于数据存储领域,具体涉及一种基于最大生成树的纠删码失效节点重构路径选择方法。
背景技术
进入大数据时代,数据规模庞大,增长迅速。应用广泛的大型分布式系统,往往包含几千甚至上万个存储节点,庞大的规模使节点失效成为常态,据统计,大型系统之中,平均每天有1%~2%的节点失效,因此,通过冗余技术保证数据的可用性与可靠性,即在部分存储节点失效的情况下仍然能够访问系统中的所有数据尤为重要。常用的冗余技术有多副本技术和纠删码技术。多副本技术因其简单和数据访问带宽较高等优点被广泛应用。但随着数据量不断增长,多副本技术会引入极大的存储开销,且存储利用率低。相比于多副本技术,纠删码技术能够以较低的存储开销获得更高的数据可用性,近年来受到广泛的关注。
然而,纠删码技术因其较高的修复成本并未得到大规模的应用。当有节点失效时,系统会选择空闲节点作为新生节点,新生节点从存活的节点(称为供应节点)中读取数据,完成失效数据的修复。新生节点需要从多个供应节点下载数据,造成了较高的网络资源消耗,并且降低了数据修复速度。因此,如何降低纠删码修复所占用的网络资源消耗,提高修复速率,对提高纠删码性能尤为重要。
传统纠删码修复方法为星型和树型结构修复方法。基于星型结构的修复方法中,以新生节点为中心,所有供应节点直接将数据块发送给新生节点,供应节点与新生节点间形成星型结构。星型结构修复方法较为简单,但修复时间受制于新生节点与供应节点之间的网络带宽瓶颈,即修复时间为网络带宽最小的供应节点传输数据到新生节点的时间。
由于很多分布式存储系统采用“延迟修复”的策略,即只有当失效存储节点个数达到某一阈值时,启动对失效节点的修复。传统的星型结构和树型结构修复方法串行修复的策略不再最优。并且随着系统中节点规模不断扩大,失效数据修复的代价将不断提高。
发明内容
本发明的目的是针对传统数据修复方式在多节点失效情况下性能下降严重的问题,提出一种基于最大生成树的纠删码失效节点重构路径选择方法,根据节点的计算能力,选举中心节点,并根据各节点间带宽,生成最大生成树,降低多节点修复时的网络带宽消耗和修复时间,提升修复效率。
一种基于最大生成树的纠删码失效节点重构路径选择方法,该方法包括以下步骤:
步骤1:选择中心节点;
步骤1.1:根据空闲节点的计算能力选择出中心节点;
步骤1.2:通过对比空闲节点计算能力大小,选择出计算能力最强的节点作为中心节点;
步骤2:根据选择的中心节点,选择供应节点;
步骤2.1:在中心节点选择完成后,确定向其传输数据的供应节点;
步骤2.2:引入N′和E′,分别存放参与修复的供应节点和中心节点,以及之间的传输链路;
步骤2.3:算法的每一步扫描数组WEIGHT,在N-N′中得到与N′有最大带宽的节点,令其为k,并输出边(k,NODE[k]),然后修改数组NODE和WEIGHT,标记k已加入N′,直到N′中有d+1个节点结束,选择出d个供应节点;
步骤3:根据选择的供应节点,选择新生节点;
步骤3.1:选择存储修复数据的新生节点;
步骤3.2:引入P′和D′,分别存放参与修复的新生节点和中心节点,以及之间的传输链路;
步骤3.3:算法的每一步扫描数组WEIGHT′,在P-P′中得到与P′有最大带宽的节点,令其为m,并输出边(m,NODE′[m])。然后修改数组NODE′和WEIGHT′,标记m已加入P′,直到P′中有r个节点结束,选择出r-1个新生节点;
步骤4:恢复数据;
步骤4.1:供应节点将数据传输到中心节点,中心节点根据失效数据,利用接收的数据,分别计算出r个节点失效数据;
步骤4.2:中心节点保留一份失效数据,并将剩余的r-1份失效数据分别发送到r-1个新生节点中,完成r个失效节点的修复。
步骤1.1所述根据空闲节点的计算能力选择出中心节点包括:选取磁盘I/O、CPU核数、主频、内存这四个决定性因素作为节点计算能力初始化公式的参数,将这四个因素用x1~x4表示,并分配相应的权重ω1~ω4,对其中更加重要的因素分配较大的权重,ω1+ω2+ω3+ω4=1,每个节点Ni的计算能力初始化为:
步骤2.1所述确定向其传输数据的供应节点包括:以N={N0,N1,N2,...,Nn-r}表示中心节点与候选供应节点组成的集合,其中N0表示中心节点,N1,N2,...,Nn-r表示候选供应节点,边集E={(Ni,Nj)|i,j=0,1,2,...,n-r,i<j}表示各个节点间的路径,权值代表节点间的可用链路带宽大小,节点集N和边集E共同构成了节点间的网络带宽图G=(N,E)。
所述步骤2.2包括:由于最大修复树要以N0为根节点,因此初始时N′={0},0表示节点N0,E′=Φ;为了便于在集合N′和N-N′之间选择权值最大的边,可以建立两个数组NODE和WEIGHT;NODE[i]表示N′中的一个节点,该节点和N-N′中的一个定点构成的边(i,NODE[i])具有最大的带宽;WEIGHT[i]表示边(i,NODE[i])的权值;初始时,由于N′的初值为{0},因此NODE[i]的值为0,i=1,2,...,n-r;而WEIGHT[i]为边(0,i)的权,i=1,2,...,n-r。
所述步骤3.1包括:以P={P0,P1,P2,...,Ps}表示中心节点与候选新生节点组成的集合,其中P0表示中心节点,P1,P2,...,Ps表示候选供应节点,边集D={(Pi,Pj)|i,j=0,1,2,...,s,i<j}表示各个节点间的路径,权值代表节点间的可用链路带宽大小。节点集P和边集D共同构成了节点间的网络带宽图G=(P,D)。
所述步骤3.2包括:由于最大修复树要以P0为根节点,因此初始时P′={0},0表示节点P0,D′=Φ;为了便于在集合P′和P-P′之间选择权值最大的边,可以建立两个数组NODE′和WEIGHT′;NODE′[i]表示P′中的一个节点,该节点和P-P′中的一个定点构成的边(i,NODE′[i])具有最大的带宽;WEIGHT′[i]表示边(i,NODE′[i])的权值;初始时,由于P′的初值为{0},因此NODE′[i]的值为0,i=1,2,...,s;而WEIGHT′[i]为边(0,i)的权,i=1,2,...,s。
本发明的有益效果在于:本发明所述的一种基于最大生成树的纠删码失效节点重构路径选择方法,克服传统纠删码数据修复方法串行修复问题,减少冗余数据传输,提高修复效率,降低修复时间。
附图说明
图1为传统串行修复方法示意图。
图2为(8,4,4)-纠删码节点连接示意图。
图3为(8,4,4)-纠删码节点失效修复方法示意图。
图4为(8,4,4)-纠删码节点失效修复结果示意图。
具体实施方式
下面将结合附图对本发明做进一步描述,应指出的是,所描述的实施例仅旨在便于解释本发明,并不构成对本发明的限制。
本发明涉及到分布式存储系统中数据恢复问题,利用一种基于最大生成树的纠删码失效节点重构路径选择方法,恢复分布式存储系统中丢失的数据。本发明提出一种基于最大生成树的纠删码失效节点重构路径选择方法,该方法包括四个部分,即中心节点选择阶段、供应节点选择阶段和新生节点选择阶段、数据恢复阶段。以(n,k,d)纠删码为例,系统中有n个节点,当有小于等于k个节点失效时,任选d个存活节点进行修复都可以恢复原始数据。假设修复阈值为r(r≤k),即当系统中累计有r个节点失效时,开始进行数据修复。
中心节点选择阶段:
步骤A1:首先根据空闲节点的计算能力选择出中心节点。选取磁盘I/O、CPU核数、主频、内存这四个决定性因素作为节点计算能力初始化公式的参数,将这四个因素用x1~x4表示,并分配相应的权重ω1~ω4,可以对其中更加重要的因素分配较大的权重,ω1+ω2+ω3+ω4=1。每个节点Ni的计算能力初始化为:
步骤A2:通过对比空闲节点计算能力大小,选择出计算能力最强的节点作为中心节点。
供应节点选择阶段:
步骤B1:在中心节点选择完成后,需要确定向其传输数据的供应节点。以N={N0,N1,N2,...,Nn-r}表示中心节点与候选供应节点组成的集合,其中N0表示中心节点,N1,N2,...,Nn-r表示候选供应节点。边集E={(Ni,Nj)|i,j=0,1,2,...,n-r,i<j}表示各个节点间的路径,权值代表节点间的可用链路带宽大小。节点集N和边集E共同构成了节点间的网络带宽图G=(N,E)。
步骤B2:引入N′和E′,分别存放参与修复的供应节点和中心节点,以及之间的传输链路。由于最大修复树要以N0为根节点,因此初始时N′={0},0表示节点N0,E′=Φ。为了便于在集合N′和N-N′之间选择权值最大的边,可以建立两个数组NODE和WEIGHT。NODE[i]表示N′中的一个节点,该节点和N-N′中的一个定点构成的边(i,NODE[i])具有最大的带宽;WEIGHT[i]表示边(i,NODE[i])的权值。初始时,由于N′的初值为{0},因此NODE[i]的值为0,i=1,2,...,n-r;而WEIGHT[i]为边(0,i)的权,i=1,2,...,n-r。
步骤B3:算法的每一步扫描数组WEIGHT,在N-N′中得到与N′有最大带宽的节点,令其为k,并输出边(k,NODE[k])。然后修改数组NODE和WEIGHT,标记k已加入N′,直到N′中有d+1个节点结束,选择出d个供应节点。
新生节点选择阶段:
步骤C1:在供应节点选择完成后,需要选择存储修复数据的新生节点。以P={P0,P1,P2,...,Ps}表示中心节点与候选新生节点组成的集合,其中P0表示中心节点,P1,P2,...,Ps表示候选供应节点。边集D={(Pi,Pj)|i,j=0,1,2,...,s,i<j}表示各个节点间的路径,权值代表节点间的可用链路带宽大小。节点集P和边集D共同构成了节点间的网络带宽图G=(P,D)。
步骤C2:引入P′和D′,分别存放参与修复的新生节点和中心节点,以及之间的传输链路。由于最大修复树要以P0为根节点,因此初始时P′={0},0表示节点P0,D′=Φ。为了便于在集合P′和P-P′之间选择权值最大的边,可以建立两个数组NODE′和WEIGHT′。NODE′[i]表示P′中的一个节点,该节点和P-P′中的一个定点构成的边(i,NODE′[i])具有最大的带宽;WEIGHT′[i]表示边(i,NODE′[i])的权值。初始时,由于P′的初值为{0},因此NODE′[i]的值为0,i=1,2,...,s;而WEIGHT′[i]为边(0,i)的权,i=1,2,...,s。
步骤C3:算法的每一步扫描数组WEIGHT′,在P-P′中得到与P′有最大带宽的节点,令其为m,并输出边(m,NODE′[m])。然后修改数组NODE′和WEIGHT′,标记m已加入P′,直到P′中有r个节点结束,选择出r-1个新生节点。
数据恢复阶段:
D1:供应节点将数据传输到中心节点,中心节点根据失效数据,利用接收的数据,分别计算出r个节点失效数据;
D2:中心节点保留一份失效数据,并将剩余的r-1份失效数据分别发送到r-1个新生节点中,完成r个失效节点的修复。
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (1)
1.一种基于最大生成树的纠删码失效节点重构路径选择方法,其特征在于,该方法包括以下步骤:
步骤1:选择中心节点;
步骤1.1:根据空闲节点的计算能力选择出中心节点;
选取磁盘I/O、CPU核数、主频、内存这四个决定性因素作为节点计算能力初始化公式的参数,将这四个因素用x1~x4表示,并分配相应的权重ω1~ω4,对其中更加重要的因素分配大权重,ω1+ω2+ω3+ω4=1,每个节点Ni的计算能力初始化为:
步骤1.2:通过对比空闲节点计算能力大小,选择出计算能力最厉害的节点作为中心节点;
步骤2:根据选择的中心节点,选择供应节点;
步骤2.1:在中心节点选择完成后,确定向其传输数据的供应节点;
以N={N0,N1,N2,...,Nn-r}表示中心节点与候选供应节点组成的集合,其中N0表示中心节点,N1,N2,...,Nn-r表示候选供应节点,边集E={(Ni,Nj)|i,j=0,1,2,...,n-r,i<j}表示各个节点间的路径,权值代表节点间的用链路带宽大小,节点集N和边集E共同构成了节点间的网络带宽图G=(N,E);
步骤2.2:引入N′和E′,分别存放参与修复的供应节点和中心节点,以及之间的传输链路;
由于最大修复树要以N0为根节点,因此初始时N′={0},0表示节点N0,E′=Φ;为了便于在集合N′和N-N′之间选择权值最大的边,建立两个数组NODE和WEIGHT;NODE[i]表示N′中的一个节点,该节点和N-N′中的一个定点构成的边(i,NODE[i])具有最大的带宽;WEIGHT[i]表示边(i,NODE[i])的权值;初始时,由于N′的初值为{0},因此NODE[i]的值为0,i=1,2,...,n-r;而WEIGHT[i]为边(0,i)的权,i=1,2,...,n-r;
步骤2.3:每一步扫描数组WEIGHT,在N-N′中找出与N′有最大带宽的节点,令其为k,并输出边(k,NODE[k]),然后修改数组NODE和WEIGHT,标记k已加入N′,直到N′中有d+1个节点结束,选择出d个供应节点;
步骤3:根据选择的供应节点,选择新生节点;
步骤3.1:选择存储修复数据的新生节点;
以P={P0,P1,P2,...,Ps}表示中心节点与候选新生节点组成的集合,其中P0表示中心节点,P1,P2,...,Ps表示候选供应节点,边集D={(Pi,Pj)|i,j=0,1,2,...,s,i<j}表示各个节点间的路径,权值代表节点间的用链路带宽大小,节点集P和边集D共同构成了节点间的网络带宽图G=(P,D);
步骤3.2:引入P′和D′,分别存放参与修复的新生节点和中心节点,以及之间的传输链路;
由于最大修复树要以P0为根节点,因此初始时P′={0},0表示节点P0,D′=Φ;为了便于在集合P′和P-P′之间选择权值最大的边,建立两个数组NODE′和WEIGHT′;NODE′[i]表示P′中的一个节点,该节点和P-P′中的一个定点构成的边(i,NODE′[i])具有最大的带宽;WEIGHT′[i]表示边(i,NODE′[i])的权值;初始时,由于P′的初值为{0},因此NODE′[i]的值为0,i=1,2,...,s;而WEIGHT′[i]为边(0,i)的权,i=1,2,...,s;
步骤3.3:每一步扫描数组WEIGHT′,在P-P′中找出与P′有最大带宽的节点,令其为m,并输出边(m,NODE′[m]);然后修改数组NODE′和WEIGHT′,标记m已加入P′,直到P′中有r个节点结束,选择出r-1个新生节点;
步骤4:恢复数据;
步骤4.1:供应节点将数据传输到中心节点,中心节点根据失效数据,利用接收的数据,分别计算出r个节点失效数据;
步骤4.2:中心节点保留一份失效数据,并将剩余的r-1份失效数据分别发送到r-1个新生节点中,完成r个失效节点的修复。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910126692.7A CN109889440B (zh) | 2019-02-20 | 2019-02-20 | 一种基于最大生成树的纠删码失效节点重构路径选择方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910126692.7A CN109889440B (zh) | 2019-02-20 | 2019-02-20 | 一种基于最大生成树的纠删码失效节点重构路径选择方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109889440A CN109889440A (zh) | 2019-06-14 |
CN109889440B true CN109889440B (zh) | 2021-02-02 |
Family
ID=66928629
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910126692.7A Active CN109889440B (zh) | 2019-02-20 | 2019-02-20 | 一种基于最大生成树的纠删码失效节点重构路径选择方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109889440B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111385200B (zh) * | 2020-03-04 | 2022-03-04 | 中国人民解放军国防科技大学 | 用于数据块修复的控制方法和装置 |
CN111625400B (zh) * | 2020-05-26 | 2024-01-16 | 平安科技(深圳)有限公司 | 一种数据冗余处理方法、装置及存储介质 |
CN112714031B (zh) * | 2021-03-29 | 2021-06-22 | 中南大学 | 一种基于带宽感知的故障节点快速修复方法 |
CN113285985A (zh) * | 2021-04-30 | 2021-08-20 | 桂林电子科技大学 | 一种多数据中心背景下基于遗传算法的rs码节点修复方法 |
CN113721848B (zh) * | 2021-08-19 | 2024-02-09 | 华中科技大学 | 一种基于纠删码的多节点调度修复方法及系统 |
CN113721851B (zh) * | 2021-08-26 | 2024-08-27 | 华中科技大学 | 一种基于纠删码的异构网络单节点修复方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101350761A (zh) * | 2007-07-18 | 2009-01-21 | 华为技术有限公司 | 实现路径建立、计算的方法、装置及系统 |
CN102413509A (zh) * | 2011-11-09 | 2012-04-11 | 中国科学院上海微系统与信息技术研究所 | 一种wsn中的时延受限能耗均衡数据采集树构建方法 |
CN103607304A (zh) * | 2013-11-21 | 2014-02-26 | 中国人民解放军国防科学技术大学 | 一种基于纠删码的失效数据线形修复方法 |
CN105978711A (zh) * | 2016-04-29 | 2016-09-28 | 南京邮电大学 | 一种基于最小生成树的最佳交换边查找方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050015511A1 (en) * | 2003-07-02 | 2005-01-20 | Nec Laboratories America, Inc. | Accelerated large data distribution in overlay networks |
US9448887B1 (en) * | 2015-08-22 | 2016-09-20 | Weka.IO Ltd. | Distributed erasure coded virtual file system |
CN106230953B (zh) * | 2016-08-05 | 2019-07-05 | 北京邮电大学 | 一种基于分布式存储的d2d通信方法及装置 |
CN106920015B (zh) * | 2017-04-11 | 2021-05-11 | 东南大学 | 适用于配电网重构问题编码的最短环路动态划分方法 |
CN109067852A (zh) * | 2018-07-15 | 2018-12-21 | 中国人民解放军国防科技大学 | 一种基于纠删码的跨中心协同修复方法 |
CN109194444A (zh) * | 2018-09-01 | 2019-01-11 | 哈尔滨工程大学 | 一种基于网络拓扑的平衡二叉树修复方法 |
-
2019
- 2019-02-20 CN CN201910126692.7A patent/CN109889440B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101350761A (zh) * | 2007-07-18 | 2009-01-21 | 华为技术有限公司 | 实现路径建立、计算的方法、装置及系统 |
CN102413509A (zh) * | 2011-11-09 | 2012-04-11 | 中国科学院上海微系统与信息技术研究所 | 一种wsn中的时延受限能耗均衡数据采集树构建方法 |
CN103607304A (zh) * | 2013-11-21 | 2014-02-26 | 中国人民解放军国防科学技术大学 | 一种基于纠删码的失效数据线形修复方法 |
CN105978711A (zh) * | 2016-04-29 | 2016-09-28 | 南京邮电大学 | 一种基于最小生成树的最佳交换边查找方法 |
Non-Patent Citations (1)
Title |
---|
《NTar:基于网络拓扑的纠删码树型修复方法》;许方亮等;《计算机研究与发展》;科学出版社;20131231;第50卷(第S2期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN109889440A (zh) | 2019-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109889440B (zh) | 一种基于最大生成树的纠删码失效节点重构路径选择方法 | |
CN103607304B (zh) | 一种基于纠删码的失效数据线形修复方法 | |
Shaker et al. | Self-stabilizing structured ring topology p2p systems | |
CN106170782B (zh) | 用于在网络中的机器的大规模并行处理集群中创建高度可扩展的高可用性集群的系统和方法 | |
CN110457161A (zh) | 一种高效高可靠的大数据存储系统、方法、计算机程序 | |
Amudhavel et al. | Effective maintenance of replica in distributed network environment using DST | |
CN109194444A (zh) | 一种基于网络拓扑的平衡二叉树修复方法 | |
CN113901069B (zh) | 一种分布式数据库的数据存储方法和装置 | |
CN104391759A (zh) | 一种纠删码存储中负载感知的数据归档方法 | |
CN112035059A (zh) | 分布式存储系统单点失效修复方法、电子设备与存储介质 | |
CN110661841A (zh) | 微服务架构中分布式服务发现集群的数据一致性方法 | |
CN111506421A (zh) | 一种实现Redis集群的可用性方法 | |
CN109067852A (zh) | 一种基于纠删码的跨中心协同修复方法 | |
CN113419895B (zh) | 一种降低储存集群系统中修复开销的优化方法及装置 | |
Zhang et al. | Aggrecode: Constructing route intersection for data reconstruction in erasure coded storage | |
CN114116696B (zh) | 云存储系统中考虑节点选择机制的故障节点数据重构方法 | |
CN113225395A (zh) | 一种多数据中心环境下的数据分布策略及数据修复算法 | |
CN104348695B (zh) | 一种基于人工免疫系统的虚拟网络映射方法及其系统 | |
CN109857585A (zh) | 一种基于平衡二叉树的纠删码失效节点重构方法 | |
CN115883577B (zh) | 一种区块链网络分簇及数据传输方法 | |
CN115883589A (zh) | 分布式存储中针对数据修复的动态节点选择方法及系统 | |
CN113285985A (zh) | 一种多数据中心背景下基于遗传算法的rs码节点修复方法 | |
CN110781025B (zh) | 基于完全图的对称部分重复码构造及故障节点修复方法 | |
CN112035576A (zh) | 区块链账本的分布式存储方法 | |
CN112463812A (zh) | 一种基于Ceph分布式系统多机架更新修复数据的优化方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |