CN107590287B - 一种文件系统页缓存回写方法、系统、装置及存储介质 - Google Patents
一种文件系统页缓存回写方法、系统、装置及存储介质 Download PDFInfo
- Publication number
- CN107590287B CN107590287B CN201710937909.3A CN201710937909A CN107590287B CN 107590287 B CN107590287 B CN 107590287B CN 201710937909 A CN201710937909 A CN 201710937909A CN 107590287 B CN107590287 B CN 107590287B
- Authority
- CN
- China
- Prior art keywords
- file
- file system
- dirty
- dirty page
- page
- 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
- 238000000034 method Methods 0.000 title claims abstract description 46
- 238000004590 computer program Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 12
- 230000000903 blocking effect Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种文件系统页缓存回写方法、系统、装置及存储介质,该方法包括:获取文件系统打开的文件的平均缓存大小;获取当前文件的脏页数;利用所述平均缓存大小和预设的脏页比例阈值,确定脏页数量阈值;判断所述脏页数是否超过所述脏页数量阈值,如果是,则强制回写当前文件的脏页。本发明由文件系统打开的文件的平均缓存大小和预设的脏页比例阈值,确定适合当前文件使用情况的脏页数量阈值,然后判断当前文件的脏页数是否超过脏页数量阈值来确定是否对当前文件的脏页进行回写。由于每个文件进行强制回写的时间点不同,因此脏页回写任务被均匀分散到多个时间点执行,避免了文件系统整体的写性能大幅波动,进而提高了文件系统的写性能。
Description
技术领域
本发明涉及系统缓存回写领域,特别涉及一种文件系统页缓存回写方法、系统、装置及存储介质。
背景技术
文件系统处理缓存写请求时,先写入页缓存(Page Cache),然后在合适的时间点回写到磁盘。目前,文件系统在以下两种情况下会回写脏页(Dirty Page),其中,脏页即为数据被修改的页缓存。
具体地,情况一为定时回写,内核定时启动回写线程,由回写线程将被标记为脏页的时间超过时间阈值的脏页回写到磁盘。
情况二为定量回写,在缓存写操作时,当发现脏页的比例超过初始比例阈值(vm.dirty_background_ratio)时,启动后台回写线程,如果此时写入速度小于后台回写速度,脏页比例将会下降,而如果写入速度大于后台回写速度,脏页持续增加,脏页比例将会继续上升,当脏页比例超过上限比例阈值(vm.dirty_ratio)时,写操作会被阻塞,文件系统将会强制执行内存回收,其中,内存回收大部分为内存回写,其余部分为内存交换和释放,以保证内存中不会存在过量脏页。
参见图1与图2所示,图1为现有技术中脏页量变化示意图,图2为现有技术中文件系统性能变化示意图,当应用写入量巨大时,脏页数量随着时间持续增长,应用线程被回写阻塞,造成文件系统性能大幅波动导致性能下降。一般情况下,此时应用线程可以主动调用fsync函数进行强制回写来改善系统性能,但是如果应用来自第三方,则不能修改源代码,无法使用该方法。
发明内容
有鉴于此,本发明的目的在于提供一种文件系统页缓存回写方法、系统、装置及存储介质,能够避免回写页缓存导致的文件系统的性能大幅波动,进而提高文件系统的写性能。其具体方案如下:
一种文件系统页缓存回写方法,包括:
获取文件系统打开的文件的平均缓存大小;
获取当前文件的脏页数;
利用所述平均缓存大小和预设的脏页比例阈值,确定脏页数量阈值;
判断所述脏页数是否超过所述脏页数量阈值,如果是,则强制回写当前文件的脏页。
优选地,所述获取文件系统打开的文件的平均缓存大小的过程,包括:
获取所述文件系统打开的文件数量;
利用所述文件系统的可用内存大小除以所述文件数量,得到所述平均缓存大小。
优选地,当所述脏页数不超过所述脏页数量阈值时,进一步包括:
将当前写请求写入所述文件系统的页缓存,并更新当前文件的脏页数。
优选地,所述利用所述平均缓存大小和预设的脏页比例阈值,确定脏页数量阈值的过程,包括:
利用所述平均缓存大小乘以所述脏页比例阈值,得到所述脏页数量阈值。
相应地,本发明还提供一种文件系统页缓存回写系统,包括:
平均缓存获取模块,用于获取文件系统打开的文件的平均缓存大小;
脏页数获取模块,用于获取当前文件的脏页数;
数量阈值确定模块,用于利用所述平均缓存大小和预设的脏页比例阈值,确定脏页数量阈值;
判断回写模块,用于判断所述脏页数是否超过所述脏页数量阈值,如果是,则强制回写当前文件的脏页。
优选地,所述平均缓存获取模块包括:
文件数量获取单元,用于获取所述文件系统打开的文件数量;
除法计算单元,用于利用所述文件系统的可用内存大小除以所述文件数量,得到所述平均缓存大小。
优选地,进一步包括:
更新模块,用于将当前写请求写入所述文件系统的页缓存,并更新当前文件的脏页数。
优选地,所述数量阈值确定模块包括:
乘法计算单元,用于利用所述平均缓存大小乘以所述脏页比例阈值,得到所述脏页数量阈值。
本发明再提供一种文件系统页缓存回写装置,包括:
存储器,用于存储指令;其中,所述指令为可实现如前述公开的文件系统页缓存回写方法的步骤的指令;
处理器,用于执行所述存储器中的指令。
本发明又提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如前述公开的文件系统页缓存回写方法的步骤。
本发明公开的文件系统页缓存回写方法、系统、装置及存储介质,由文件系统打开的文件的平均缓存大小和预设的脏页比例阈值,确定适合当前文件使用情况的脏页数量阈值,然后判断当前文件的脏页数是否超过脏页数量阈值来确定是否对当前文件的脏页进行回写。由于应用的线程为顺序启动的,每个线程的启动时间点有差距,再加上中断和线程调度的原因,每个文件进行强制回写的时间点不同,因此从整体上看,回写阻塞只发生在局部,即,脏页回写任务被均匀分散到多个时间点执行,避免了文件系统整体的写性能大幅波动,进而提高了文件系统的写性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为现有技术中脏页量变化示意图;
图2为现有技术中文件系统性能变化示意图;
图3为本发明实施例公开的一种文件系统页缓存回写方法的流程图;
图4为本发明实施例公开的文件系统页缓存回写方法的一种具体实施例的流程图;
图5为本发明实施例公开的文件系统页缓存回写方法中脏页量变化示意图;
图6为本发明实施例公开的文件系统页缓存回写方法中文件系统性能变化示意图;
图7为本发明实施例公开的一种文件系统页缓存回写系统的结构图;
图8为本发明实施例公开的一种文件系统页缓存回写装置的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种文件系统页缓存回写方法,参见图3所示,图3为本发明实施例公开的一种文件系统页缓存回写方法的流程图,包括以下步骤:
步骤S11:获取文件系统打开的文件的平均缓存大小;
具体地,获取所述文件系统打开的文件数量;利用所述文件系统的可用内存大小除以所述文件数量,得到所述平均缓存大小。其中,平均缓存大小反映了文件系统能够为当前打开的文件分配的内存资源的大小。
步骤S12:获取当前文件的脏页数;
其中,当前文件为文件系统打开和使用的文件。
步骤S13:利用所述平均缓存大小和预设的脏页比例阈值,确定脏页数量阈值;
具体地,利用所述平均缓存大小乘以所述脏页比例阈值,得到所述脏页数量阈值。
其中,预设的脏页比例阈值(fsync_dirty_ratio)可以根据实际需求人为设定,例如设定为60%,反映了用户希望文件中脏页数达到文件页缓存60%的时候,进行强制回写。由于文件系统使用应用的过程中,当前文件的数量可能会发生变化,所以需要将脏页比例阈值乘以平均缓存大小,来确定脏页数量阈值,而脏页数量阈值为根据当前文件使用情况得到的合理确定阈值,能够使后续的判断更加准确方便。
步骤S14:判断所述脏页数是否超过所述脏页数量阈值,如果是,则强制回写当前文件的脏页。
本发明实施例公开的文件系统页缓存回写方法,由文件系统打开的文件的平均缓存大小和预设的脏页比例阈值,确定适合当前文件使用情况的脏页数量阈值,然后判断当前文件的脏页数是否超过脏页数量阈值来确定是否对当前文件的脏页进行回写。由于应用的线程为顺序启动的,每个线程的启动时间点有差距,再加上中断和线程调度的原因,每个文件进行强制回写的时间点不同,因此从整体上看,回写阻塞只发生在局部,即,脏页回写任务被均匀分散到多个时间点执行,避免了文件系统整体的写性能大幅波动,进而提高了文件系统的写性能。
进一步地,当脏页数不超过脏页数量阈值时,还包括:
将当前写请求写入所述文件系统的页缓存,并更新当前文件的脏页数。
具体地,由于页缓存的使用与脏页回写为动态平衡的过程,当文件的脏页数还没达到用户期望强制回收的数量时,可以继续使用页缓存,产生新的脏页,并更新当前的脏页数,以便于能够获取到最新的脏页数。
下面对本发明实施例公开的文件系统页缓存回写方法进行更加具体的说明,参见图4所示,图4为本发明实施例公开的文件系统页缓存回写方法的一种具体实施例的流程图。判断当前文件脏页数是否超过单个文件的平均缓存大小与脏页比例阈值(fsync_dirty_ratio)的乘积,如果是,则调用fysnc函数进行强制回收,如果否,则复制数据到页缓存,然后更新当前文件脏页数。
例如,系统内存为32GB,脏页比例阈值预设为50%,应用启动了32个线程进行写操作,那么脏页数量阈值即为(32GB/32*50%)=521MB。判断当前脏页数据是否超过512MB,如果是,则进行强制回收,如果否,则复制数据到页缓存,然后更新当前文件脏页数。
参见图5与图6所示,图5为本发明实施例公开的文件系统页缓存回写方法中脏页量变化示意图,图6为本发明实施例公开的文件系统页缓存回写方法中文件系统性能变化示意图。由于线程为顺序启动的,每个线程的启动时间点有细微差距,再加上中断和线程调度的原因,每个文件到达脏页数量阈值的时间点不同,因此,系统整体脏页量变化的波动较小,回写造成的阻塞只发生在局部,应用的写性能总体表现平稳。
相应地,本发明实施例还公开了一种文件系统页缓存回写系统,参见图7所示,图7为本发明实施例公开的一种文件系统页缓存回写系统的结构图,该系统包括:
平均缓存获取模块21,用于获取文件系统打开的文件的平均缓存大小;
脏页数获取模块22,用于获取当前文件的脏页数;
数量阈值确定模块23,用于利用所述平均缓存大小和预设的脏页比例阈值,确定脏页数量阈值;
判断回写模块24,用于判断所述脏页数是否超过所述脏页数量阈值,如果是,则强制回写当前文件的脏页。
具体地,上述平均缓存获取模块21包括:
文件数量获取单元,用于获取所述文件系统打开的文件数量;
除法计算单元,用于利用所述文件系统的可用内存大小除以所述文件数量,得到所述平均缓存大小。
进一步地,该系统还包括:
更新模块,用于将当前写请求写入所述文件系统的页缓存,并更新当前文件的脏页数。
具体地,上述数量阈值确定模块23包括:
乘法计算单元,用于利用所述平均缓存大小乘以所述脏页比例阈值,得到所述脏页数量阈值。
关于上述文件系统页缓存回写系统中的各个模块及单元更加具体的工作过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
同时,本发明实施例再提供了一种文件系统页缓存回写装置,参见图8所示,图8为本实施例公开的一种文件系统页缓存回写装置结构图,该装置包括:
存储器31,用于存储指令;其中,所述指令为可实现如前述实施例公开的文件系统页缓存回写方法的步骤的指令;
处理器32,用于执行所述存储器中的指令。
最后,本发明实施例进一步提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如前述实施例公开的文件系统页缓存回写方法的步骤。
本发明实施例公开的文件系统页缓存回写方法、系统、装置及存储介质,由文件系统打开的文件的平均缓存大小和预设的脏页比例阈值,确定适合当前文件使用情况的脏页数量阈值,然后判断当前文件的脏页数是否超过脏页数量阈值来确定是否对当前文件的脏页进行回写。由于应用的线程为顺序启动的,每个线程的启动时间点有差距,再加上中断和线程调度的原因,每个文件进行强制回写的时间点不同,因此从整体上看,回写阻塞只发生在局部,即,脏页回写任务被均匀分散到多个时间点执行,避免了文件系统整体的写性能大幅波动,进而提高了文件系统的写性能。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的文件系统页缓存回写方法、系统、装置及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (8)
1.一种文件系统页缓存回写方法,其特征在于,包括:
获取文件系统打开的文件的平均缓存大小;其中,所述平均缓存大小用于表征所述文件系统能够为当前打开的文件分配的内存资源的大小;
获取当前文件的脏页数;
利用所述平均缓存大小和预设的脏页比例阈值,确定脏页数量阈值;
判断所述脏页数是否超过所述脏页数量阈值,如果是,则强制回写当前文件的脏页;
其中,所述利用所述平均缓存大小和预设的脏页比例阈值,确定脏页数量阈值的过程,包括:
利用所述平均缓存大小乘以所述脏页比例阈值,得到所述脏页数量阈值。
2.根据权利要求1所述的方法,其特征在于,所述获取文件系统打开的文件的平均缓存大小的过程,包括:
获取所述文件系统打开的文件数量;
利用所述文件系统的可用内存大小除以所述文件数量,得到所述平均缓存大小。
3.根据权利要求1所述的方法,其特征在于,当所述脏页数不超过所述脏页数量阈值时,进一步包括:
将当前写请求写入所述文件系统的页缓存,并更新当前文件的脏页数。
4.一种文件系统页缓存回写系统,其特征在于,包括:
平均缓存获取模块,用于获取文件系统打开的文件的平均缓存大小;其中,所述平均缓存大小用于表征所述文件系统能够为当前打开的文件分配的内存资源的大小;
脏页数获取模块,用于获取当前文件的脏页数;
数量阈值确定模块,用于利用所述平均缓存大小和预设的脏页比例阈值,确定脏页数量阈值;
判断回写模块,用于判断所述脏页数是否超过所述脏页数量阈值,如果是,则强制回写当前文件的脏页;
其中,所述数量阈值确定模块包括:
乘法计算单元,用于利用所述平均缓存大小乘以所述脏页比例阈值,得到所述脏页数量阈值。
5.根据权利要求4所述的系统,其特征在于,所述平均缓存获取模块包括:
文件数量获取单元,用于获取所述文件系统打开的文件数量;
除法计算单元,用于利用所述文件系统的可用内存大小除以所述文件数量,得到所述平均缓存大小。
6.根据权利要求4所述的系统,其特征在于,进一步包括:
更新模块,用于将当前写请求写入所述文件系统的页缓存,并更新当前文件的脏页数。
7.一种文件系统页缓存回写装置,其特征在于,包括:
存储器,用于存储指令;其中,所述指令为可实现如权利要求1至3中任一项所述的文件系统页缓存回写方法的步骤的指令;
处理器,用于执行所述存储器中的指令。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至3中任一项所述的文件系统页缓存回写方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710937909.3A CN107590287B (zh) | 2017-09-26 | 2017-09-26 | 一种文件系统页缓存回写方法、系统、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710937909.3A CN107590287B (zh) | 2017-09-26 | 2017-09-26 | 一种文件系统页缓存回写方法、系统、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107590287A CN107590287A (zh) | 2018-01-16 |
CN107590287B true CN107590287B (zh) | 2021-03-02 |
Family
ID=61053915
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710937909.3A Active CN107590287B (zh) | 2017-09-26 | 2017-09-26 | 一种文件系统页缓存回写方法、系统、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107590287B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110321059B (zh) * | 2018-03-30 | 2022-01-11 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置及计算机可读存储介质 |
CN109032517B (zh) * | 2018-07-19 | 2021-06-29 | 广东浪潮大数据研究有限公司 | 一种数据落盘的方法、装置和计算机可读存储介质 |
CN112035253B (zh) * | 2020-08-27 | 2023-01-20 | 浪潮商用机器有限公司 | 一种linux系统页缓存回收方法及相关装置 |
CN113268202A (zh) * | 2021-05-14 | 2021-08-17 | 北京首都在线科技股份有限公司 | 系统迁移方法、装置、电子设备和可读存储介质 |
CN114385584A (zh) * | 2021-12-10 | 2022-04-22 | 阿里巴巴(中国)有限公司 | 一种数据写入方法及一种数据读取方法 |
CN115858421B (zh) * | 2023-03-01 | 2023-05-23 | 浪潮电子信息产业股份有限公司 | 一种缓存管理方法、装置、设备、可读存储介质及服务器 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102012873A (zh) * | 2010-11-24 | 2011-04-13 | 清华大学 | Nand闪存的缓存系统及缓存方法 |
CN102508727A (zh) * | 2011-12-01 | 2012-06-20 | 浪潮电子信息产业股份有限公司 | 一种通过软件实现磁盘阵列中的缓存掉电保护方法 |
CN103049396A (zh) * | 2012-12-10 | 2013-04-17 | 浪潮(北京)电子信息产业有限公司 | 数据的刷写方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6813691B2 (en) * | 2001-10-31 | 2004-11-02 | Hewlett-Packard Development Company, L.P. | Computer performance improvement by adjusting a count used for preemptive eviction of cache entries |
-
2017
- 2017-09-26 CN CN201710937909.3A patent/CN107590287B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102012873A (zh) * | 2010-11-24 | 2011-04-13 | 清华大学 | Nand闪存的缓存系统及缓存方法 |
CN102508727A (zh) * | 2011-12-01 | 2012-06-20 | 浪潮电子信息产业股份有限公司 | 一种通过软件实现磁盘阵列中的缓存掉电保护方法 |
CN103049396A (zh) * | 2012-12-10 | 2013-04-17 | 浪潮(北京)电子信息产业有限公司 | 数据的刷写方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107590287A (zh) | 2018-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107590287B (zh) | 一种文件系统页缓存回写方法、系统、装置及存储介质 | |
US11106579B2 (en) | System and method to manage and share managed runtime memory for java virtual machine | |
US20180307600A1 (en) | Memory reclaim method and apparatus | |
JP5425286B2 (ja) | データ処理システムのメモリ使用状況を追跡する方法 | |
US9529609B2 (en) | Tracking guest memory characteristics for memory scheduling | |
US20240289173A1 (en) | Task processing method and apparatus, device, and medium | |
CN108763572B (zh) | 一种实现Apache Solr读写分离的方法和装置 | |
CN108205469B (zh) | 一种基于MapReduce的资源分配方法及服务器 | |
US10261918B2 (en) | Process running method and apparatus | |
US9292427B2 (en) | Modifying memory space allocation for inactive tasks | |
CN110781145B (zh) | 一种文件系统任务调度方法、装置、设备及可读存储介质 | |
CN111190696A (zh) | Docker容器的部署方法、系统、设备及存储介质 | |
CN112988332A (zh) | 一种虚拟机热迁移预测方法、系统和计算机可读存储介质 | |
US20120324194A1 (en) | Adjusting the amount of memory allocated to a call stack | |
CN106598508A (zh) | 一种固态硬盘及其写入仲裁方法、系统 | |
CN109710679B (zh) | 数据抽取方法及装置 | |
CN109508150B (zh) | 一种存储空间分配的方法和装置 | |
CN105740170B (zh) | 一种缓存脏页刷写方法及装置 | |
CN107423114B (zh) | 一种基于服务分类的虚拟机动态迁移方法 | |
CN111708799B (zh) | Spark任务处理方法、装置、电子设备及存储介质 | |
US10474512B1 (en) | Inter-process intra-application communications | |
CN111638892A (zh) | 一种优化应用更新排序的方法、装置、系统及存储介质 | |
CN115756756A (zh) | 基于gpu虚拟化技术的显存资源分配方法、装置和设备 | |
CN107728949B (zh) | 一种自动精简卷测试方法、系统、装置及计算机存储介质 | |
US10671526B2 (en) | Electronic computing device, method for adjusting the trigger mechanism of a garbage collection function, and non-transitory computer readable storage medium thereof |
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: 20210108 Address after: Building 9, No.1, guanpu Road, Guoxiang street, Wuzhong Economic Development Zone, Wuzhong District, Suzhou City, Jiangsu Province Applicant after: SUZHOU LANGCHAO INTELLIGENT TECHNOLOGY Co.,Ltd. Address before: Room 1601, floor 16, 278 Xinyi Road, Zhengdong New District, Zhengzhou City, Henan Province Applicant before: ZHENGZHOU YUNHAI INFORMATION TECHNOLOGY Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |