CN107329983B - 一种机器数据分布式存储、读取方法及*** - Google Patents

一种机器数据分布式存储、读取方法及*** Download PDF

Info

Publication number
CN107329983B
CN107329983B CN201710403460.2A CN201710403460A CN107329983B CN 107329983 B CN107329983 B CN 107329983B CN 201710403460 A CN201710403460 A CN 201710403460A CN 107329983 B CN107329983 B CN 107329983B
Authority
CN
China
Prior art keywords
query
data
request
retriever
load balancer
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
CN201710403460.2A
Other languages
English (en)
Other versions
CN107329983A (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.)
Kunlun Intellectual Exchange Data Technology Beijing Co ltd
Original Assignee
Kunlun Intellectual Exchange Data Technology Beijing 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 Kunlun Intellectual Exchange Data Technology Beijing Co ltd filed Critical Kunlun Intellectual Exchange Data Technology Beijing Co ltd
Priority to CN201710403460.2A priority Critical patent/CN107329983B/zh
Publication of CN107329983A publication Critical patent/CN107329983A/zh
Application granted granted Critical
Publication of CN107329983B publication Critical patent/CN107329983B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2471Distributed queries

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明提供一种机器数据分布式存储、读取方法及***,该方法包括:将实时采集的机器数据划分为若干个数据记录集,所述若干个数据记录集按数据类型进行数据存储,每一批次包括至少一个数据记录集,通过查询分析器提出用户查询请求,进行查询解析,并根据工业数据类型进行查询精确化,基于分区的组织方式,并行的从多个数据分区处理查询请求,依据数据类型从数据记录集内提取数据,得到若干查询结果片段,通过结果合成处理器将多个查询片段的查询结果进行合并得到最终的查询结果。

Description

一种机器数据分布式存储、读取方法及***
技术领域
本发明涉及机器数据处理技术领域,尤其涉及一种机器数据分布式存储、读取方法及***。
背景技术
随着互联网技术的广泛应用,在科技行业,以及传统行业与互联网行业的结合的大背景下,企业的机器数据的增长呈现指数级,这些数据含有宝贵的价值,而在机器数据接入时需要实现可靠数据存储。现有的工业数据查询引擎查询过程较为繁琐,查询结果不够精确,耗时长。
7*24小时持续累积了海量的工业时序机器数据。工业时序数据有很多比较于关系数据所特有的性质。我们希望通过这些特性对海量的工业时序数据进行有效组织,并以此为基础在海量工业时序数据上进行分布式的查询处理,提供高效的查询服务能力以及水平扩展能力。同时,面向工业时序数据的查询请求也有其结合工业场景所特有的模式和特性,查询引擎有效支持和高效回答这些面向工业数据访问特性的查询请求。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种机器数据分布式存储、读取方法及***。
本发明的一个方面,提供了一种机器数据存储方法,包括:
将实时采集的机器数据按数据类型划分为若干个数据记录集,所述若干个数据记录集在数据存储管理器内按数据类型进行分类数据存储,形成多个数据分区,每一数据分区包括至少一个数据记录集;
接口服务器接收到查询命令,并将查询命令传送至负载均衡器;负载均衡器根据***各节点负载、节点失效情况进行请求调度和均衡,并把查询命令传递至数据查询检索器;
通过数据查询检索器接收查询请求,进行查询解析并根据有工业特点的元数据信息进行查询精确化,基于分区的组织方式,并行的从多个数据分区处理查询请求,依据数据类型从数据记录集内提取数据,得到若干查询结果片段;
通过结果合成处理器将多个查询片段的查询结果进行合并,得到最终具有工业数据访问专业特性的查询结果。
进一步地,还包括:
通过客户端输入查询命令,并发送至查询接口服务器;
进一步地,还包括:
通过负载均衡器进行***优化,根据***各节点负载、节点失效情况进行请求调度和均衡。
进一步地,所述负载均衡器使用包括轮询、最少连接优先、哈希和权重轮询的调度算法。
进一步地,所述工业数据类型包括数据的时间维度类型、设备维度类型和结合使用场景的用户自定义数据维度类型。
本发明还提供了一种机器数据分布式存储、读取***,其特征在于,包括:
查询接口服务器,用以接收查询命令,并传送至负载均衡器;
负载均衡器,用以根据***各节点负载、节点失效情况进行请求调度和均衡,并把查询命令传递至数据查询检索器;
数据查询检索器,用以接收查询请求,进行查询解析并根据有工业特点的元数据信息进行查询精确化,基于分区的组织方式,并行的从多个数据分区处理查询请求,依据数据类型从数据记录集内提取数据,得到若干查询结果片段;
查询结果合成器,用以将多个查询片段的查询结果进行合并得到最终具有工业数据访问专业特性的查询结果。
进一步地,还包括:
客户端,用以输入查询命令,输入查询关键词,输出查询结果;
进一步地,所述数据查询检索器包括:
查询处理器,用以接收查询请求,进行查询解析并根据有工业特点的元数据信息进行查询精确化,包括对请求合法性检查、对不符合元数据信息的设备和传感器进行过滤,生成精简后的查询体,并基于数据存储管理器的能力进行查询提取;
数据存储管理器,用以存储不同工业数据类型的数据记录集;
所述查询处理器电连接于所述数据存储管理器。
进一步地,所述客户端电连接于所述查询接口服务器,所述查询接口服务器电连接于所述负载均衡器,所述负载均衡器电连接于所述数据查询检索器,所述数据查询检索器电连接于所述查询结果合成器。
进一步地,包括至少一个数据查询检索器。
本发明的有益效果:
本发明通过工业数据类型的不同对工业时序数据进行标签分类存储,并以此为基础在海量工业时序上进行分布式的查询处理,提高了查询的精确度,降低了查询耗时,解决了传统查询引擎的查询效果不够精确耗时较长的问题,负载均衡器的设置可以根据***各节点负载、节点失效情况进行请求调度和均衡,防止了海量数据查询导致机器负载过高宕机的问题。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本发明的流程图;
图2为本发明的模块连接图;
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非被特定定义,否则不会用理想化或过于正式的含义来解释。
如图1所示,本发明的一个方面,提供了一种机器数据存储方法,包括:
将实时采集的机器数据按数据类型划分为若干个数据记录集,所述若干个数据记录集在数据存储管理器内按数据类型进行分类数据存储,形成多个数据分区,每一数据分区包括至少一个数据记录集;
接口服务器接收到查询命令,并将查询命令传送至负载均衡器;负载均衡器根据***各节点负载、节点失效情况进行请求调度和均衡,并把查询命令传递至数据查询检索器;
通过数据查询检索器接收查询请求,进行查询解析并根据有工业特点的元数据信息进行查询精确化,基于分区的组织方式,并行的从多个数据分区处理查询请求,依据数据类型从数据记录集内提取数据,得到若干查询结果片段;
通过结果合成处理器将多个查询片段的查询结果进行合并,得到最终具有工业数据访问专业特性的查询结果。
进一步地,还包括:
通过客户端输入查询命令,并发送至查询接口服务器;
进一步地,还包括:
通过负载均衡器进行***优化,根据***各节点负载、节点失效情况进行请求调度和均衡。
进一步地,所述负载均衡器使用包括轮询、最少连接优先、哈希和权重轮询的调度算法。
进一步地,所述工业数据类型包括数据的时间维度类型、设备维度类型和结合使用场景的用户自定义数据维度类型。
根据工业领域时序机器数据的特点,以时间维度和设备维度对数据进行分区举例。
首先在时间维度上将数据分为“2015”和“2016”两个分区,然后在每个时间分区里再根据设备维度分为“Dev01”、“Dev02”和“Dev03”三个分区。
示例请求查询2016年某个时间段内,设备“Dev01”的某个传感器的数据,即:“查询在时间段‘2016-01-01 00:00:00’至‘2016-01-02 23:59:59’之间,设备‘Dev01’和‘Dev04’上的一个温度传感器‘Sen01’的温度值大于20℃且小于50℃的所有数据”,查询处理过程如下:
接收到查询请求后,首先由查询处理器来确认请求合法后,分析此查询发现设备“Dev04”并未注册,因此将其过滤掉,进而生成***查询体,根据所查询的设备和时间段,分别查询数据在时间维度和设备维度上所属的分区 (PTTime=2016&PTDevice=“Dev01”),查询所查设备传感器所属的表名(如: Table1),来生成查询计划,具体的查询计划也跟底层的基础数据存储***相关。然后,分析查询计划和***情况,对查询计划进行优化,对于本例来说会根据分区PTTime=2016&PTDevice=“Dev01”中所有数据的数据量,及***情况来将计划并行化。
如图2所示,本发明还提供了一种机器数据分布式存储、读取***,其特征在于,包括:
查询接口服务器,用以接收查询命令,并传送至负载均衡器;
负载均衡器,用以根据***各节点负载、节点失效情况进行请求调度和均衡,并把查询命令传递至数据查询检索器;
数据查询检索器,用以接收查询请求,进行查询解析并根据有工业特点的元数据信息进行查询精确化,基于分区的组织方式,并行的从多个数据分区处理查询请求,依据数据类型从数据记录集内提取数据,得到若干查询结果片段;
查询结果合成器,用以将多个查询片段的查询结果进行合并得到最终具有工业数据访问专业特性的查询结果。
进一步地,还包括:
客户端,用以输入查询命令,输入查询关键词,输出查询结果;
进一步地,所述数据查询检索器包括:
查询处理器,用以接收查询请求,进行查询解析并根据有工业特点的元数据信息进行查询精确化,包括对请求合法性检查、对不符合元数据信息的设备和传感器进行过滤,生成精简后的查询体,并基于数据存储管理器的能力进行查询提取;
数据存储管理器,用以存储不同工业数据类型的数据记录集;
所述查询处理器电连接于所述数据存储管理器。
进一步地,所述客户端电连接于所述查询接口服务器,所述查询接口服务器电连接于所述负载均衡器,所述负载均衡器电连接于所述数据查询检索器,所述数据查询检索器电连接于所述查询结果合成器。
进一步地,包括至少一个数据查询检索器。
本发明通过工业数据类型的不同对工业时序数据进行标签分类存储,并以此为基础在海量工业时序上进行分布式的查询处理,提高了查询的精确度,降低了查询耗时,解决了传统查询引擎的查询效果不够精确耗时较长的问题,负载均衡器的设置可以根据***各节点负载、节点失效情况进行请求调度和均衡,防止了海量数据查询导致机器负载过高宕机的问题。
以上所描述的***实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备 (可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (8)

1.一种机器数据分布式存储、读取方法,其特征在于,包括:
将实时采集的机器数据按数据类型划分为若干个数据记录集,所述若干个数据记录集在数据存储管理器内按数据类型进行分类数据存储,形成多个数据分区,每一数据分区包括至少一个数据记录集;
接口服务器接收到查询命令,并将查询命令传送至负载均衡器;负载均衡器根据***各节点负载、节点失效情况进行请求调度和均衡,并把查询命令传递至数据查询检索器;
通过数据查询检索器接收查询请求,根据查询的设备和时间段,分别查询数据在时间维度和设备维度所属的分区以及查询设备所属的表名,后成查询计划,根据所述分区中的所有数据的数据量以及***情况将查询计划并行化,基于分区的组织方式,并行的从多个数据分区处理查询请求,依据数据类型从数据记录集内提取数据,得到若干查询结果片段;
通过结果合成处理器将多个查询片段的查询结果进行合并,得到最终具有工业数据访问专业特性的查询结果;
通过客户端输入查询命令,并发送至查询接口服务器;
通过负载均衡器进行***优化,根据***各节点负载、节点失效情况进行请求调度和均衡。
2.根据权利要求1所述的方法,其特征在于,所述负载均衡器使用包括轮询、最少连接优先、哈希和权重轮询的调度算法。
3.根据权利要求2所述的方法,其特征在于,所述工业数据类型包括数据的时间维度类型、设备维度类型和结合使用场景的用户自定义数据维度类型。
4.一种机器数据分布式存储、读取***,其特征在于,包括:
查询接口服务器,用以接收查询命令,并传送至负载均衡器;
负载均衡器,用以根据***各节点负载、节点失效情况进行请求调度和均衡,并把查询命令传递至数据查询检索器;
数据查询检索器,用以接收查询请求,根据查询的设备和时间段,分别查询数据在时间维度和设备维度所属的分区以及查询设备所属的表名,后成查询计划,根据所述分区中的所有数据的数据量以及***情况将查询计划并行化,基于分区的组织方式,并行的从多个数据分区处理查询请求,依据数据类型从数据记录集内提取数据,得到若干查询结果片段;
查询结果合成器,用以将多个查询片段的查询结果进行合并得到最终具有工业数据访问专业特性的查询结果。
5.根据权利要求4所述的***,其特征在于,还包括:
客户端,用以输入查询命令,输入查询关键词,输出查询结果。
6.根据权利要求5所述的***,其特征在于,所述数据查询检索器包括:
查询处理器,用以接收查询请求,进对请求合法性检查、对不符合元数据信息的设备和传感器进行过滤,生成精简后的查询体,根据查询的设备和时间段,分别查询数据在时间维度和设备维度所属的分区以及查询设备所属的表名,后成查询计划,根据所述分区中的所有数据的数据量以及***情况将查询计划并行化;
数据存储管理器,用以存储不同工业数据类型的数据记录集;
所述查询处理器电连接于所述数据存储管理器。
7.根据权利要求6所述的***,其特征在于,所述客户端电连接于所述查询接口服务器,所述查询接口服务器电连接于所述负载均衡器,所述负载均衡器电连接于所述数据查询检索器,所述数据查询检索器电连接于所述查询结果合成器。
8.根据权利要求7所述的***,其特征在于,包括至少一个数据查询检索器。
CN201710403460.2A 2017-06-01 2017-06-01 一种机器数据分布式存储、读取方法及*** Active CN107329983B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710403460.2A CN107329983B (zh) 2017-06-01 2017-06-01 一种机器数据分布式存储、读取方法及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710403460.2A CN107329983B (zh) 2017-06-01 2017-06-01 一种机器数据分布式存储、读取方法及***

Publications (2)

Publication Number Publication Date
CN107329983A CN107329983A (zh) 2017-11-07
CN107329983B true CN107329983B (zh) 2020-12-01

Family

ID=60192980

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710403460.2A Active CN107329983B (zh) 2017-06-01 2017-06-01 一种机器数据分布式存储、读取方法及***

Country Status (1)

Country Link
CN (1) CN107329983B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107894997B (zh) * 2017-10-19 2021-10-12 苏州工业大数据创新中心有限公司 工业时序数据的查询处理方法及***
CN108600288A (zh) * 2018-01-13 2018-09-28 长沙开雅电子科技有限公司 一种分布式存储***标签管理数据存储实现方法
CN108256089B (zh) * 2018-01-24 2019-06-18 清华大学 物联网机器数据的变换方法及装置
CN110120972A (zh) * 2019-04-19 2019-08-13 浙江省气象台 分布式存储网格气象数据读取方法及读取***
CN110287213B (zh) * 2019-07-03 2023-02-17 中通智新(武汉)技术研发有限公司 基于olap***的数据查询方法、装置及***
CN111291237A (zh) * 2020-02-04 2020-06-16 北京明略软件***有限公司 数据信息的管理方法和装置
CN112083958B (zh) * 2020-08-14 2023-01-17 陕西千山航空电子有限责任公司 一种基于RapidIO的飞参数据的存储结构及存储方法
CN113778976A (zh) * 2020-09-04 2021-12-10 北京沃东天骏信息技术有限公司 数据处理方法及装置、电子设备、存储介质
CN112732700B (zh) * 2021-01-25 2023-03-14 中冶赛迪信息技术(重庆)有限公司 一种轧钢生产数据切片方法、***、介质及电子终端

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102891881A (zh) * 2012-07-09 2013-01-23 北京中创信测科技股份有限公司 一种实现云环境下节点对等均衡的方法
CN105589951A (zh) * 2015-12-18 2016-05-18 中国科学院计算机网络信息中心 一种海量遥感影像元数据分布式存储方法及并行查询方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101916261B (zh) * 2010-07-28 2013-07-17 北京播思软件技术有限公司 一种分布式并行数据库***的数据分区方法
CN105404634B (zh) * 2014-09-15 2019-02-22 南京理工大学 基于Key-Value数据块的数据管理方法及***
CN105550274B (zh) * 2015-12-10 2019-01-25 曙光信息产业(北京)有限公司 双副本并行数据库的查询方法和装置
CN106503128A (zh) * 2016-10-19 2017-03-15 许继集团有限公司 一种智能电表数据查询方法及***

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102891881A (zh) * 2012-07-09 2013-01-23 北京中创信测科技股份有限公司 一种实现云环境下节点对等均衡的方法
CN105589951A (zh) * 2015-12-18 2016-05-18 中国科学院计算机网络信息中心 一种海量遥感影像元数据分布式存储方法及并行查询方法

Also Published As

Publication number Publication date
CN107329983A (zh) 2017-11-07

Similar Documents

Publication Publication Date Title
CN107329983B (zh) 一种机器数据分布式存储、读取方法及***
US20220284017A1 (en) Systems and methods for rapid data analysis
AU2012236577B2 (en) Processing data in a mapreduce framework
EP3070620A1 (en) Lightweight table comparison
CN106407207B (zh) 一种实时新增数据更新方法和装置
US20160162793A1 (en) Method and apparatus for decision tree based search result ranking
CN107368517A (zh) 一种大数据流查询的方法及设备
CN104978324B (zh) 一种数据处理方法和装置
KR20130113653A (ko) 대용량 데이터의 클러스터 결과 분석 시스템 및 방법
EP2427834A1 (en) Method and system for search engine indexing and searching using the index
US20180157694A1 (en) Bulk data insertion in analytical databases
CN109241084B (zh) 数据的查询方法、终端设备及介质
CN106649828A (zh) 一种数据查询方法及***
CN112204543A (zh) 用于分布式***的频繁模式分析
CN109471874A (zh) 数据分析方法、设备及存储介质
CN104881475A (zh) 一种用于大数据随机抽样的方法和***
CN114741368A (zh) 基于人工智能的日志数据统计方法及相关设备
CN109117426A (zh) 分布式数据库查询方法、装置、设备及存储介质
CN113553341A (zh) 多维数据分析方法、装置、设备及计算机可读存储介质
CN103455491A (zh) 对查询词分类的方法及装置
CN106845787A (zh) 一种数据自动交换方法及装置
CN103778223A (zh) 一种基于云平台的普适背单词***及其构建方法
CN111198847A (zh) 一种适用于大数据集的数据并行处理方法、装置及***
CN104750752A (zh) 一种上网偏好用户群体的确定方法和设备
CN107766380B (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
GR01 Patent grant
GR01 Patent grant