CN103645861B - 一种纠删码集群中失效节点的重构方法 - Google Patents

一种纠删码集群中失效节点的重构方法 Download PDF

Info

Publication number
CN103645861B
CN103645861B CN201310651547.3A CN201310651547A CN103645861B CN 103645861 B CN103645861 B CN 103645861B CN 201310651547 A CN201310651547 A CN 201310651547A CN 103645861 B CN103645861 B CN 103645861B
Authority
CN
China
Prior art keywords
node
data
weighted value
correcting
surviving
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
Application number
CN201310651547.3A
Other languages
English (en)
Other versions
CN103645861A (zh
Inventor
黄建忠
曹强
谢长生
罗海兵
代尔卫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huazhong University of Science and Technology
Original Assignee
Huazhong University of Science and Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huazhong University of Science and Technology filed Critical Huazhong University of Science and Technology
Priority to CN201310651547.3A priority Critical patent/CN103645861B/zh
Publication of CN103645861A publication Critical patent/CN103645861A/zh
Application granted granted Critical
Publication of CN103645861B publication Critical patent/CN103645861B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Detection And Correction Of Errors (AREA)

Abstract

本发明公开了一种纠删码存储集群中失效节点的重构方法,包括:1)有节点失效时,根据节点的负载和网络带宽,初始化所有存活节点的权重值;2)选取权重值最大的K个存活节点,作为恢复该失效节点中的数据块读取分布,其中K为存储集群中数据节点的数目;3)将上述K个存活节点的权重值分别减1;4)判断权值大于0的节点数量是否小于K,若是则转到步骤5),若否则转到步骤2);5)根据所有数据块读取分布,解码出失效节点上对应偏移地址的数据块中的数据。本发明根据权重值选择重构失效节点的数据节点,减少了负载不均衡时的响应时间;同时降低了纠删码存储集群中各个节点因频繁的超负载而崩溃的概率,提高整个纠删码存储集群的可靠性。

Description

一种纠删码集群中失效节点的重构方法
技术领域
本发明属于计算机存储技术领域,更具体地,涉及一种纠删码集群中失效节点的重构方法。
背景技术
在大数据时代到来的今天,大规模的存储集群为云平台提供数据支撑。这样庞大的存储集群中,故障的发生越来越频繁。为了数据的可靠性,存储集群通常采用数据冗余技术。由于纠删码具有存储效率高的优点,已逐渐被基于多副本的传统存储集群所采用,用于读多次写一次的归档应用中,从而形成了一种基于纠删码的存储集群。根据存储硬件、软件等方面的差异性,网络集群可以划分为同构集群和异构集群。其中,集群异构性是普遍存在的,即使是在分布式的网络环境下同构存储集群中,每个节点表现出来的实时网络带宽,CPU处理能力等方面都普遍存在差异性。
基于Reed-Solomon编码的存储集群,即,RS(N,K)码存储集群,如果出现了一个失效数据节点,为了重构出该失效节点,传统的重构过程包括以下三步:(I)选取K个存活的存储节点;(II)读取这K个存储节点上相同偏移和长度的数据,即存活数据块,通过这K个存储数据块解码出失效节点上所对应的失效数据块;(III)重复步骤(II)直到恢复出该失效节点上的所有数据。如图1所示,为传统的纠删码集群中失效数据节点的重构过程,该过程是选取K个存活节点,读取这K个节点上相同位置上的相同长度的数据块,根据读取的K个块恢复失效节点上对应的数据块,选取不同偏移地址,重复上述恢复过程直到恢复出失效节点上的所有数据。图2给出该传统的重构失效数据节点的流程图。
在上述的传统的失效节点重构过程中,如果各个存活节点的负载比较均衡,并且节点网络带宽相近,则K个节点上的数据块读取时间是相近的。但是,当各个节点的负载和网络带宽相差很大,传统的纠删码存储集群会存在如下两方面问题:
一方面,在纠删码存储集群重构过程中,重构速度取决于K个节点中带宽最小的某个节点,这样的话,最晚完成数据块读取的这个存活节点将成为整个重构过程的瓶颈。
另一方面,在纠删码集群的重构过程中,某些节点的负载相对很轻,所能提供的数据读带宽就很高;反之,负载最重的存活节点就无法提供相近的读带宽,从而,重构过程将受限于该重负载的存储节点。只有读取到所有K个存活分块,才可能进行下一个数据重构操作。
发明内容
针对现有技术缺陷,本发明的目的在于提供一种纠删码存储集群中具有负载感知特性的重构优化方法。本方法同时适用于同构和异构存储集群。在各个存活节点的负载相对比较均衡时,该方法能获得与传统重构过程相同的重构性能;另外,它能够解决传统重构过程中由于各个节点负载相差较大而存在的重构性能瓶颈问题,即,存活节点对数据块读操作响应时间相差过大而导致的重构性能受限于‘最慢’存储节点的问题。本质上讲,传统重构方法无法充分利用存储集群资源。
为实现上述目的,本发明提供了一种纠删码集群中失效节点的重构方法,该方法包括以下步骤:
(1)当纠删码存储集群中有节点失效时,根据纠删码存储集群中节点的负载和网络带宽,初始化所有存活节点的权重值,并将所有存活节点的权重值保存在一个节点权重值数组中;
(2)在节点权重值数组中选取权重值最大的K个存活节点,作为恢复该失效节点中对应偏移地址的数据块的数据块读取分布,其中所述K为存储集群中数据节点的数目;
(3)将节点权重值数组中上述K个存活节点的权重值分别减1;
(4)判断节点权重值数组中权值大于0的节点数量是否小于K,若是则转到步骤(5),若否则转到步骤(2);
(5)根据得到的所有数据块读取分布,从相应存活节点上读取对应偏移地址的数据块中的数据,解码出失效节点上对应偏移地址的数据块中的数据。
优选地,所述步骤(1)中初始化所有存活节点的权重值具体为:给每个存活节点发送一个数据块的读请求,获取每个节点的响应时间;对每个节点的响应时间取倒数;再乘以100得到各个存活节点的权重值。
优选地,所述数据块的大小为512字节。
优选地,所述存储集群采用RS(N,K)编码方式,其中N表示集群中所有节点的数目,K表示编码时以K个节点为单位,K也是数据节点的个数,校验节点的个数为N-K。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有下列有益效果:
(1)根据节点的负载和网络带宽得到存活节点的权重值,从而得到重构失效节点所对应的数据块读取分布图,从该分布所对应的K个存活节点,可以读取恢复该数据条带的K个存活数据;而不是简单地连续读取特定K个节点上的所有数据块,通过上述方案,尽量在负载较轻的节点上多读取数据块,避免负载过重的节点拖慢重构过程。对存活节点权重值进行调度处理,减少了负载不均衡时的响应时间。
(2)提高纠删码存储集群的可靠性:由于对存活节点上权重值的调度与重构时读取数据块的选择,总体来讲,多读负载轻节点上的数据,少读负载重节点上的数据。一定程度上是实现了存储集群重构过程中的负载均衡,降低了纠删码存储集群中各个节点因频繁的超负载而崩溃的概率,从而提高整个纠删码存储集群的可靠性。
附图说明
图1为现有技术中重构数据、读取数据块分布示意图;
图2为现有技术中纠删码存储集群重构数据节点流程图;
图3为本发明一优选实施例中纠删码存储集群中各节点的条带与分块数据示意图;
图4为本发明中纠删码存储中失效节点的重构优化方法的流程图;
图5为本发明一优选实施例中重构数据结构示意图;
图6为本发明一优选实施例中RS(6,4)编码重构数据时,读取数据块分布示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
节点权重:本发明中以weight表示,其表达的意思是在一段时间内节点的性能和负载情况,权重值(weight)也可以用许多其它状态,例如CPU处理能力,网络带宽,I/O能力,存储能力等表征。在本发明中,用权重值(weight)反映的是:在一段时间内,所有节点在数据访问上的响应带宽和数据访问性能的比值。权重值(weight)越大表示节点性能越好。
调度层:本发明中在重构管理机制和和底层节点之间添加一层调度功能模块,充当重构I/O调度层,其主要职能是维护纠删码集群中每个节点的权重值。
节点数据块和偏移地址以及条带:在重构失效节点的过程中,恢复数据的单元就是数据块,即数据是一块一块的恢复的。定位到每个数据块单元的起始地址就是该数据块的偏移地址。在存储集群中,一个条带就是由在不同节点上相同偏移地址的数据块单元组成。重构过程就是反复利用每个条带内可用的K个数据块恢复失效节点的数据块。如图3所示,为节点数据块和条带的示意图,其数据块大小为512KB。
本发明提供了一种纠删码集群中失效节点的重构方法,本实施例采用的是RS(N,K)编码方式,即水平VandermondeReed-Solomon编码。其中N表示集群中所有节点的数目,K表示编码时以K个节点为单位(同时也是数据节点的个数),显然校验节点的个数为N-K。如图中3所示,D(0,0)、D(1,0)、、、D(K-2,0)、D(K-1,0)与P(0,0)、、、P(N-K-1,0)组成一个条带。
该纠删码具有最大距离可分(MaximumDistanceSeparable,MDS)特性,即将一个数据对象分成K个分块(原始分块),然后编码成N个分块(编码分块),N个编码分块中的任意K个都可以解码出K个原始分块。Reed-Solomon编码(RS码)是一种具备MDS特性的纠删码,下面以RS码为案例来阐述本发明的思路。本发明不局限于RS码,它适用于具有MDS特性的纠删码。
如图4所示,为本发明提供的一种纠删码集群中失效节点的重构方法,具体的包含如下步骤:
(1)当有节点失效时,开始重构。
(2)根据纠删码存储集群上节点的负载和网络带宽,初始化所有节点的权重值,保存在一个节点权值数组中。
(3)为了恢复一个条带上失效节点中的数据,在数组中选择权值最大的K个存活节点,作为恢复该失效数据的数据块读取分布;从该K个节点可以读取K个存活数据块,用于恢复出该数据条带。
(4)将数组中最大的K个节点的权值分别减1。
(5)判断数组中权值大于0的节点是否不少于K个,判断结果为是则转到步骤(6),判断结果为假则转到步骤(7)。
(6)需要继续获得下一个数据条带所对应的数据块读取分布,从该分布所对应的K个存活节点,可以读取恢复该数据条带的K个存活数据,转到步骤(3)。
(7)根据步骤(3)~(6)中得到的数据块读取分布图,从相应存活节点上读取数据,并解码出失效节点上的数据。
(8)重复步骤(7)直到解码出失效节点上的全部数据。
如图5所示,本发明可通过在传统纠删码集群重构过程中添加一层I/O调度层,该调度层的主要工作是在重构时根据节点的负载情况维护每个节点的权重值,并对重构时读那些节点数据块进行调度。
如图6所示,假定集群上总共有六个节点。四个数据节点,两个检验节点,采用RS(6,4)的编码方式实现的数据完整性保证。六个节点中任意一个节点失效了,需要数据重构操作。节点编号为{0,1,2,3,4,5}。本发明实施例中,纠删码存储中失效节点的重构优化方法包括以下步骤。
(1)当一个节点失效时(假定是节点5),开始重构。
(2)根据纠删码存储集群上节点的负载和响应带宽,初始化所有存活节点的权重值(假定此时剩余的五个节点的权重值为<4,4,3,3,2>)。
例如,存活节点权重值生成方法如下,给每个存活节点发送一个数据块的读请求,根据每个节点的响应时间(大约6ms~50ms)取倒数,再乘以100得到各个存活节点的权重值(大约0~20)。不同的权值数组得到的数据块分布图长度不同,即,每次恢复失效数据时读取的数据块的数目不同。
(3)在存活的节点中选择权值最大的4个节点(此时K的值为4),显然权值最大的4个节点为节点{0,1,2,3})。对于权值相等的节点在选择数据块时是等价的。选择D(0,0)、D(1,0)、D(2,0)、D(3,0),作为解码出数据块P(1,0)的数据分布。
(4)将这K个节点的权重值分别减1,权值变为<3,3,2,2,2>。
(5)对于剩下需要恢复的数据块,判断剩余的所有节点中权值大于0的节点不少于K个。显然此时满足条件,重复(3)(4)两步,下一个条带上选择D(0,1)、D(1,1)、D(2,1)、D(3,1),用于之后解码出失效节点上对应的数据块P(1,1),存活节点权值变为<2,2,1,1,2>;再次重复(3)(4)两步,选择D(0,2)、D(1,2)、D(2,2)、P(0,2)用于之后解码出失效节点上对应的数据块P(1,2),权值变为<1,1,0,1,1>;再次重复(3)(4)两步,选择D(0,3)、D(1,3)、D(3,3)、P(0,3),用于之后解码出失效节点上对应的数据块P(1,3),权值变为<0,0,0,0>。此时权值大于0的节点少于4个。此时得到了恢复数据块P(1,0)~P(1,3)的数据分布,在恢复数据时,以图6所示的数据分布情况为恢复单元。每次依据得到的数据块分布图为单位读取数据,即在一次恢复过程中,读取数据时,在数据节点1上读取D(0,0)~D(0,3),在数据节点2上读取D(1,0)~D(1,3),在数据节点3上读取D(2,0~D(2,2),在数据节点上读取D(3,0),D(3,1),D(3,3),在校验节点1上读取P(0,2),P(0,3)。根据这样的数据分布反复进行数据读取和失效数据的解码,直到失效节点数据全部恢复。如图6所示,前四个数据块恢复数据时读取的数据块分布(阴影部分)。
对图的说明情况如下:
数据块的大小选取512字节,恢复数据时以512字节为单位恢复低地址到高地址。对于P1盘失效时,两种方式的重构过程分别如下:
传统纠删码存储集群上的失效节点恢复数据的过程为:
如图1所示,直接从4个数据节点上读取数据块D(0,0)、D(1,0)、D(2,0)、D(3,0)恢复P(1,0);读取数据块D(0,1)、D(1,1)、D(2,1)、D(3,1)恢复P(1.1);每次恢复数据都是在四个数据节点上读取数据块解码出对应失效数据块直到恢复整个失效节点上的数据。
本发明方法的操作为:
第一步,根据每个存活节点上的负载情况分配权重值。
第二步,根据存活节点的权重值,选取权重值最大的K个节点,对于某一个条带上的失效数据,用于恢复的数据块就是这K个节点上的对应数据块。
第三步,将权重值最大的K个节点权值减一,返回第二步的操作,直到权值最大的K个节点中有权值等于0。这样就得到了恢复失效数据的数据块读取分布情况。
第四步,根据得到的数据分布情况读取数据块,反复解码出失效节点上的数据块,直到恢复了失效节点上的全部数据块,结束重构过程。
总而言之,本发明有如下优化效果:
1、在各个节点负载和网络带宽情况不均衡的情况下重构速度更快:由于采用了步骤(2)、步骤(3)、步骤(5)、步骤(6)四个步骤充分利用所有存活节点的带宽,尽量在负载较轻的节点上多读取数据块,避免负载过重的节点拖慢重构过程。对存活节点权重值进行调度处理,减少了负载不均衡时的响应时间。
2、提高纠删码存储集群的可靠性:由于对存活节点上权重值的调度与重构时读取数据块的选择,总体来讲,多读负载轻节点上的数据,少读负载重节点上的数据。一定程度上是实现了存储集群重构过程中的负载均衡,降低了纠删码存储集群中各个节点因频繁的超负载而崩溃的概率,从而提高整个纠删码存储集群的可靠性。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (4)

1.一种纠删码集群中失效节点的重构方法,其特征在于,该方法包括以下步骤:
(1)当纠删码存储集群中有节点失效时,根据纠删码存储集群中节点的负载和网络带宽,初始化所有存活节点的权重值,并将所有存活节点的权重值保存在一个节点权重值数组中,其中所述权重值表示,在一段时间内所有节点在数据访问上的响应带宽和数据访问性能的比值,权重值越大表示节点性能越好;
(2)在节点权重值数组中选取权重值最大的K个存活节点,作为恢复该失效节点中对应偏移地址的数据块的数据块读取分布,其中所述K为存储集群中数据节点的数目;
(3)将节点权重值数组中上述K个存活节点的权重值分别减1;
(4)判断节点权重值数组中权值大于0的节点数量是否小于K,若是则转到步骤(5),若否则转到步骤(2);
(5)根据得到的所有数据块读取分布,从相应存活节点上读取对应偏移地址的数据块中的数据,解码出失效节点上对应偏移地址的数据块中的数据。
2.如权利要求1所述的方法,其特征在于,所述步骤(1)中初始化所有存活节点的权重值具体为:
给每个存活节点发送一个数据块的读请求,获取每个节点的响应时间;
对每个节点的响应时间取倒数;
再乘以100得到各个存活节点的权重值。
3.如权利要求1或2所述的方法,其特征在于,所述数据块的大小为512字节。
4.如权利要求1或2所述的方法,其特征在于,所述存储集群采用RS(N,K)编码方式,其中N表示集群中所有节点的数目,K表示编码时以K个节点为单位,K也是数据节点的个数,校验节点的个数为N-K。
CN201310651547.3A 2013-12-03 2013-12-03 一种纠删码集群中失效节点的重构方法 Active CN103645861B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310651547.3A CN103645861B (zh) 2013-12-03 2013-12-03 一种纠删码集群中失效节点的重构方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310651547.3A CN103645861B (zh) 2013-12-03 2013-12-03 一种纠删码集群中失效节点的重构方法

Publications (2)

Publication Number Publication Date
CN103645861A CN103645861A (zh) 2014-03-19
CN103645861B true CN103645861B (zh) 2016-04-13

Family

ID=50251088

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310651547.3A Active CN103645861B (zh) 2013-12-03 2013-12-03 一种纠删码集群中失效节点的重构方法

Country Status (1)

Country Link
CN (1) CN103645861B (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103955343B (zh) * 2014-04-16 2016-08-24 华中科技大学 一种基于i/o流水线的失效节点数据重构优化方法
CN104391759B (zh) * 2014-11-11 2017-06-13 华中科技大学 一种纠删码存储中负载感知的数据归档方法
CN106469100B (zh) 2015-08-17 2019-04-05 华为技术有限公司 一种数据恢复的方法、存储的方法相应的装置及系统
CN106649406B (zh) 2015-11-04 2020-04-28 华为技术有限公司 一种自适应存储文件的方法和装置
CN107992264B (zh) * 2016-10-27 2021-03-05 中国电信股份有限公司 数据保护方法和装置
CN106648992A (zh) * 2016-12-29 2017-05-10 创新科存储技术(深圳)有限公司 一种分布式存储系统中重构热点消除方法和装置
CN106844060B (zh) * 2017-03-10 2020-01-03 华中科技大学 一种基于任务负载感知的纠删码归档方法及系统
CN108958973B (zh) * 2018-06-27 2020-07-07 清华大学 分布式文件系统纠删码数据重构存储节点选择方法及装置
CN110597655B (zh) * 2019-06-26 2023-04-28 云链网科技(广东)有限公司 迁移和基于纠删码的重构相耦合快速预知修复方法及装置
CN110519368B (zh) * 2019-08-27 2021-09-07 腾讯科技(深圳)有限公司 一种获取传播网络中节点权威度的方法及相关设备
CN111131457B (zh) * 2019-12-25 2021-11-30 上海交通大学 一种异构分布式存储的容量和带宽折中方法及系统
CN112256471A (zh) * 2020-10-19 2021-01-22 北京京航计算通讯研究所 基于网络数据转发与控制层面分离的纠删码修复方法
CN112463434B (zh) * 2020-11-19 2022-08-02 苏州浪潮智能科技有限公司 一种基于纠删码的数据重构方法、装置、设备及存储介质
CN112714031B (zh) * 2021-03-29 2021-06-22 中南大学 一种基于带宽感知的故障节点快速修复方法
CN113721848B (zh) * 2021-08-19 2024-02-09 华中科技大学 一种基于纠删码的多节点调度修复方法及系统
CN114327284B (zh) * 2021-12-30 2023-02-03 河北建筑工程学院 一种数据处理的方法及系统
CN114595092B (zh) * 2022-04-28 2022-09-20 阿里云计算有限公司 分布式存储系统、数据重构方法、设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101840377A (zh) * 2010-05-13 2010-09-22 上海交通大学 基于rs纠删码的数据存储方法
US8205139B1 (en) * 2004-08-09 2012-06-19 Quest Software, Inc. Method for lock-free clustered erasure coding and recovery of data across a plurality of data stores in a network
CN103106124A (zh) * 2012-12-29 2013-05-15 华中科技大学 一种基于纠删码集群存储系统的交叉重构方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8205139B1 (en) * 2004-08-09 2012-06-19 Quest Software, Inc. Method for lock-free clustered erasure coding and recovery of data across a plurality of data stores in a network
CN101840377A (zh) * 2010-05-13 2010-09-22 上海交通大学 基于rs纠删码的数据存储方法
CN103106124A (zh) * 2012-12-29 2013-05-15 华中科技大学 一种基于纠删码集群存储系统的交叉重构方法

Also Published As

Publication number Publication date
CN103645861A (zh) 2014-03-19

Similar Documents

Publication Publication Date Title
CN103645861B (zh) 一种纠删码集群中失效节点的重构方法
US9722637B2 (en) Construction of MBR (minimum bandwidth regenerating) codes and a method to repair the storage nodes
CN101868785B (zh) 生成数据存储系统的并行恢复策略
US10901844B2 (en) Multiple node repair using high rate minimum storage regeneration erasure code
CN103152395B (zh) 一种分布式文件系统的存储方法及装置
US20170060683A1 (en) Systems and methods for data organization in storage systems using large erasure codes
CN102857554A (zh) 基于分布式存储系统进行数据冗余处理方法
CN104052576A (zh) 一种云存储下基于纠错码的数据恢复方法
CN101339524A (zh) 大规模磁盘阵列存储系统的磁盘容错方法
CN103106124B (zh) 一种基于纠删码集群存储系统的交叉重构方法
CA3177662C (en) Data-storage method and apparatus, and data-recovery method and apparatus
CN105956128A (zh) 一种基于简单再生码的自适应编码存储容错方法
US20150089328A1 (en) Flex Erasure Coding of Controllers of Primary Hard Disk Drives Controller
CN103544270B (zh) 面向数据中心的通用化网络编码容错存储平台及工作方法
KR101326011B1 (ko) 솔리드 스테이트 드라이브를 위한 삭제 카운트가 감소된 진보된 데이터 인코딩
CN107003933A (zh) 部分复制码的构建方法、装置及其数据修复的方法
CN105808170A (zh) 一种能够以最小磁盘读写修复单磁盘错误的raid6编码方法
CN109739777B (zh) 本地与分布式协同设计的可靠闪存存储方法及系统
CN104035732A (zh) 一种面向纠删码的数据放置方法
Wei et al. The auto-configurable LDPC codes for distributed storage
Kralevska et al. Balanced locally repairable codes
CN104782101B (zh) 用于分布式网络存储的自修复码的编码、重构和恢复方法
CN105610879B (zh) 数据处理方法和装置
CN103748568B (zh) 指示破坏性写入的方法和系统
CN110032338B (zh) 一种面向纠删码的数据副本放置方法及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant