CN105302660B - 面向分布式存储系统带流检测技术的纠删码写缓冲方法 - Google Patents

面向分布式存储系统带流检测技术的纠删码写缓冲方法 Download PDF

Info

Publication number
CN105302660B
CN105302660B CN201510751354.4A CN201510751354A CN105302660B CN 105302660 B CN105302660 B CN 105302660B CN 201510751354 A CN201510751354 A CN 201510751354A CN 105302660 B CN105302660 B CN 105302660B
Authority
CN
China
Prior art keywords
write
buffer layer
client
write operation
data
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
CN201510751354.4A
Other languages
English (en)
Other versions
CN105302660A (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.)
Hunan Ancun Technology Co Ltd
Original Assignee
Hunan Ancun Technology Co Ltd
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 Hunan Ancun Technology Co Ltd filed Critical Hunan Ancun Technology Co Ltd
Priority to CN201510751354.4A priority Critical patent/CN105302660B/zh
Publication of CN105302660A publication Critical patent/CN105302660A/zh
Application granted granted Critical
Publication of CN105302660B publication Critical patent/CN105302660B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Computer And Data Communications (AREA)

Abstract

本发明提供了一种面向分布式存储系统带流检测技术的纠删码写缓冲方法,包括:在对原始数据进行覆写操作时,第一次覆写操作的长度为缓冲层数据起始位置至第一个对齐点,最后一次覆写操作的长度为最后一个对齐点至缓冲层数据结束位置;第一次覆写操作和最后一次覆写操作之间的覆写操作的长度均与相邻的对齐点之间的长度相等,位置对齐。将多个写操作在缓冲层合并,缓冲层中只有数据头尾两端的写操作是非对齐的,减少了纠删码存储系统中覆盖写情况下非对齐写操作引发的读操作,提高命令响应速度。

Description

面向分布式存储系统带流检测技术的纠删码写缓冲方法
技术领域
本发明涉及计算机存储技术领域,特别地,涉及一种面向分布式存储系统带流检测技术的纠删码写缓冲方法。
背景技术
纠删码(erasure coding,EC)是一种数据保护方法,它将原始数据分割成若干个片段,把冗余数据块扩展、编码,并将其存储在不同的物理位置。纠删码可以用于有大量数据和任何需要容错的应用程序或系统中,比如磁盘阵列系统、数据网格、分布式存储应用程序、对象存储或归档存储。纠删码提供的保护可以用简单的公式来表示:K=M+N。变量“M”代表原始数据或符号的值,变量“N”代表添加的提供保护的额外或冗余符号的值,变量“K”代表纠删码过程后创建的符号总值。原始文件可以从K中的任意M个验证片段中重建,磁盘容量利用率为M/K。
现在越来越多的分布式存储系统使用纠删码技术对数据进行分块存储,块大小U可以由用户定义,通常为512字节或1024字节。分布式存储系统如图1所示,客户端和服务器端通过网络进行连接,服务器端提供存储服务,客户端将应用程序的数据根据一定规则写入服务器端,或者从服务器端读取数据提供给应用程序使用。支持纠删码的分布式存储系统会将K块数据写入不同的服务器端,则能容忍任意N个服务器端失效。
在现有的纠删码技术中,参见图2,客户端与服务器端交互的最小操作单位为M*U个字节,在客户端的原始数据结尾处不足M*U个字节,则用零补齐。如果是对原有文件的覆写(在覆盖原始数据的基础上进行数据写入),也就是从偏移量L处,写入S个字节的数据。在该覆盖写过程中,需要将这些数据划分成多个块,使得尽可能多的块其首字节在文件中的偏移量为M*U的整数倍,这个操作我们称之为对齐。对于能够对齐且长度为M*U整数倍的数据块,则可以直接以M*U为单位进行编码写入操作。但是对于不能对齐或者长度不足M*U长度的数据,则需要将客户端原有文件中对应的M*U长度的字节读出,然后用新数据覆盖部分内容,重新编码后再写入。
因此,在覆盖写的过程中如果存在大量不能对齐且长度不足M*U长度的数据,则会在存储过程中引发大量的读操作,从而大大降低了写操作的效率和性能。
发明内容
本发明目的在于提供一种面向分布式存储系统带流检测技术的纠删码写缓冲方法,以解决现有覆盖写存储过程的读操作过多的技术问题。
为实现上述目的,本发明提供了一种面向分布式存储系统带流检测技术的纠删码写缓冲方法,包括:
在对原始数据进行覆写操作时,第一次覆写操作的长度为缓冲层数据起始位置至第一个对齐点,最后一次覆写操作的长度为最后一个对齐点至缓冲层数据结束位置;第一次覆写操作和最后一次覆写操作之间的每一次覆写操作的长度均与任意两个对齐点之间的长度相等,位置对齐。
优选的,第一次覆写操作和最后一次覆写操作之间的每一次覆写操作的长度均与相邻的两个对齐点之间的长度相等,位置对齐。
优选的,在客户端建立缓冲层,对写操作进行合并和对齐;
客户端接收到非写操作,先执行缓冲层中的写操作,再执行非写操作。
优选的,在客户端建立缓冲层,对写操作进行合并和对齐的步骤包括:
A1、在客户端建立缓冲层;
B1、在指定时间内接收应用程序IO操作;
C1、判断该IO操作命令的执行过程是否可以与客户端的缓冲空间内已有的IO操作命令的执行过程合并,
D1、进行IO操作命令的执行过程的合并,按对齐规则进行分拆;然后扫描缓冲队列,进行客户端的缓冲空间的整理。
优选的,加入流检测机制:如果写操作是流式数据,在缓冲层满的时候,将缓冲层全部执行,只留最后进入缓冲层的一个;写操作是非流式数据,在缓冲层满的时候仅执行一个写请求并回收缓冲空间;
加入流检测机制的步骤包括:
A2、接收一个IO操作命令;
B2、判断该IO操作命令是否为流式数据,是则转C2,否则转D2;
C2、执行缓冲队列内一个IO操作命令,回收客户端的缓冲空间;
D2、按队列顺序执行一个IO操作命令,回收客户端的缓冲空间。
优选的,加入定时机制,防止缓冲层内的操作长时间得不到执行;
加入定时机制的步骤包括:
在该IO操作命令没有超时时,进行该IO操作命令是否为写操作的判断;在IO操作命令超时时,则判断缓冲队列是否有写操作。
优选的,在客户端的缓冲层内空闲空间大小小于执行该IO操作命令所需数据所占的空间大小,且在该IO操作命令超时时,暂停接收新的IO操作命令,执行客户端的缓冲层里的至少一个IO操作命令。
优选的,在客户端建立缓冲层的步骤包括:确定执行写操作的客户端缓冲层空间大小和分配写操作队列的步骤。
优选的,步骤B还包括判断接收的IO操作命令是否为需要进行写操作,若需要进行写操作,则判断客户端的缓冲层内空闲空间大小是否大于执行该IO操作命令所需数据所占的空间大小;若不需要进行写操作,则先执行操作队列内的IO操作,然后执行步骤A接收的当前IO操作。
优选的,客户端的缓冲队列的数目为10个IO操作。
本发明具有以下有益效果:
本发明在客户端增加缓冲层进行IO操作(Input/Output Operation,输入输出操作)命令的执行,使得客户端的IO操作命令可在本地缓冲层直接进行修改、合并等操作,将多个写操作在缓冲层合并,可以大大减少覆盖写存储过程中因为非对齐写操作引发的读操作,提高命令响应速度和写操作带宽。
例如在一个配置为2+1,数据块为512字节的纠删码分布式存储系统中,从文件偏移量256字节开始,每次覆盖写1024字节,总共写1兆字节,共需要1024次写操作,如图2所示。图2中每个方块表示512字节数据,竖直虚线表示要在2*512=1024字节处对齐,第一行表示原始数据,第二行表示现有方法覆盖写操作,第三行表示本申请方法使用缓冲层组织后的覆盖写操作。现有方法中每一个覆盖写操作都跨越了对齐点,需要在对齐点划分为两个子写操作。并且因为每个子写操作数据都小于1024字节,所以会引发一次读操作。总共需要的操作数为:1024*2*(1次读操作+1次写操作)。使用本申请方法,在缓冲层重新组织写操作后,会增加一次写操作。但是只有第一个操作没有对齐,最后一个操作数据不满1024字节,这两个操作需要引发读操作,其余的写操作都已经对齐并且数据为1024字节。总共需要的操作数为:(1024+1)写操作+2次读操作。IO操作数几乎只有原来的1/4,大大提高了覆盖写的效率。
中国专利201410154741.5公开了一种基于纠删码缓冲的重构优化方法,提供了在存储服务器失效的情况下,如何解决客户端继续写数据以及重建数据的问题,且将缓冲设置在服务器端。本申请将缓冲设置在客户端,在服务器正常情况下,减少写操作引发的读操作问题。
除了上面所描述的目的、特征和优点之外,本发明还有其它的目的、特征和优点。下面将参照图,对本发明作进一步详细的说明。
附图说明
构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是分布式存储系统示意图;
图2是纠删码覆写操作和缓冲层优化后对齐操作示意图;
图3是本发明优选实施例的流程示意图之一;
图4是本发明优选实施例的流程示意图之二。
具体实施方式
以下结合附图对本发明的实施例进行详细说明,但是本发明可以根据权利要求限定和覆盖的多种不同方式实施。
本申请存储系统在对原始数据进行覆写操作时,第一次覆写操作的长度为缓冲层数据起始位置至第一个对齐点,最后一次覆写操作的长度为最后一个对齐点至缓冲层数据结束位置;第一次覆写操作和最后一次覆写操作之间的覆写操作的长度均与任意两个对齐点之间的长度相等,位置对齐。相比现有技术的每次覆写操作均需跨越对齐点,而引发的大量读操作,本申请只需在头尾两次覆写操作中进行读操作即可。例如,在存在10个对齐点的数据段中,任意两个对齐点可以指第1个对齐点与第3个对齐点,也可以指第3个对齐点与第4个对齐点等情况。当然,考虑到不对数据进行重复操作,已经进行了覆写操作的数据段则不再列入下一次覆写操作的范围内。例如,已经对第1个对齐点与第3个对齐点之间的数据进行了覆写操作,则不会对第3个对齐点之前的数据进行对齐和覆写操作了。
也就是说,第一次覆写操作和最后一次覆写操作之间的每一次覆写操作的长度可以均与相邻的两个对齐点之间的长度相等,位置对齐。即第二次覆写操作为第1个对齐点与第2个对齐点之间的数据,第三次覆写操作为第2个对齐点与第3个对齐点之间的数据,依次类推,直至最后一个对齐点。
另外,本申请在现有的客户端增加缓冲层,对写操作进行合并和对齐。即在接收应用程序IO操作后,判断该IO操作命令的执行过程是否可以与客户端的缓冲空间内已有的IO操作命令的执行过程合并,若可以进行IO操作命令的执行过程的合并,则按对齐规则进行分拆;然后扫描缓冲队列,进行客户端的缓冲空间的整理。
进一步地,在进行写操作的过程中,为减少读写次数,加入了流检测机制。即先检测该IO操作命令是否为流式数据,是则执行缓冲队列内一个IO操作命令,回收客户端的缓冲空间;否则按队列顺序执行一个IO操作命令,回收客户端的缓冲空间。
为防止缓冲层内的操作长时间得不到执行,还加入了定时机制。即在该IO操作命令没有超时时,进行该IO操作命令是否为写操作的判断;在IO操作命令超时时,则判断缓冲队列是否有写操作。
各种具体场景下的判断流程请见下各个具体实施例。
实施例一:
101.在客户端分配大小为B字节的内存,作为IO写操作的缓冲层。B通常设置为1M,最大不超过1G;
102.建立IO写操作队列,所有缓冲的IO写操作以链表结构组成队列。队列头指针指向最先进入的IO写操作,队列尾指针指向最后进入的IO写操作。队列初始为空。
103.在指定时间内接收应用程序IO操作,即从用户程序接收一个IO操作;
“在指定时间内接收应用程序IO操作”指的是客户端等待接收用户操作应用程序发出的IO操作命令,如果过了预设时间没有收到IO操作,就按超时处理。
104.判断这个操作是否超时;
105.在未超时的情况下,判断这个IO操作是否是写操作;
106.如果不是写操作,则清空缓冲后,从头到尾按顺序执行完IO写操作队列,然后执行当前接收的IO操作。然后转103。
实施例二:
201.在客户端分配大小为B字节的内存,作为IO写操作的缓冲层。B通常设置为1M,最大不超过1G;
202.建立IO写操作队列,所有缓冲的IO写操作以链表结构组成队列。队列头指针指向最先进入的IO写操作,队列尾指针指向最后进入的IO写操作。队列初始为空。
203.从用户程序接收一个IO操作;
204.判断这个操作是否超时;
205.在未超时的情况下,判断这个IO操作是否是写操作;
206.如果是写操作,判断写操作的数据量(例如128KB)是否大于缓冲层的剩余空间;
207.如果大于剩余空间(例如256KB),判断缓冲队列是否有其他的写操作;
208.当前队列没有写操作,则执行当前写操作,然后转203。
实施例三:
301.在客户端分配大小为B字节的内存,作为IO写操作的缓冲层。B通常设置为1M,最大不超过1G;
302.建立IO写操作队列,所有缓冲的IO写操作以链表结构组成队列。队列头指针指向最先进入的IO写操作,队列尾指针指向最后进入的IO写操作。队列初始为空。
303.从用户程序接收一个IO操作;
304.判断这个操作是否超时;
305.在未超时的情况下,判断这个IO操作是否是写操作;
306.如果是写操作,判断写操作的数据量(例如128KB)是否大于缓冲层的剩余空间;
307.如果小于剩余空间(例如64KB),则按照文件的offset,将写操作插入缓冲队列;
308.整理队列后,转303。
写操作进入队列时,不是按照FIFO的顺序,而是按照文件偏移量offset的顺序进行排列。这样做有利于接下来的整理队列。整理队列指的是合并写缓冲、合并写操作、按照对齐分拆写操作。
实施例四:
401.在客户端分配大小为B字节的内存,作为IO写操作的缓冲层。B通常设置为1M,最大不超过1G;
402.建立IO写操作队列,所有缓冲的IO写操作以链表结构组成队列。队列头指针指向最先进入的IO写操作,队列尾指针指向最后进入的IO写操作。队列初始为空。
403.从用户程序接收一个IO操作;
404.判断这个操作是否超时;
405.在未超时的情况下,判断这个IO操作是否是写操作;
406.如果是写操作,判断写操作的数据量(例如128KB)是否大于缓冲层的剩余空间;
407.如果大于剩余空间(例如256KB),判断缓冲队列是否有其他的写操作;
408.缓冲队列有其他的写操作时,判断是否为流式数据,例如在连续5次写操作都可以融合的前提下,判断为是流式数据;
409.是流式数据时,则在写缓冲队列中从头指针开始执行写操作,除最后一个写操作外,全执行完毕;转411;
410.不是流式数据时,则在执行缓冲队列中的第一个对齐了的写操作后,转411;
411.回收缓冲空间,转403。
实施例五:
501.在客户端分配大小为B字节的内存,作为IO写操作的缓冲层。B通常设置为1M,最大不超过1G;
502.建立IO写操作队列,所有缓冲的IO写操作以链表结构组成队列。队列头指针指向最先进入的IO写操作,队列尾指针指向最后进入的IO写操作。队列初始为空。
503.从用户程序接收一个IO操作;
504.判断这个操作是否超时;
505.在当前操作超时时,判断缓冲队列中是否有写操作;
506.缓冲队列有其他的写操作时,判断是否为流式数据,例如在连续5次写操作都可以融合的前提下,判断为是流式数据;
507.是流式数据时,则在写缓冲队列中从头指针开始执行写操作,除最后一个写操作外,全执行完毕;转509;
508.不是流式数据时,则在执行缓冲队列中的第一个对齐了的写操作后,转509;
509.回收缓冲空间,转503。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (6)

1.一种面向分布式存储系统带流检测技术的纠删码写缓冲方法,其特征在于,包括:
在客户端建立缓冲层,对写操作进行合并和对齐;
客户端接收到非写操作,先执行缓冲层中的写操作,再执行非写操作;
在对原始数据进行覆写操作时,第一次覆写操作的长度为缓冲层数据起始位置至第一个对齐点,最后一次覆写操作的长度为最后一个对齐点至缓冲层数据结束位置;第一次覆写操作和最后一次覆写操作之间的每一次覆写操作的长度均与任意两个对齐点之间的长度相等,位置对齐;
加入定时机制,防止缓冲层内的操作长时间得不到执行;
加入定时机制的步骤包括:
在IO操作命令没有超时时,进行该IO操作命令是否为写操作的判断;在IO操作命令超时时,则判断缓冲队列是否有写操作;
在客户端的缓冲层内空闲空间大小小于执行该IO操作命令所需数据所占的空间大小,且在该IO操作命令超时时,暂停接收新的IO操作命令,执行客户端的缓冲里的至少一个IO操作命令。
2.根据权利要求1所述的纠删码写缓冲方法,其特征在于,在客户端建立缓冲层,对写操作进行合并和对齐的步骤包括:
A1、在客户端建立缓冲层;
B1、在指定时间内接收应用程序IO操作;
C1、判断该IO操作命令的执行过程是否可以与客户端的缓冲空间内已有的IO操作命令的执行过程合并,
D1、进行IO操作命令的执行过程的合并,按对齐规则进行分拆;然后扫描缓冲队列,进行客户端的缓冲空间的整理。
3.根据权利要求1所述的纠删码写缓冲方法,其特征在于,加入流检测机制:如果写操作是流式数据,在缓冲层满的时候,将缓冲层全部执行,只留最后进入缓冲层的一个命令;写操作是非流式数据,在缓冲层满的时候仅执行一个写请求并回收缓冲空间;
加入流检测机制的步骤包括:
A2、接收一个IO操作命令;
B2、判断该IO操作命令是否为流式数据,是则转C2,否则转D2;
C2、执行缓冲队列内一个IO操作命令,回收客户端的缓冲空间;
D2、按队列顺序执行一个IO操作命令,回收客户端的缓冲空间。
4.根据权利要求2所述的纠删码写缓冲方法,其特征在于,在客户端建立缓冲层的步骤包括:确定执行写操作的客户端缓冲空间大小和分配写操作队列的步骤。
5.根据权利要求2所述的纠删码写缓冲方法,其特征在于,步骤C1还包括判断接收的IO操作命令是否为需要进行写操作,若需要进行写操作,则判断客户端的缓冲内空闲空间大小是否大于执行该IO操作命令所需数据所占的空间大小;若不需要进行写操作,则先执行操作队列内的IO操作,然后执行步骤B1接收的当前IO操作。
6.根据权利要求2所述的纠删码写缓冲方法,其特征在于,客户端的缓冲队列的数目为10个IO操作。
CN201510751354.4A 2015-11-06 2015-11-06 面向分布式存储系统带流检测技术的纠删码写缓冲方法 Active CN105302660B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510751354.4A CN105302660B (zh) 2015-11-06 2015-11-06 面向分布式存储系统带流检测技术的纠删码写缓冲方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510751354.4A CN105302660B (zh) 2015-11-06 2015-11-06 面向分布式存储系统带流检测技术的纠删码写缓冲方法

Publications (2)

Publication Number Publication Date
CN105302660A CN105302660A (zh) 2016-02-03
CN105302660B true CN105302660B (zh) 2018-09-04

Family

ID=55199952

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510751354.4A Active CN105302660B (zh) 2015-11-06 2015-11-06 面向分布式存储系统带流检测技术的纠删码写缓冲方法

Country Status (1)

Country Link
CN (1) CN105302660B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106445423A (zh) * 2016-12-06 2017-02-22 郑州云海信息技术有限公司 基于nvram存储系统直接纠删码的优化方法和系统
CN106598772A (zh) * 2016-12-13 2017-04-26 郑州云海信息技术有限公司 基于nvram的直接纠删码实现方法及海量存储系统
CN107678680B (zh) * 2017-07-27 2020-07-17 深圳市联云港科技有限公司 分布式块存储系统中纠删码并发io的方法及存储装置
CN110515541B (zh) * 2019-07-29 2020-10-27 西安交通大学 分布式存储中纠删码非对齐数据更新方法
CN111258785B (zh) * 2020-01-20 2023-09-08 北京百度网讯科技有限公司 数据洗牌方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103631539A (zh) * 2013-12-13 2014-03-12 百度在线网络技术(北京)有限公司 基于擦除编码机制的分布式存储系统及其存储方法
CN104536699A (zh) * 2014-12-11 2015-04-22 中国科学院声学研究所 一种基于嵌入式文件系统的流式数据写入方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4997784B2 (ja) * 2006-02-16 2012-08-08 日本電気株式会社 データ記憶システム、データ記憶方法、データ記憶プログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103631539A (zh) * 2013-12-13 2014-03-12 百度在线网络技术(北京)有限公司 基于擦除编码机制的分布式存储系统及其存储方法
CN104536699A (zh) * 2014-12-11 2015-04-22 中国科学院声学研究所 一种基于嵌入式文件系统的流式数据写入方法

Also Published As

Publication number Publication date
CN105302660A (zh) 2016-02-03

Similar Documents

Publication Publication Date Title
CN105302660B (zh) 面向分布式存储系统带流检测技术的纠删码写缓冲方法
US9582433B2 (en) Disk array flushing method and disk array flushing apparatus
US5564116A (en) Array type storage unit system
CN101727299B (zh) 连续数据存储中面向raid5的写操作优化设计方法
CN103019962B (zh) 数据缓存处理方法、装置以及系统
US20080147994A1 (en) Command scheduling method and apparatus of virtual file system embodied in nonvolatile data storage device
US20100100666A1 (en) System and method for controlling flash memory using descriptor array
US20060200697A1 (en) Storage system, control method thereof, and program
CN104765575A (zh) 信息存储处理方法
US9135262B2 (en) Systems and methods for parallel batch processing of write transactions
CN103562895B (zh) 通过选择性聚合相邻数据单元来便于路由
CN104765574A (zh) 数据云端存储方法
CN106484313B (zh) 数据信息备份方法、数据备份方法及装置
CN110737391A (zh) 用于管理存储系统的方法、设备和计算机程序产品
CN103229134A (zh) 存储设备及其控制方法
CN104123280A (zh) 文件比对方法和设备
US20070271430A1 (en) Computer systems, management computers and storage system management method
CN101729421B (zh) 一种基于时分复用的存储方法和装置
US9727252B2 (en) Methods and systems for optimal snapshot distribution within a protection schedule
JP2008225558A (ja) データ中継集積回路、データ中継装置およびデータ中継方法
CN104778100A (zh) 一种安全备份数据的方法
CN111061690A (zh) 一种基于rac的数据库日志文件读取方法和装置
US8370717B1 (en) Method and apparatus for flexible buffers in an XOR engine
CN105354153A (zh) 一种紧耦合异构多处理器数据交换缓存的实现方法
JPH07200187A (ja) ディスクアレイ装置

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