CN107273047B - 一种缓存管理方法、缓存管理器及存储管理软件 - Google Patents
一种缓存管理方法、缓存管理器及存储管理软件 Download PDFInfo
- Publication number
- CN107273047B CN107273047B CN201710426741.XA CN201710426741A CN107273047B CN 107273047 B CN107273047 B CN 107273047B CN 201710426741 A CN201710426741 A CN 201710426741A CN 107273047 B CN107273047 B CN 107273047B
- Authority
- CN
- China
- Prior art keywords
- data
- cache
- change
- storage system
- layer
- 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
- 238000007726 management method Methods 0.000 title claims abstract description 11
- 238000000034 method Methods 0.000 claims abstract description 37
- 238000012544 monitoring process Methods 0.000 claims description 9
- 238000013075 data extraction Methods 0.000 claims description 6
- 238000013500 data storage Methods 0.000 claims description 5
- 230000003993 interaction Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
Abstract
本申请公开了一种缓存管理方法,应用于存储管理软件,包括:获取存储系统发送的数据变更通知;从存储系统中提取出数据变更通知所对应的变化数据,并把变化数据保存至缓存层;根据业务层发送的数据请求指令,从缓存层中提取出相应的数据,并将该数据反馈给业务层。本申请通过在管理软件和存储系统之间增加数据缓存层,可以更快的获取存储系统的数据变化,可以减少对存储系统本身的请求访问,提高了存储系统的资源使用率和效率。另外,本申请还相应公开了一种缓存管理器和存储管理软件。
Description
技术领域
本发明涉及存储管理软件技术领域,特别涉及一种缓存管理方法、缓存管理器及存储管理软件。
背景技术
在存储管理软件领域,系统存储管理软件通常是使用轮询的方式来对存储系统内部的对象状态和信息一一进行查询,轮询方式是让CPU(CPU,即Central Processing Unit,中央处理器)以一定的周期按一定的次序查询每一个存储系统的对象,看它是否有输入输出的要求,如果有,则进行相应的输入和输出服务;如果没有,CPU就接着查询下一个存储系统的对象。显然系统通过轮询的这种方式不能实时的获得存储系统内部对象状态和信息的变化情况,而且需要一定的时间间隔才能得到对象状态和信息的变化情况。显然,这一过程需要耗费大量的时间,直接导致了存储系统的资源使用率和存储效率低。
发明内容
有鉴于此,本发明的目的在于提供一种缓存管理方法、缓存管理器及存储管理软件,可以有效减少对存储系统的资源消耗,提高存储系统的资源使用率和效率。其具体方案如下:
一种缓存管理方法,应用于存储管理软件,包括:
获取存储系统发送的数据变更通知;
从所述存储系统中提取出所述数据变更通知所对应的变化数据,并把所述变化数据保存至缓存层;
根据业务层发送的数据请求指令,从所述缓存层中提取出相应的数据,并将该数据反馈给业务层。
优选的,所述获取存储系统发送的数据变更通知的过程之前,还包括:
当监测到所述存储管理软件首次进行系统加载,则对所述缓存层进行初始化。
优选的,所述获取存储系统发送的数据变更通知的过程,包括:
获取所述存储系统通过socket接口发送的数据变更通知。
优选的,所述获取存储系统发送的数据变更通知的过程之后,还包括:
清除所述缓存层中与所述数据变更通知对应的数据。
优选的,所述从所述存储系统中提取出所述数据变更通知所对应的变化数据,并把所述变化数据保存至缓存层的过程,包括:
利用CLI命令,从所述存储系统中查询出与所述数据变更通知所对应的变化数据;
将所述变化数据从所述存储系统中提取出来;
将提取出的所述变化数据保存至所述缓存层。
优选的,还包括:
为所述缓存层中的每个缓存数据均设置相应的失效时长。
优选的,还包括:
监测所述缓存层中的每个缓存数据的已存储时长是否大于相应的失效时长;
若监测到目标缓存数据的已存储时长大于相应的失效时长,则利用CLI命令,从所述存储系统中查询出当前与所述目标缓存数据对应的最新数据,并利用该最新数据对所述目标缓存数据进行替换更新;
其中,所述目标缓存数据为保存在所述缓存层中的任意缓存数据。
相应的,本发明还公开了一种缓存管理器,应用于存储管理软件,包括:
通知获取模块,用于获取存储系统发送的数据变更通知;
数据提取模块,用于从所述存储系统中提取所述变更通知所对应的变化数据;
数据保存模块,用于把所述变化数据保存至缓存层;
数据反馈模块,用于根据业务层发送的数据请求指令,从所述缓存层中提取出相应的数据,并将该数据反馈给所述业务层。
优选的,所述通知获取模块包括:
通知获取单元,用于获取所述存储系统通过socket接口发送的数据变更通知。
进一步的,本发明还公开了一种存储管理软件,包括前述公开的缓存管理器。
本发明中,缓存管理方法,应用于存储管理软件,包括:获取存储系统发送的数据变更通知;从存储系统中提取出数据变更通知所对应的变化数据,并把变化数据保存至缓存层;根据业务层发送的数据请求指令,从缓存层中提取出相应的数据,并将该数据反馈给业务层。可见,本发明通过在管理软件和存储系统之间增加数据缓存层,通过设置数据缓存层使得系统存储管理软件时不需要再对存储系统内部的对象状态和信息一一进行查询,而是直接变为查询缓存,减少了和存储系统之间信息交互的过程,大大减少了对存储系统CPU的资源消耗,进而提高了存储系统本身业务的资源使用率和效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例公开的一种缓存管理方法流程图;
图2为本发明实施例公开的一种缓存管理器示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明公开了一种缓存管理方法,参见图1所示,该方法包括:
步骤S11:获取存储系统发送的数据变更通知;
可以理解的是,上述存储系统包括但并不限于计算机中存放程序和数据的各种存储设备,对数据变更通知的形式也不作限定。
步骤S12:从上述存储系统中提取出上述数据变更通知所对应的变化数据,并把上述变化数据保存至缓存层;
可以理解的是,上述数据变更通知所对应的变化数据可以是存储系统中内部的对象发生变化,也可以是存储系统中的信息发生变化,也可以是其他类型的数据发生变化,此处不作限定。
步骤S13:根据业务层发送的数据请求指令,从所述缓存层中提取出相应的数据,并将该数据反馈给所述业务层。
可见,本申请通过在管理软件和存储系统之间增加数据缓存层,首先获取存储系统发送的数据变更通知;再从存储系统中提取出数据变更通知所对应的变化数据,并把变化数据保存至缓存层;最后根据业务层发送的数据请求指令,从缓存层中提取出相应的数据,并将该数据反馈给业务层。这样可以更快的获取存储系统的数据变化,可以减少对存储系统本身的请求访问,提高了存储系统的资源使用率和效率。
本发明实施例公开了一种具体的缓存管理方法,相对于上一实施例,本发明实施例对技术方案作了进一步的说明和优化,具体的:
上一实施例步骤S11中,对上述获取存储系统发送的数据变更通知的过程之前,还包括:
当监测到上述存储管理软件首次进行系统加载时,则对上述缓存层进行初始化。
可以理解的是,上述初始化是对存储系统的状态和信息做一次主要的CLI(CLI,即Command-line Interface)查询操作,并将上述查询操作对得到的信息,并将返回结果保存在缓存中。显然数据保存在缓存中,业务层只需要在缓存中查询数据并对其进行处理,进而提高了存储系统业务的资源使用率和效率。
上述获取存储系统发送的数据变更通知的过程,包括:
获取上述存储系统通过socket接口发送的数据变更通知。
而且,在上述获取存储系统发送的数据变更通知的过程之后,还包括:
清除上述缓存层中与上述数据变更通知对应的数据。
可以理解的是,如果这个数据变更通知对应的数据是缓存层中的某一部分数据,则这里便是对缓存层中的部分数据进行清除;如果这个数据变更通知对应的数据是缓存层中的全部数据,则这里便是对缓存层中的全部数据进行清除。
比如,如果存储系统内部对象的状态和信息发生变化时,就会清除对应上述缓存层中对应对象的数据;如果存储系统因为节点切换等原因导致需要管理软件重新全部同步缓存时,就会清空缓存层中的所有对象的数据。
具体的,上述步骤S12中,从上述存储系统中提取出上述数据变更通知所对应的变化数据,并把上述变化数据保存至缓存层的过程,包括以下步骤S121、步骤S122和步骤S123:
步骤S121:利用CLI命令,从上述存储系统中查询出与上述数据变更通知所对应的变化数据;
步骤S122:将上述变化数据从上述存储系统中提取出来;
步骤S123:将提取出的上述变化数据保存至上述缓存层。
进一步的,上述的缓存管理方法,还包括:
为上述缓存层中的每个缓存数据均设置相应的失效时长。
更进一步的,上述缓存层中的每个缓存数据均设置相应的失效时长的过程,还包括:
监测上述缓存层中的每个缓存数据的已存储时长是否大于相应的失效时长,如果监测到目标缓存数据的已存储时长大于相应的失效时长,则利用CLI命令,从上述存储系统中查询出当前与上述目标缓存数据对应的最新数据,并利用该最新数据对上述目标缓存数据进行替换更新;
其中,上述目标缓存数据为保存在上述缓存层中的任意缓存数据。
可见,通过将变化的数据同步缓存到内部缓存中,通过查询缓存数据,减少了和存储系统之间交互消息的过程,减少了对存储系统的资源消耗,提高了存储系统的使用率和效率。
相应的,本发明实施例还公开了一种缓存管理器,参见图2所示,该缓存管理器包括:
通知获取模块21,用于获取存储系统发送的数据变更通知;
数据提取模块22,用于从上述存储系统中提取所述变更通知所对应的变化数据;
数据保存模块23,用于把上述变化数据保存至缓存层;
数据反馈模块24,用于根据业务层发送的数据请求指令,从上述缓存层中提取出相应的数据,并将该数据反馈给上述业务层。
具体的,该缓存管理器还包括初始化模块,其中,
初始化模块,用于在上述通知获取模块获取数据变更通知之前,当监测到所述存储管理软件首次进行系统加载,则对所述缓存层进行初始化。
具体的,上述通知获取模块21包括:通知获取单元,用于获取所述存储系统通过socket接口发送的数据变更通知。
优选的,该缓存管理器还包括数据清除模块,用于在所述通知获取模块获取所述数据变更通知之后,清除所述缓存层中与所述数据变更通知对应的数据。
具体的,上述数据提取模块22,包括数据查询单元、数据提取单元和数据保存单元;其中,
数据查询单元,用于利用CLI命令,从上述存储系统中查询出上述数据变更通知所对应的变化数据;
数据提取单元,用于将上述变化数据从所述存储系统中提取出来;
数据保存单元,用于将提取出的上述变化数据保存至所述缓存层。
优选的,该缓存管理器,还包括:
缓存数据设置模块,用于为所述缓存层中的每个缓存数据均设置相应的失效时长。
更为具体的,上述缓存数据设置模块,还包括数据监测单元和数据更新单元;其中
数据监测单元,用于监测上述缓存层中的每个缓存数据的已存储时长是否大于相应的失效时长:
数据更新单元,用于当上述数据监测单元监测到目标缓存数据的已存储时长大于相应的失效时长,则利用CLI命令,从上述存储系统中查询出当前与上述目标缓存数据对应的最新数据,并利用该最新数据对上述目标缓存数据进行替换更新;
其中,上述目标缓存数据为保存在上述缓存层中的任意缓存数据。
关于上述各个模块和各个单元更加详细的工作过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
相应的,本发明实施例还公开了一种存储管理软件,包括上述的缓存管理器。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明对所提供的一种缓存方法、缓存管理器及存储管理软件进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (7)
1.一种缓存管理方法,其特征在于,应用于存储管理软件,包括:
获取存储系统发送的数据变更通知;
从所述存储系统中提取出所述数据变更通知所对应的变化数据,并把所述变化数据保存至缓存层;
根据业务层发送的数据请求指令,从所述缓存层中提取出相应的数据,并将该数据反馈给所述业务层;
还包括:
为所述缓存层中的每个缓存数据均设置相应的失效时长;
监测所述缓存层中的每个缓存数据的已存储时长是否大于相应的失效时长;
若监测到目标缓存数据的已存储时长大于相应的失效时长,则利用CLI命令,从所述存储系统中查询出当前与所述目标缓存数据对应的最新数据,并利用该最新数据对所述目标缓存数据进行替换更新;
其中,所述目标缓存数据为保存在所述缓存层中的任意缓存数据;
所述获取存储系统发送的数据变更通知的过程之后,还包括:
清除所述缓存层中与所述数据变更通知对应的数据。
2.根据权利要求1所述的方法,其特征在于,所述获取存储系统发送的数据变更通知的过程之前,还包括:
当监测到所述存储管理软件首次进行系统加载,则对所述缓存层进行初始化。
3.根据权利要求1所述的方法,其特征在于,所述获取存储系统发送的数据变更通知的过程,包括:
获取所述存储系统通过socket接口发送的数据变更通知。
4.根据权利要求1所述的方法,其特征在于,所述从所述存储系统中提取出所述数据变更通知所对应的变化数据,并把所述变化数据保存至缓存层的过程,包括:
利用CLI命令,从所述存储系统中查询出与所述数据变更通知所对应的变化数据;
将所述变化数据从所述存储系统中提取出来;
将提取出的所述变化数据保存至所述缓存层。
5.一种缓存管理器,其特征在于,应用于存储管理软件,包括:
通知获取模块,用于获取存储系统发送的数据变更通知;
数据提取模块,用于从所述存储系统中提取所述变更通知所对应的变化数据;
数据保存模块,用于把所述变化数据保存至缓存层;
数据反馈模块,用于根据业务层发送的数据请求指令,从所述缓存层中提取出相应的数据,并将该数据反馈给所述业务层;
还包括:
缓存数据设置模块,用于为所述缓存层中的每个缓存数据均设置相应的失效时长;
上述缓存数据设置模块,还包括数据监测单元和数据更新单元;其中
数据监测单元,用于监测上述缓存层中的每个缓存数据的已存储时长是否大于相应的失效时长:
数据更新单元,用于当上述数据监测单元监测到目标缓存数据的已存储时长大于相应的失效时长,则利用CLI命令,从上述存储系统中查询出当前与上述目标缓存数据对应的最新数据,并利用该最新数据对上述目标缓存数据进行替换更新;
其中,上述目标缓存数据为保存在上述缓存层中的任意缓存数据;
还包括数据清除模块,用于在所述通知获取模块获取所述数据变更通知之后,清除所述缓存层中与所述数据变更通知对应的数据。
6.根据权利要求5所述的缓存管理器,其特征在于,所述通知获取模块包括:
通知获取单元,用于获取所述存储系统通过socket接口发送的数据变更通知。
7.一种存储管理软件,其特征在于,包括如权利要求5或6所述的缓存管理器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710426741.XA CN107273047B (zh) | 2017-06-08 | 2017-06-08 | 一种缓存管理方法、缓存管理器及存储管理软件 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710426741.XA CN107273047B (zh) | 2017-06-08 | 2017-06-08 | 一种缓存管理方法、缓存管理器及存储管理软件 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107273047A CN107273047A (zh) | 2017-10-20 |
CN107273047B true CN107273047B (zh) | 2020-09-15 |
Family
ID=60066483
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710426741.XA Active CN107273047B (zh) | 2017-06-08 | 2017-06-08 | 一种缓存管理方法、缓存管理器及存储管理软件 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107273047B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107748652B (zh) * | 2017-11-07 | 2021-04-20 | 深圳市智物联网络有限公司 | 一种数据存储方法及装置 |
CN108647269A (zh) * | 2018-04-28 | 2018-10-12 | 郑州云海信息技术有限公司 | 一种管理存储设备数据变化的方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9384071B2 (en) * | 2011-03-31 | 2016-07-05 | Solarflare Communications, Inc. | Epoll optimisations |
CN102163231A (zh) * | 2011-04-13 | 2011-08-24 | 浪潮(北京)电子信息产业有限公司 | 数据收集方法和装置 |
CN103929472A (zh) * | 2014-03-21 | 2014-07-16 | 珠海多玩信息技术有限公司 | 数据处理方法、装置及系统 |
US10333797B2 (en) * | 2015-08-28 | 2019-06-25 | Nicira, Inc. | Centralized troubleshooting tool in distributed virtual network |
CN106302554A (zh) * | 2016-11-08 | 2017-01-04 | 郑州云海信息技术有限公司 | 一种socket通信方法、装置和存储设备 |
CN106790705A (zh) * | 2017-02-27 | 2017-05-31 | 郑州云海信息技术有限公司 | 一种分布式应用本地缓存的实现系统及实现方法 |
-
2017
- 2017-06-08 CN CN201710426741.XA patent/CN107273047B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN107273047A (zh) | 2017-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6629697B2 (ja) | 仮想マシンイメージファイルを抽出する方法および装置 | |
CN102291416B (zh) | 一种客户端与服务器端双向同步的方法及系统 | |
CN105915633B (zh) | 自动化运维系统和方法 | |
CN107943594B (zh) | 数据获取方法和装置 | |
CN106850710B (zh) | 一种数据云存储系统、客户终端、存储服务器及应用方法 | |
CN101188566B (zh) | 一种集群环境下数据缓存同步的方法及系统 | |
CN109756417B (zh) | 离线消息分发方法、服务器及存储介质 | |
CN104486445A (zh) | 一种基于云平台的分布式可扩展资源监控系统及方法 | |
CN104065517A (zh) | 分布式系统软件配置管理方法和系统 | |
CN108696581B (zh) | 分布式信息的缓存方法、装置、计算机设备以及存储介质 | |
CN110795503A (zh) | 分布式存储系统的多集群数据同步方法及相关装置 | |
CN103856569A (zh) | 一种同步域名系统资源信息的方法及设备 | |
CN111818117A (zh) | 数据更新的方法、装置、存储介质及电子设备 | |
CN115640110B (zh) | 分布式云计算系统调度方法和装置 | |
CN107968797B (zh) | 一种视频传输方法、装置及系统 | |
CN111221469B (zh) | 同步缓存数据的方法、装置和系统 | |
CN105049502A (zh) | 一种云端网络管理系统中设备软件更新的方法和装置 | |
CN110740155B (zh) | 分布式系统中的请求处理方法及装置 | |
CN103716384A (zh) | 跨数据中心实现云存储数据同步的方法和装置 | |
CN103905441A (zh) | 数据获取方法及装置 | |
KR20210040864A (ko) | 파일 디렉터리 순회 방법, 장치, 기기, 매체 및 컴퓨터 프로그램 | |
CN107273047B (zh) | 一种缓存管理方法、缓存管理器及存储管理软件 | |
CN114629883B (zh) | 服务请求的处理方法、装置、电子设备及存储介质 | |
CN110659124A (zh) | 一种消息处理方法和装置 | |
CN107844310B (zh) | 一种配置信息更新方法及系统 |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200820 Address after: 215100 No. 1 Guanpu Road, Guoxiang Street, Wuzhong Economic Development Zone, Suzhou City, Jiangsu Province Applicant after: SUZHOU LANGCHAO INTELLIGENT TECHNOLOGY Co.,Ltd. Address before: 450018 Henan province Zheng Dong New District of Zhengzhou City Xinyi Road No. 278 16 floor room 1601 Applicant before: ZHENGZHOU YUNHAI INFORMATION TECHNOLOGY Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |