CN113220368B - 一种存储客户端资源隔离方法、系统、终端及存储介质 - Google Patents
一种存储客户端资源隔离方法、系统、终端及存储介质 Download PDFInfo
- Publication number
- CN113220368B CN113220368B CN202110582668.1A CN202110582668A CN113220368B CN 113220368 B CN113220368 B CN 113220368B CN 202110582668 A CN202110582668 A CN 202110582668A CN 113220368 B CN113220368 B CN 113220368B
- Authority
- CN
- China
- Prior art keywords
- control group
- thread
- resource
- storage
- newly
- 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
- 238000002955 isolation Methods 0.000 title claims abstract description 11
- 238000000034 method Methods 0.000 claims abstract description 35
- 238000004590 computer program Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 description 11
- 238000004891 communication Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000006467 substitution reaction Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种存储客户端资源隔离方法、系统、终端及存储介质,包括:设置多个控制组;配置控制组的资源限制参数;为新建线程选定目标控制组,将所述新建线程的控制符写入所述目标控制组的任务列表。本发明通过RBD命令行,解析配置文件的绑核策略,创建控制组群下的多个控制组;Librbd创建线程时,将线程的PID信息加入cpuset和memory控制组的tasks中,完成资源隔离。本发明运行在Linux平台,利用控制组群为Librbd分配独立的内存和cpu资源,实现和其他软件实体资源隔离。
Description
技术领域
本发明涉及服务器技术领域,具体涉及一种存储客户端资源隔离方法、系统、终端及存储介质。
背景技术
Librbd以动态链接库的方式,供宿主进程调用,Librbd内部会创建一系列线程,完成IO的读、写、下刷等操作,实现对存储集群的访问。
Openstack Nova计算节点一般是包含多个CPU核心的NUMA架构,其上运行的软件实体包含3部分:Host OS,VM进程,Librbd客户端。为了实现3者互不干扰,也为了减少各自的多线程任务在多个CPU之间的迁移,需要为它们分配独立的资源,即进行资源隔离。
Host OS和VM是独立的进程,可以在进程内部以进程为单位控制资源的访问,但是Librbd没有独立进程,Librbd可以使用的所有资源来自宿主进程,而Librbd又是动态链接库,需要时才会被调用,宿主进程无法单独为Librbd分配独立的资源。
发明内容
针对现有技术的上述不足,本发明提供一种存储客户端资源隔离方法、系统、终端及存储介质,以解决上述技术问题。
第一方面,本发明提供一种存储客户端资源隔离方法,包括:
设置多个控制组;
配置控制组的资源限制参数;
为新建线程选定目标控制组,将所述新建线程的控制符写入所述目标控制组的任务列表。
进一步的,所述设置多个控制组,包括:
利用块设备工具创建控制组群下的多个控制组。
进一步的,所述配置控制组的资源限制参数,包括:
通过数据交换格式的的文件描述资源限制参数,所述资源限制参数包括线程能够使用的内存总大小和线程能够使用的CPU资源。
进一步的,所述为新建线程选定目标控制组,将所述新建线程的控制符写入所述目标控制组的任务列表,包括:
在通过分布式块存储链接库访问存储前,连接存储并创建存储的上下文信息;
将控制组的路径信息保存到所述上下文中;
在新建线程时,将线程的控制符写入目标控制组的任务列表。
第二方面,本发明提供一种存储客户端资源隔离系统,包括:
分组设置单元,配置用于设置多个控制组;
资源限制单元,配置用于配置控制组的资源限制参数;
线程分配单元,配置用于为新建线程选定目标控制组,将所述新建线程的控制符写入所述目标控制组的任务列表。
进一步的,所述分组设置单元包括:
控制创建模块,配置用于利用块设备工具创建控制组群下的多个控制组。
进一步的,所述资源限制单元包括:
资源限制模块,配置用于通过数据交换格式的的文件描述资源限制参数,所述资源限制参数包括线程能够使用的内存总大小和线程能够使用的CPU资源。
进一步的,所述线程分配单元包括:
信息创建模块,配置用于在通过分布式块存储链接库访问存储前,连接存储并创建存储的上下文信息;
路径保存模块,配置用于将控制组的路径信息保存到所述上下文中;
任务写入模块,配置用于在新建线程时,将线程的控制符写入目标控制组的任务列表。
第三方面,提供一种终端,包括:
处理器、存储器,其中,
该存储器用于存储计算机程序,
该处理器用于从存储器中调用并运行该计算机程序,使得终端执行上述的终端的方法。
第四方面,提供了一种计算机存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
本发明的有益效果在于,
本发明提供的存储客户端资源隔离方法、系统、终端及存储介质,通过RBD命令行,解析配置文件的绑核策略,创建控制组群下的多个控制组;Librbd创建线程时,将线程的PID信息加入cpuset和memory控制组的tasks中,完成资源隔离。本发明运行在Linux平台,利用控制组群为Librbd分配独立的内存和cpu资源,实现和其他软件实体资源隔离。
此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例的方法的示意性流程图。
图2是本发明一个实施例的系统的示意性框图。
图3为本发明实施例提供的一种终端的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
下面对本发明中出现的关键术语进行解释。
CPU Central Processing Unit中央处理器
CGroup Control Groups控制组群
Host OS Host Operation Systen主机操作系统
PID Process Identification进程/线程控制符
JSON JavaScript Object Notation一种轻量级的数据交换格式
NUMA Non-Uniform Memory Access非一致存储器访问
VM Virtual Machine虚拟机
I/O Input/output输入输出
RBD Rados Block Device基于Rados的块设备
Librbd library of rados block device分布式块存储链接库
图1是本发明一个实施例的方法的示意性流程图。其中,图1执行主体可以为一种存储客户端资源隔离系统。
如图1所示,该方法包括:
步骤110,设置多个控制组;
步骤120,配置控制组的资源限制参数;
步骤130,为新建线程选定目标控制组,将所述新建线程的控制符写入所述目标控制组的任务列表。
具体的,所述存储客户端资源隔离方法包括:
S1、资源限制参数配置和解析
通过JSON格式文件描述资源限制信息:mem对象描述Librbd线程能够使用的内存总大小,size字段的单位为MBtye;cores对象描述Librbd线程能够使用的cpu资源,以列表形式表示。
S2、创建CGroup控制组
通过RBD工具(Librbd客户端安装时的附带工具)创建cpuset和memory控制组,并配置上一步解析的参数,详细步骤如下:
检查系统是否挂载CGroup
在cpuset和memory控制组下创建Librbd.slice控制组
Librbd.slice继承父控制组的配置
根据配置信息,刷新Librbd.slice的相关配置:
cpuset:刷新cpuset.cpus和cpuset.memory_migrate
memory:刷新memory.limit_in_bytes
将tasks文件属性设置为0666。
S3、线程资源控制
通过Librbd访问存储前,需要连接存储并创建存储的上下文信息,将CGroup控制组的路径信息保存到上下文中;Librbd创建线程时,将线程的PID写入控制组的tasks内。
如图2所示,该系统200包括:
分组设置单元210,配置用于设置多个控制组;
资源限制单元220,配置用于配置控制组的资源限制参数;
线程分配单元230,配置用于为新建线程选定目标控制组,将所述新建线程的控制符写入所述目标控制组的任务列表。
可选地,作为本发明一个实施例,所述分组设置单元包括:
控制创建模块,配置用于利用块设备工具创建控制组群下的多个控制组。
可选地,作为本发明一个实施例,所述资源限制单元包括:
资源限制模块,配置用于通过数据交换格式的的文件描述资源限制参数,所述资源限制参数包括线程能够使用的内存总大小和线程能够使用的CPU资源。
可选地,作为本发明一个实施例,所述线程分配单元包括:
信息创建模块,配置用于在通过分布式块存储链接库访问存储前,连接存储并创建存储的上下文信息;
路径保存模块,配置用于将控制组的路径信息保存到所述上下文中;
任务写入模块,配置用于在新建线程时,将线程的控制符写入目标控制组的任务列表。
图3为本发明实施例提供的一种终端300的结构示意图,该终端300可以用于执行本发明实施例提供的存储客户端资源隔离方法。
其中,该终端300可以包括:处理器310、存储器320及通信单元330。这些组件通过一条或多条总线进行通信,本领域技术人员可以理解,图中示出的服务器的结构并不构成对本发明的限定,它既可以是总线形结构,也可以是星型结构,还可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
其中,该存储器320可以用于存储处理器310的执行指令,存储器320可以由任何类型的易失性或非易失性存储终端或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。当存储器320中的执行指令由处理器310执行时,使得终端300能够执行以下上述方法实施例中的部分或全部步骤。
处理器310为存储终端的控制中心,利用各种接口和线路连接整个电子终端的各个部分,通过运行或执行存储在存储器320内的软件程序和/或模块,以及调用存储在存储器内的数据,以执行电子终端的各种功能和/或处理数据。所述处理器可以由集成电路(Integrated Circuit,简称IC)组成,例如可以由单颗封装的IC所组成,也可以由连接多颗相同功能或不同功能的封装IC而组成。举例来说,处理器310可以仅包括中央处理器(Central Processing Unit,简称CPU)。在本发明实施方式中,CPU可以是单运算核心,也可以包括多运算核心。
通信单元330,用于建立通信信道,从而使所述存储终端可以与其它终端进行通信。接收其他终端发送的用户数据或者向其他终端发送用户数据。
本发明还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本发明提供的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-only memory,简称:ROM)或随机存储记忆体(英文:random access memory,简称:RAM)等。
因此,本发明通过RBD命令行,解析配置文件的绑核策略,创建控制组群下的多个控制组;Librbd创建线程时,将线程的PID信息加入cpuset和memory控制组的tasks中,完成资源隔离。本发明运行在Linux平台,利用控制组群为Librbd分配独立的内存和cpu资源,实现和其他软件实体资源隔离,本实施例所能达到的技术效果可以参见上文中的描述,此处不再赘述。
本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中如U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质,包括若干指令用以使得一台计算机终端(可以是个人计算机,服务器,或者第二终端、网络终端等)执行本发明各个实施例所述方法的全部或部分步骤。
本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于终端实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,系统或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (6)
1.一种存储客户端资源隔离方法,其特征在于,包括:
设置多个控制组;
配置控制组的资源限制参数;
为新建线程选定目标控制组,将所述新建线程的控制符写入所述目标控制组的任务列表;
所述配置控制组的资源限制参数,包括:
通过数据交换格式的的文件描述资源限制参数,所述资源限制参数包括线程能够使用的内存总大小和线程能够使用的CPU资源;
所述为新建线程选定目标控制组,将所述新建线程的控制符写入所述目标控制组的任务列表,包括:
在通过分布式块存储链接库访问存储前,连接存储并创建存储的上下文信将控制组的路径信息保存到所述上下文中;
在新建线程时,将线程的控制符写入目标控制组的任务列表。
2.根据权利要求1所述的方法,其特征在于,所述设置多个控制组,包括:
利用块设备工具创建控制组群下的多个控制组。
3.一种存储客户端资源隔离系统,其特征在于,包括:
分组设置单元,配置用于设置多个控制组;
资源限制单元,配置用于配置控制组的资源限制参数;
线程分配单元,配置用于为新建线程选定目标控制组,将所述新建线程的控制符写入所述目标控制组的任务列表;
所述资源限制单元包括:
资源限制模块,配置用于通过数据交换格式的的文件描述资源限制参数,所述资源限制参数包括线程能够使用的内存总大小和线程能够使用的CPU资源;
所述线程分配单元包括:
信息创建模块,配置用于在通过分布式块存储链接库访问存储前,连接存储并创建存储的上下文信息;
路径保存模块,配置用于将控制组的路径信息保存到所述上下文中;
任务写入模块,配置用于在新建线程时,将线程的控制符写入目标控制组的任务列表。
4.根据权利要求3所述的系统,其特征在于,所述分组设置单元包括:
控制创建模块,配置用于利用块设备工具创建控制组群下的多个控制组。
5.一种终端,其特征在于,包括:
处理器;
用于存储处理器的执行指令的存储器;
其中,所述处理器被配置为执行权利要求1-2任一项所述的方法。
6.一种存储有计算机程序的计算机可读存储介质,其特征在于,该程序被处理器执行时实现如权利要求1-2中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110582668.1A CN113220368B (zh) | 2021-05-27 | 2021-05-27 | 一种存储客户端资源隔离方法、系统、终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110582668.1A CN113220368B (zh) | 2021-05-27 | 2021-05-27 | 一种存储客户端资源隔离方法、系统、终端及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113220368A CN113220368A (zh) | 2021-08-06 |
CN113220368B true CN113220368B (zh) | 2023-02-28 |
Family
ID=77099705
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110582668.1A Active CN113220368B (zh) | 2021-05-27 | 2021-05-27 | 一种存储客户端资源隔离方法、系统、终端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113220368B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113821306B (zh) * | 2021-09-24 | 2023-09-05 | 亿咖通(湖北)技术有限公司 | 资源隔离方法、装置和终端设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109992398A (zh) * | 2017-12-29 | 2019-07-09 | 广东欧珀移动通信有限公司 | 资源管理方法、装置、移动终端及计算机可读存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6738974B1 (en) * | 1998-09-10 | 2004-05-18 | International Business Machines Corporation | Apparatus and method for system resource object deallocation in a multi-threaded environment |
US7380235B1 (en) * | 2003-06-27 | 2008-05-27 | Microsoft Corporation | Application program interface call replay tool |
US8103769B1 (en) * | 2009-09-03 | 2012-01-24 | Amazon Technologies, Inc. | Dynamic isolation of shared resources |
KR102203204B1 (ko) * | 2019-05-08 | 2021-01-13 | 고려대학교 산학협력단 | 가상화 환경에서의 성능 제어 방법 및 이를 위한 정보 처리 장치 |
-
2021
- 2021-05-27 CN CN202110582668.1A patent/CN113220368B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109992398A (zh) * | 2017-12-29 | 2019-07-09 | 广东欧珀移动通信有限公司 | 资源管理方法、装置、移动终端及计算机可读存储介质 |
Non-Patent Citations (1)
Title |
---|
"Control Group(CGroup)资源限制";不专业的李花花;《CSDN》;20190927;正文全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113220368A (zh) | 2021-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108132838B (zh) | 一种图数据处理的方法、装置及系统 | |
US10977086B2 (en) | Workload placement and balancing within a containerized infrastructure | |
CN108462760B (zh) | 电子装置、集群访问域名自动生成方法及存储介质 | |
CN112000463B (zh) | 一种基于cuda的gpu资源分配方法、系统、终端及存储介质 | |
US9886299B2 (en) | System and method for dynamically allocating resources of virtual machines based on service-level agreements (SLA) and privilege levels of users | |
CN111723079A (zh) | 数据迁移方法、装置、计算机设备及存储介质 | |
CN109445690B (zh) | 一种raid卡性能优化方法、装置、终端及存储介质 | |
CN111414391A (zh) | 一种访问多数据源的方法及系统 | |
CN111669284A (zh) | OpenStack自动化部署方法、电子设备、存储介质及系统 | |
CN113220368B (zh) | 一种存储客户端资源隔离方法、系统、终端及存储介质 | |
CN113535087B (zh) | 数据迁移过程中的数据处理方法、服务器及存储系统 | |
CN111258950B (zh) | 原子访存方法、存储介质、计算机设备、装置和系统 | |
US10983832B2 (en) | Managing heterogeneous memory resource within a computing system | |
CN111124772A (zh) | 一种云平台存储性能测试方法、系统、终端及存储介质 | |
US20210389994A1 (en) | Automated performance tuning using workload profiling in a distributed computing environment | |
CN110908644B (zh) | 状态节点的配置方法、装置、计算机设备和存储介质 | |
CN112003730A (zh) | 一种集群快速部署的方法、系统、终端及存储介质 | |
CN111124890A (zh) | 一种分布式数据库性能测试方法、系统、终端及存储介质 | |
CN110908783A (zh) | 一种云数据中心虚拟机的管控方法、系统及设备 | |
CN113392052B (zh) | 一种基于四路服务器的bios系统、方法及计算机可读存储介质 | |
EP3343370A1 (en) | Method of processing opencl kernel and computing device therefor | |
CN109582411A (zh) | 图形用户界面生成方法、装置、计算机设备及存储介质 | |
US20230111884A1 (en) | Virtualization method, device, board card and computer-readable storage medium | |
CN115150268A (zh) | Kubernetes集群的网络配置方法、装置、及电子设备 | |
US11574087B2 (en) | Multi-processor simulation on a multi-core machine |
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 |