CN111488395A - 双节点高可用的分布式存储*** - Google Patents

双节点高可用的分布式存储*** Download PDF

Info

Publication number
CN111488395A
CN111488395A CN202010253401.3A CN202010253401A CN111488395A CN 111488395 A CN111488395 A CN 111488395A CN 202010253401 A CN202010253401 A CN 202010253401A CN 111488395 A CN111488395 A CN 111488395A
Authority
CN
China
Prior art keywords
node
service
virtual
zookeeper
high availability
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.)
Granted
Application number
CN202010253401.3A
Other languages
English (en)
Other versions
CN111488395B (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.)
716th Research Institute of CSIC
Original Assignee
716th Research Institute of CSIC
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 716th Research Institute of CSIC filed Critical 716th Research Institute of CSIC
Priority to CN202010253401.3A priority Critical patent/CN111488395B/zh
Publication of CN111488395A publication Critical patent/CN111488395A/zh
Application granted granted Critical
Publication of CN111488395B publication Critical patent/CN111488395B/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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种双节点高可用的分布式存储***,该***包括:由主节点和从节点构成的分布式存储集群,每个节点上均部署WEB服务、数据库、Zookeeper服务和存储服务;数据库用于为WEB服务提供数据存储服务,存储服务用于对外提供数据存储服务;***中某一节点故障时,整个***的管理服务和存储服务由另一个节点接管,实现高可用。通过WEB服务部署方式、主从数据库复制机制、虚拟IP机制、虚拟Zookeeper服务机制和双副本冗余存储策略实现WEB管理服务、集群管理服务和存储数据等高可用。本发明通过双节点即可实现WEB管理服务、集群管理服务和存储数据等的高可用性。***结构简单,能够适用于对应用规模和空间有限制的应用场景,满足各个场景的需求,适用性广。

Description

双节点高可用的分布式存储***
技术领域
本发明属于分布式存储高可用设计技术领域,特别涉及一种双节点高可用的分布式存储***。
背景技术
国外基于SDS技术的数据存储中心已经得到了广泛的研究和应用,如谷歌、亚马逊、微软等公司后端的数据分析都是建立在分布式存储***的基础上。实际用于工业环境的SDS存储***软件方面,主要是在开源软件,如Swift、HDFS、Ceph、FastDFS、 MongoDB等基础上进行的稳定性、功能性的完善和改进,且越来越多的中小型信息公司也在进行存储基础设施向SDS架构的转变。
现有的分布式存储软件如果要实现高可用性,需要至少3个节点的部署方案,而对于一些应用场景由于应用规模和空间限制希望采用两个节点的高可用集群方案,现有技术无法实现。
发明内容
本发明的目的在于提供一种双节点高可用的分布式存储***,可以实现两个节点的数据相互备份的同时对外提供不间断的存储服务。
实现本发明目的的技术解决方案为:双节点高可用的分布式存储***,所述***包括:由主节点和从节点构成的分布式存储集群,每个节点上均部署WEB服务、数据库、Zookeeper服务和存储服务;所述数据库用于为WEB服务提供数据存储服务,所述存储服务用于对外提供数据存储服务;***中某一节点故障时,整个***的管理服务和存储服务由另一个节点接管,实现高可用;
其中,管理服务高可用包括:WEB管理服务高可用,通过WEB服务部署方式、主从数据库复制机制以及虚拟IP机制实现;
其中,存储服务高可用包括:存储集群管理服务高可用,通过虚拟Zookeeper服务机制和虚拟IP机制实现;数据存储服务高可用,通过双副本冗余存储策略和iSCSI多路径实现。
进一步地,所述***上的WEB服务为无状态并部署为多活模式。
进一步地,所述主从数据库复制机制具体为:主节点开启日志功能将数据库的变更写入二进制日志中,从节点的IO线程同步主节点的二进制日志并写入自身的中继日志中,同时从节点数据库主线程重放中继日志,实现与主节点数据同步。
进一步地,所述虚拟IP机制通过部署于集群节点间的虚拟IP实现;所述虚拟Zookeeper服务机制通过部署于集群节点间的虚拟Zookeeper服务实现,形成伪三节点Zookeeper集群。
进一步地,所述虚拟IP、虚拟Zookeeper服务均根据主、从节点的运行状态运行于其中一个节点上,且在当前节点故障时,虚拟IP、虚拟Zookeeper服务会自动漂移到另一个节点。
进一步地,所述虚拟IP、虚拟Zookeeper服务均通过Pacemaker方法进行管理,主、从节点通过该方法检测对方是否故障并与之协商决定在其中一个节点上运行虚拟IP和虚拟Zookeeper服务,实现虚拟IP、虚拟Zookeeper服务漂移。
进一步地,所述虚拟Zookeeper服务和虚拟IP这两种资源放置于Pacemaker的同一个group中,实现虚拟IP和虚拟Zookeeper的同步漂移,两者始终运行于同一节点上。
本发明与现有技术相比,其显著优点为:1)首次提出通过两个节点即可实现分布式存储,能够适用于对应用规模和空间有限制的应用场景,适用性广;2)通过Pacemaker 方法对集群资源进行管理,实现虚拟IP、虚拟Zookeeper服务的漂移,实现存储集群管理服务高可用;3)通过将虚拟Zookeeper服务和虚拟IP这两种资源放置于Pacemaker 的同一个group中,实现虚拟IP和虚拟Zookeeper同步漂移,始终运行于同一节点上,使得该虚拟IP被WEB服务使用的同时,也被虚拟Zookeeper服务复用,从而简化***设计。
下面结合附图对本发明作进一步详细描述。
附图说明
图1为一个实施例中双节点高可用的分布式存储***总体框图。
图2为一个实施例中数据库同步过程示意图。
图3为一个实施例中WEB服务高可用原理示意图。
图4为一个实施例中集群管理高可用原理示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
分布式存储通常对高可用性要求较高,当某一个节点发生故障时,分布式存储集群中的其他节点可以在短时间内接管故障节点的业务,从而实现存储的高可用性。而为了实现高可用性,分布式存储至少需要3个节点来组建集群,对于一些应用场景由于应用规模和空间的限制,希望实现两个节点的分布式存储高可用方案。
在一个实施例中,结合图1,提供了一种双节点高可用的分布式存储***,该***包括:由主节点和从节点构成的分布式存储集群,每个节点上均部署WEB服务、数据库、Zookeeper服务和存储服务;其中,数据库用于为WEB服务提供数据存储服务,存储服务用于对外提供数据存储服务;***中某一节点故障时,整个***的管理服务和存储服务由另一个节点接管,实现高可用;
这里,主、从节点为两台服务器。
其中,管理服务高可用包括:WEB管理服务高可用,通过WEB服务部署方式、主从数据库复制机制以及虚拟IP机制实现;
其中,存储服务高可用包括:存储集群管理服务高可用,通过虚拟Zookeeper服务机制和虚拟IP机制实现;数据存储服务高可用,通过双副本冗余存储策略和iSCSI多路径实现。
这里,双副本冗余存储策略为:存储***对客户端存入的数据通过镜像的方式在两个节点同时存储,从而避免某个节点发生故障导致的全部或者部分数据丢失。iSCSI多路径是指外部客户端与两个节点均建立连接。
进一步地,在其中一个实施例中,***上的WEB服务为无状态并部署为多活模式。
本实施例的方案,结合上述的虚拟IP机制,能保证某一节点发生故障后WEB服务和承载该服务的IP的高可用性,同时避免正常模式下节点数据不一致的问题。
进一步地,在其中一个实施例中,结合图2,上述主从数据库复制机制具体为:主节点开启日志功能将数据库的变更写入二进制日志中,从节点的IO线程同步主节点的二进制日志并写入自身的中继日志中,同时从节点数据库主线程重放中继日志,实现与主节点数据同步。
进一步地,在其中一个实施例中,上述虚拟IP机制通过部署于集群节点间的虚拟IP实现;上述虚拟Zookeeper服务机制通过部署于集群节点间的虚拟Zookeeper服务实现,形成伪三节点Zookeeper集群。
这里,虚拟IP机制被WEB服务使用。
这里,部署伪三节点Zookeeper集群能实现分布式存储集群元数据的高可用。
进一步地,在其中一个实施例中,结合图3和图4,上述虚拟IP、虚拟Zookeeper 服务均根据主、从节点的运行状态运行于其中一个节点上,且在当前节点故障时,虚拟 IP、虚拟Zookeeper服务会自动漂移到另一个节点。
采用本实施例的方案,虚拟IP、虚拟Zookeeper服务根据节点状态自动漂移,不会因节点故障导致管理等服务中断,实现了WEB管理服务、存储集群管理服务的高可用。
进一步地,在其中一个实施例中,上述虚拟IP、虚拟Zookeeper服务均通过Pacemaker 方法进行管理,主、从节点通过该方法检测对方是否故障并与之协商决定在其中一个节点上运行虚拟IP和虚拟Zookeeper服务,实现虚拟IP、虚拟Zookeeper服务漂移。
进一步地,在其中一个实施例中,上述虚拟Zookeeper服务和虚拟IP这两种资源放置于Pacemaker的同一个group中,实现虚虚拟IP和虚拟Zookeeper的同步漂移,两者始终运行于同一节点上。
采用本实施例的方案,使得该虚拟IP被WEB服务使用的同时,也被虚拟Zookeeper服务复用,从而简化***设计。
综上,本发明通过双节点即可实现WEB管理服务、集群管理服务和存储数据等的高可用性。***结构简单,能够适用于对应用规模和空间有限制的应用场景,满足各个场景的需求,适用性广。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (7)

1.双节点高可用的分布式存储***,其特征在于,所述***包括:由主节点和从节点构成的分布式存储集群,每个节点上均部署WEB服务、数据库、Zookeeper服务和存储服务;所述数据库用于为WEB服务提供数据存储服务,所述存储服务用于对外提供数据存储服务;***中某一节点故障时,整个***的管理服务和存储服务由另一个节点接管,实现高可用;
其中,管理服务高可用包括:WEB管理服务高可用,通过WEB服务部署方式、主从数据库复制机制以及虚拟IP机制实现;
其中,存储服务高可用包括:存储集群管理服务高可用,通过虚拟Zookeeper服务机制和虚拟IP机制实现;数据存储服务高可用,通过双副本冗余存储策略和iSCSI多路径实现。
2.根据权利要求1所述的双节点高可用的分布式存储***,其特征在于,所述***上的WEB服务为无状态并部署为多活模式。
3.根据权利要求1或2所述的双节点高可用的分布式存储***,其特征在于,所述主从数据库复制机制具体为:主节点开启日志功能将数据库的变更写入二进制日志中,从节点的IO线程同步主节点的二进制日志并写入自身的中继日志中,同时从节点数据库主线程重放中继日志,实现与主节点数据同步。
4.根据权利要求3所述的双节点高可用的分布式存储***,其特征在于,所述虚拟IP机制通过部署于集群节点间的虚拟IP实现;所述虚拟Zookeeper服务机制通过部署于集群节点间的虚拟Zookeeper服务实现,形成伪三节点Zookeeper集群。
5.根据权利要求4所述的双节点高可用的分布式存储***,其特征在于,所述虚拟IP、虚拟Zookeeper服务均根据主、从节点的运行状态运行于其中一个节点上,且在当前节点故障时,虚拟IP、虚拟Zookeeper服务会自动漂移到另一个节点。
6.根据权利要求5所述的双节点高可用的分布式存储***,其特征在于,所述虚拟IP、虚拟Zookeeper服务均通过Pacemaker方法进行管理,主、从节点通过该方法检测对方是否故障并与之协商决定在其中一个节点上运行虚拟IP和虚拟Zookeeper服务,实现虚拟IP、虚拟Zookeeper服务漂移。
7.根据权利要求6所述的双节点高可用的分布式存储***,其特征在于,所述虚拟Zookeeper服务和虚拟IP这两种资源放置于Pacemaker的同一个group中,实现虚拟IP和虚拟Zookeeper的同步漂移,两者始终运行于同一节点上。
CN202010253401.3A 2020-04-02 2020-04-02 双节点高可用的分布式存储*** Active CN111488395B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010253401.3A CN111488395B (zh) 2020-04-02 2020-04-02 双节点高可用的分布式存储***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010253401.3A CN111488395B (zh) 2020-04-02 2020-04-02 双节点高可用的分布式存储***

Publications (2)

Publication Number Publication Date
CN111488395A true CN111488395A (zh) 2020-08-04
CN111488395B CN111488395B (zh) 2023-05-05

Family

ID=71812700

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010253401.3A Active CN111488395B (zh) 2020-04-02 2020-04-02 双节点高可用的分布式存储***

Country Status (1)

Country Link
CN (1) CN111488395B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112783669A (zh) * 2021-01-06 2021-05-11 北京同有飞骥科技股份有限公司 分布式存储管理方法及***
CN115118706A (zh) * 2022-06-29 2022-09-27 济南浪潮数据技术有限公司 一种节点日志下载方法、装置、设备及介质

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105337780A (zh) * 2015-12-01 2016-02-17 迈普通信技术股份有限公司 一种服务器节点配置方法及物理节点
CN106790565A (zh) * 2016-12-27 2017-05-31 中国电子科技集团公司第五十二研究所 一种网络附属存储集群***
CN106850260A (zh) * 2016-12-23 2017-06-13 曙光云计算技术有限公司 一种虚拟化资源管理平台的部署方法和装置
CN107846318A (zh) * 2017-11-15 2018-03-27 郑州云海信息技术有限公司 一种分布式集群及分布式集群管理方法
CN108228581A (zh) * 2016-12-09 2018-06-29 阿里巴巴集团控股有限公司 Zookeeper兼容通信方法、服务器及***
CN109101200A (zh) * 2018-08-30 2018-12-28 重庆富民银行股份有限公司 一种跨网络实时双向同步的磁盘存储***
CN109584106A (zh) * 2018-11-29 2019-04-05 成都合盛智联科技有限公司 一种智慧小区服务端***
CN109831486A (zh) * 2019-01-02 2019-05-31 技创智能科技(上海)有限公司 多客户端的后台数据服务器***及数据处理方法
CN110912991A (zh) * 2019-11-22 2020-03-24 北京中实信息技术有限公司 一种基于超融合双节点高可用的实现方法
CN110912780A (zh) * 2019-12-13 2020-03-24 无锡华云数据技术服务有限公司 一种高可用集群检测方法、***及受控终端

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105337780A (zh) * 2015-12-01 2016-02-17 迈普通信技术股份有限公司 一种服务器节点配置方法及物理节点
CN108228581A (zh) * 2016-12-09 2018-06-29 阿里巴巴集团控股有限公司 Zookeeper兼容通信方法、服务器及***
CN106850260A (zh) * 2016-12-23 2017-06-13 曙光云计算技术有限公司 一种虚拟化资源管理平台的部署方法和装置
CN106790565A (zh) * 2016-12-27 2017-05-31 中国电子科技集团公司第五十二研究所 一种网络附属存储集群***
CN107846318A (zh) * 2017-11-15 2018-03-27 郑州云海信息技术有限公司 一种分布式集群及分布式集群管理方法
CN109101200A (zh) * 2018-08-30 2018-12-28 重庆富民银行股份有限公司 一种跨网络实时双向同步的磁盘存储***
CN109584106A (zh) * 2018-11-29 2019-04-05 成都合盛智联科技有限公司 一种智慧小区服务端***
CN109831486A (zh) * 2019-01-02 2019-05-31 技创智能科技(上海)有限公司 多客户端的后台数据服务器***及数据处理方法
CN110912991A (zh) * 2019-11-22 2020-03-24 北京中实信息技术有限公司 一种基于超融合双节点高可用的实现方法
CN110912780A (zh) * 2019-12-13 2020-03-24 无锡华云数据技术服务有限公司 一种高可用集群检测方法、***及受控终端

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
李明明,李伟: "基于HDFS的高可靠性存储***的研究", 《西安科技大学学报》 *
汪保友 等: "基于大数据平台的网络优化支撑架构研究", 《互联网天地》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112783669A (zh) * 2021-01-06 2021-05-11 北京同有飞骥科技股份有限公司 分布式存储管理方法及***
CN115118706A (zh) * 2022-06-29 2022-09-27 济南浪潮数据技术有限公司 一种节点日志下载方法、装置、设备及介质

Also Published As

Publication number Publication date
CN111488395B (zh) 2023-05-05

Similar Documents

Publication Publication Date Title
US11360854B2 (en) Storage cluster configuration change method, storage cluster, and computer system
US9842033B2 (en) Storage cluster failure detection
US20080052327A1 (en) Secondary Backup Replication Technique for Clusters
US6910150B2 (en) System and method for state preservation in a stretch cluster
WO2016070375A1 (zh) 一种分布式存储复制***和方法
US9201747B2 (en) Real time database system
WO2017071563A1 (zh) 一种存储数据的方法及集群管理节点
US9131015B2 (en) High availability event log collection in a networked system
CN111488395B (zh) 双节点高可用的分布式存储***
WO2009081657A1 (ja) ノードシステム、サーバ切換え方法、サーバ装置、およびデータ引き継ぎ方法
JP6511739B2 (ja) 冗長システムおよび冗長化方法
CN115658390A (zh) 容器容灾方法、***、装置、设备及计算机可读存储介质
CN111262892B (zh) 一种多ros的服务发现***
CN111460029B (zh) 数据同步方法和装置
CN105323271B (zh) 一种云计算***以及云计算***的处理方法和装置
CN111400065B (zh) 一种分离全局zookeeper的pulsar消息异地多活方法及***
CN113037421B (zh) 用于时钟同步的方法、通信设备、通信***和存储介质
CN112202601B (zh) 副本集模式运行的两物理节点mongo集群的应用方法
JP2010231257A (ja) 高可用性システム、高可用性システムの対障害対策方法
CN109218386A (zh) 一种管理Hadoop命名空间的高可用方法
JP6318902B2 (ja) 冗長システムおよび冗長化方法
CN112019601B (zh) 一种基于分布式存储Ceph的两节点实现方法及***
WO2017047065A1 (ja) クラスタシステム、情報処理装置、クラスタシステムの同期方法、及びプログラムを格納する記憶媒体
KITAMURA et al. Development of Server Function Recovery System for Peer-to-Peer Method Server Management System adopted for Virtual Server System
CN116248675A (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
CB02 Change of applicant information

Address after: 222001 No.18 Shenghu Road, Lianyungang City, Jiangsu Province

Applicant after: The 716th Research Institute of China Shipbuilding Corp.

Address before: 222001 No.18 Shenghu Road, Lianyungang City, Jiangsu Province

Applicant before: 716TH RESEARCH INSTITUTE OF CHINA SHIPBUILDING INDUSTRY Corp.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant