CN111240900A - Data backup method based on virtual tape library - Google Patents
Data backup method based on virtual tape library Download PDFInfo
- Publication number
- CN111240900A CN111240900A CN202010031414.6A CN202010031414A CN111240900A CN 111240900 A CN111240900 A CN 111240900A CN 202010031414 A CN202010031414 A CN 202010031414A CN 111240900 A CN111240900 A CN 111240900A
- Authority
- CN
- China
- Prior art keywords
- size
- disk
- data backup
- disks
- backup
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1456—Hardware arrangements for backup
-
- 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0686—Libraries, e.g. tape libraries, jukebox
Abstract
The invention relates to a data backup method based on a virtual tape library, which comprises the following steps: step S100, when receiving a disk write command, if Size > D2, executing step S400; step S400, including: step S410, ifThen the ID is added1To IDXAs the selected disk; step S420, if ZX≧ Size/X, then Z is used1‑Size/X,Z2‑Size/X,...,ZX-Size/X update Z1,Z2,...,ZX(ii) a Otherwise, update Z with 0X(ii) a Setting X to X-1, and executing step S420 in a loop; step S430, according to the updated Z1,Z2,...,ZXReordering the residual spatial information Inf; and (6) ending.
Description
Technical Field
The invention relates to the field of data backup, in particular to a data backup method based on a virtual tape library.
Background
With the development of informatization, data security is more and more emphasized, and data backup is an important way and means for realizing data security. Since the first tape drive was released by IBM in 1952, tape technology has been gaining importance in the area of data backup. In the traditional data backup mode, a physical tape library/tape unit is combined with backup software, and automation of data backup and recovery is realized by setting a certain strategy. However, tape backups suffer from several drawbacks: for example, magnetic tapes are afraid of moisture, fall, and strong magnetism; the mechanical failure rate is high; slow backup/restore speed, etc. With the great progress of disk technology, the SATA disk backup and recovery based on high performance, large capacity and low cost has become a cost effective backup solution. Disk backup has advantages over tape backup mainly in that: the backup reliability is greatly improved, the data read-write performance is excellent, and the backup/recovery speed is high. Nevertheless, disk backup suffers from the drawback of not being compatible with traditional tape backup modes and operational habits, especially in scenarios where more sophisticated tape backup systems have been established and existing tape technologies are being deployed. A Virtual Tape Library (VTL) backup method is developed based on disk backup. The tape backup is simulated by adopting the disk arrays of the plurality of disks, so that the tape backup has the advantages of both the disk backup and the tape backup, simultaneously overcomes the defects of the disk backup and the tape backup, and realizes the fusion of the tape technology and the disk technology. The VTL adopts the disk as a backup medium and simulates the disk into one or more tapes, thereby having high performance and high reliability, effectively shortening the backup time and improving the safety. The simulated tape is displayed as a real physical tape on the backup server, and the whole backup and recovery process is completely consistent with that of a physical tape library, so that the tape backup operation is effectively compatible. However, in the VTL backup method, for example, a user may imperceptibly perform backup of a tape operation in an operation interface, but there are still some technical problems in terms of how to ensure a better or optimal policy for backing up real data to a disk, and fully exerting the backup efficiency of the disk.
Other prior art for data backup, which is cited herein below for use in understanding the context of VTL technology, does not imply that the following prior art is of strong technical relevance to the present invention, nor that it is the closest prior art to the present invention:
CN100377065C, an ultra-large capacity virtual disk storage system;
CN100547535, tape storage emulation for open system environment;
CN102667703B, system and method for optimized reclamation processing in a virtual tape library system.
Disclosure of Invention
In order to overcome the problems, the invention relates to backup equipment, which comprises a read-write controller in communication connection with an operating system, wherein the read-write controller is in communication connection with N disks and comprises a first interface unit, a second interface unit and a command conversion unit; the first interface unit is used for receiving a first operation command sent by an operating system; the command conversion unit is used for converting the first operation command into a second operation command and forwarding the second operation command to the second interface unit; the second operation command at least comprises a selection parameter indicating that one disk in the N disks is selected; the second interface unit is used for sending the second operation command to the selected disk so as to execute the operation on the selected disk, and the selected disk indicates the selected disk for the selection parameter.
Detailed Description
The present invention will be described in further detail in order to make the objects, technical solutions and advantages of the present invention more apparent. This description is made by way of example and not limitation to specific embodiments consistent with the principles of the invention, the description being in sufficient detail to enable those skilled in the art to practice the invention, other embodiments may be utilized and the structure of various elements may be changed and/or substituted without departing from the scope and spirit of the invention. The following detailed description is, therefore, not to be taken in a limiting sense.
According to the invention, the data backup device comprises a read-write controller which is in communication connection with an operating system, the read-write controller is in communication connection with N disks, and the read-write controller comprises a first interface unit, a second interface unit and a command conversion unit. Those skilled in THE art will appreciate that THE backup appliance of THE present invention may be implemented as a backup appliance using virtual tape library technology, such as THE "THE VTL virtual tape library" of THE Tianhua Star navigation corporation or any other model of backup appliance using a virtual tape library produced or sold by other owners. In the present invention, the operating system is understood as an operating system used by a user, capable of supporting tape data backup and presenting a tape operation interface to the user, and obviously, the present invention does not limit the type and version model of the operating system. In the present invention, the read/write controller may be implemented as computer software, computer hardware, or a combination of computer software and hardware.
According to the invention, the first interface unit is used for receiving a first operation command sent by an operating system. The first operation command is a tape operation command, such as a tape write command that is supported or recognizable by the operating system to backup data to the tape.
According to the invention, the command conversion unit is used for converting the first operation command into a second operation command, and the second operation command is a disk operation command. Since the first operation command is a tape operation command and the physical medium on which data backup is actually performed is a disk, it is necessary to convert the first operation command into the second operation command. The conversion of the command may be performed by any method in the prior art, for example, by using the first and second operation command mapping tables to convert the first operation command into the second operation command.
Further, according to the present invention, when the second operation command is a disk write command, the Size parameter (Size) for indicating the Size of the write data is included in the parameters of the second operation command converted by the command conversion unit, so as to provide a basis for determining the selected disk according to the Size in the subsequent process.
Further, according to the present invention, the command conversion unit further forwards the second operation command to the second interface unit; the second operation command at least comprises a selection parameter indicating that one or more disks in the N disks are selected; the second interface unit is configured to send a second operation command to the selected disk to perform an operation (e.g., a write operation) on the selected disk, and the selected disk indicates the selected disk as the selection parameter. The write operation to the selected disk may be performed in any manner known in the art, and those skilled in the art will recognize that the present invention is not intended to be limited to the specific details of the second operation command to perform an operation (e.g., a write operation) to the physical disk.
According to the present invention, further, the read/write controller further includes a cache, where the cache stores the remaining space information Inf { (ID) of the N disks1,Z1),(ID2,Z2),......,(IDN,ZN) Therein ID ofiIs a unique identification of the ith disk, ZiIs the remaining space of the ith disk, Z1≤Z2≤,......,≤ZNAnd the value range of i is 1. And sequencing the residual space information according to the size of the residual space, so that the write operation strategy of the disk in the data backup can be easily carried out. In the present invention, the cache may be implemented as any storage medium in the prior art, such as a magnetic medium, or a FLASH medium.
According to the present invention, the read/write controller further comprises a computer-readable storage medium storing a computer program which, when executed by the read/write controller, implements the steps of:
step S100, when the second operation command is a disk write command, if the Size is less than or equal to D1, executing step S200; if D1 < Size ≦ D2, perform step S300; if Size > D2, perform step S400; wherein D1 is the first threshold, and D2 is the second threshold.
Step S200, the ID is added1As the selected disk, the method specifically includes:
step S210, if Size is less than or equal to Z1Then the ID is added1Continuing to execute step S220 as the selected disk; otherwise, step S240 is performed.
Step S220, using Z1-Size update Z1。
Step S230, according to the updated Z1Reordering the residual spatial information Inf; and (6) ending.
Step S240, optionally, prompting that the disk space is insufficient; or alternatively,.
According to step S200, when the backup data written to the disk is small (e.g. smaller than D1), it is preferable to backup the backup data to the disk with the largest remaining space among the N disks, and the writing operation of the backup data and the subsequent reading operation of the recovery data may involve only one disk operation. On the premise of ensuring the writing speed, the disk scheduling strategy is simplified to the greatest extent, and the scheduling efficiency is improved.
Step S300, the ID is added1To IDjAs the selected disk; wherein the content of the first and second substances,the operator is rounding up; the method specifically comprises the following steps:
step S310, if D1 is less than or equal to ZjThen the ID is added1To IDjContinuing to execute step S320 as the selected disk; otherwise, step S340 is performed.
Step S320, using Z1-D1,Z2-D1,...,Zj-1-D1 updating Z1,Z2,...,Zj-1Using Zj+ (j-1) D1-Size update Zj。
Step S330, according to the updated Z1,Z2,...,ZjReordering the residual spatial information Inf; and (6) ending.
Step S340, prompting that the disk space is insufficient.
According to step S300, when the backup data written to the disk is large (for example, larger than D1), the backup data is preferably backed up to the plurality of disks with the largest remaining space among the N disks on average. By the method, the backup process can be operated in parallel, and the backup speed of the larger data is ensured.
Step S400, the ID is added1To IDXAs the selected disk; wherein, X is the maximum number of the read-write controllers capable of accessing the disks in parallel (which may be determined by user-defined or hardware equipment, for example), and X is less than or equal to N. Preferably, D2 ═ X × D1.
Further, according to the present invention, step S400 includes:
Step S420, if ZX≧ Size/X, then Z is used1-Size/X,Z2-Size/X,...,ZX-Size/X update Z1,Z2,...,ZX(ii) a Otherwise, update Z with 0X(ii) a Setting X to X-1, step S420 is executed in a loop.
Step S430, according to the updated Z1,Z2,...,ZXReordering the residual spatial information Inf; and (6) ending.
Step S460, ifAnd isThen the ID is added1To IDYAs the selected disk, where Y is taken to a value such thatAnd Y is>X。
Step S480, according to the updated Z1,Z2,...,ZYReordering the residual spatial information Inf; and (6) ending.
According to step S400, when the backup data written to the disk is very large (e.g., larger than D2), the backup data is preferably backed up to X disks with the largest remaining space on average. By the method, the parallel operation of the equipment can be fully utilized in the backup process, and the backup speed of the larger data is ensured.
The disclosed method includes one or more steps for achieving the objectives of the present invention, and the method steps may be interchanged with one another without departing from the scope of the present invention. In other words, unless a specific order of steps is required for proper operation of the embodiment, the order of specific steps may be modified without departing from the spirit and scope of the present invention. While the invention has been described primarily in terms of specific embodiments and applications, those skilled in the art will recognize that the invention is not limited thereto. Various modifications, changes, and variations apparent to those skilled in the art in light of the disclosed methods and systems may be made without departing from the spirit and scope of the invention.
Claims (10)
1. A method of virtual tape library based data backup, the virtual tape library data connected to a plurality of disks, the method comprising the steps of:
step S100, when receiving a disk write command, if Size > D2, executing step S400;
step S400, including:
step S420, if ZX≧ Size/X, then Z is used1-Size/X,Z2-Size/X,...,ZX-Size/X update Z1,Z2,...,ZX(ii) a Otherwise, update Z with 0X(ii) a Setting X to X-1, and executing step S420 in a loop;
step S430, according to the updated Z1,Z2,...,ZXReordering the residual spatial information Inf; finishing;
wherein Size is used to indicate the data Size written to the disks, D1 and D2 are first and second thresholds, D2 is X D1, X is the maximum number of disks that can be accessed in parallel, X is not more than N, N is the number of disks having the remaining space information Inf { (ID {)1,Z1),(ID2,Z2),......,(IDN,ZN) Therein ID ofiIs a unique identification of the ith disk, ZiIs the ithResidual space of the disk, Z1≥Z2≥,......,≥ZNAnd the value range of i is 1.
2. The data backup method according to claim 1, wherein the step S100 further comprises: if Size ≦ D1, step S200 is performed to set the ID1As the selected disk.
3. The data backup method according to claim 2, wherein the step 200 comprises:
step S210, if Size is less than or equal to Z1Then the ID is added1Continuing to execute step S220 as the selected disk;
step S220, using Z1-Size update Z1;
Step S230, according to the updated Z1The remaining spatial information Inf is reordered.
5. The data backup method according to claim 4, wherein the step 300 comprises:
step S310, if D1 is less than or equal to ZjThen the ID is added1To IDjAs the selected disk;
step S320, using Z1-D1,Z2-D1,...,Zj-1-D1 updating Z1,Z2,...,Zj-1Using Zj+ (j-1) D1-Size update Zj;
Step S330, according to the updated Z1,Z2,...,ZjThe remaining spatial information Inf is reordered.
6. A method of virtual tape library based data backup, the virtual tape library data connected to a plurality of disks, the method comprising the steps of:
step S100, when receiving a disk write command, if Size > D2, executing step S400;
step S400, including:
step S460, ifAnd isThen the ID is added1To IDYAs the selected disk, where Y is taken to a value such thatAnd Y is>X;
Step S480, according to the updated Z1,Z2,...,ZYReordering the residual spatial information Inf; finishing;
wherein Size is used to indicate the data Size written to the disks, D1 and D2 are first and second thresholds, D2 is X D1, X is the maximum number of disks that can be accessed in parallel, X is not more than N, N is the number of disks having the remaining space information Inf { (ID {)1,Z1),(ID2,Z2),......,(IDN,ZN) Therein ID ofiIs a unique identification of the ith disk, ZiIs the ithResidual space of the disk, Z1≥Z2≥,......,≥ZNAnd the value range of i is 1.
7. The data backup method according to claim 6, wherein the step S100 further comprises: if Size ≦ D1, step S200 is performed to set the ID1As the selected disk.
8. The data backup method according to claim 7, wherein the step 200 comprises:
step S210, if Size is less than or equal to Z1Then the ID is added1Continuing to execute step S220 as the selected disk;
step S220, using Z1-Size update Z1;
Step S230, according to the updated Z1The remaining spatial information Inf is reordered.
10. The data backup method according to claim 9, wherein the step 300 comprises:
step S310, if D1 is less than or equal to ZjThen the ID is added1To IDjAs the selected disk;
step S320, using Z1-D1,Z2-D1,...,Zj-1-D1 updating Z1,Z2,...,Zj-1Using Zj+ (j-1) D1-Size update Zj;
Step S330, according to the updated Z1,Z2,...,ZjThe remaining spatial information Inf is reordered.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010031414.6A CN111240900B (en) | 2019-05-23 | 2019-05-23 | Data backup method based on virtual tape library |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910433341.0A CN110147298B (en) | 2019-05-23 | 2019-05-23 | Virtual tape library backup system and equipment |
CN202010031414.6A CN111240900B (en) | 2019-05-23 | 2019-05-23 | Data backup method based on virtual tape library |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910433341.0A Division CN110147298B (en) | 2019-05-23 | 2019-05-23 | Virtual tape library backup system and equipment |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111240900A true CN111240900A (en) | 2020-06-05 |
CN111240900B CN111240900B (en) | 2020-11-24 |
Family
ID=67592795
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010031414.6A Active CN111240900B (en) | 2019-05-23 | 2019-05-23 | Data backup method based on virtual tape library |
CN201910433341.0A Active CN110147298B (en) | 2019-05-23 | 2019-05-23 | Virtual tape library backup system and equipment |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910433341.0A Active CN110147298B (en) | 2019-05-23 | 2019-05-23 | Virtual tape library backup system and equipment |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN111240900B (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112149026A (en) * | 2020-10-20 | 2020-12-29 | 北京天华星航科技有限公司 | Distributed data storage system based on web end |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1111857A2 (en) * | 1999-12-22 | 2001-06-27 | Alcatel USA Sourcing, L.P. | Method and apparatus for cell buffer protection in the event of congestion |
CN101493756A (en) * | 2009-03-11 | 2009-07-29 | 威盛电子股份有限公司 | Data writing-in method and apparatus |
CN102096613A (en) * | 2010-12-30 | 2011-06-15 | 上海爱数软件有限公司 | Method and device for generating snapshot |
CN103186433A (en) * | 2011-12-27 | 2013-07-03 | 英业达股份有限公司 | Data backup method and data recovery method for virtual tape equipment |
US20130254590A1 (en) * | 2010-11-26 | 2013-09-26 | Telefonaktiebolaget L M Eriscsson (PUBL) | Real time database system |
CN102622185B (en) * | 2011-01-27 | 2015-09-23 | 北京东方广视科技股份有限公司 | The method of storage file and storage allocation method in multiple storage unit |
CN103167026B (en) * | 2013-02-06 | 2016-05-18 | 数码辰星科技发展(北京)有限公司 | A kind of cloud store environmental data processing method, system and equipment |
US20170060433A1 (en) * | 2015-08-24 | 2017-03-02 | HGST Netherlands B.V. | Methods and systems for improving flash memory flushing |
US20170075593A1 (en) * | 2015-09-11 | 2017-03-16 | Sandisk Technologies Inc. | System and method for counter flush frequency |
CN108287666A (en) * | 2018-01-16 | 2018-07-17 | 中国人民公安大学 | Date storage method and device for cloud storage environment |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6851031B2 (en) * | 2002-08-30 | 2005-02-01 | Alacritus, Inc. | Method of importing data from a physical data storage device into a virtual tape library |
US20040153614A1 (en) * | 2003-02-05 | 2004-08-05 | Haim Bitner | Tape storage emulation for open systems environments |
CN102063276A (en) * | 2010-12-23 | 2011-05-18 | 创新科存储技术有限公司 | Storage equipment with both RAID (Redundant Array Of Inexpensive Disk) and VTL (Virtual Tape Library) functions and method |
CN103914399B (en) * | 2012-12-31 | 2017-03-29 | 中国移动通信集团公司 | Disk buffering method and device in a kind of concurrent computational system |
-
2019
- 2019-05-23 CN CN202010031414.6A patent/CN111240900B/en active Active
- 2019-05-23 CN CN201910433341.0A patent/CN110147298B/en active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1111857A2 (en) * | 1999-12-22 | 2001-06-27 | Alcatel USA Sourcing, L.P. | Method and apparatus for cell buffer protection in the event of congestion |
CN101493756A (en) * | 2009-03-11 | 2009-07-29 | 威盛电子股份有限公司 | Data writing-in method and apparatus |
US20130254590A1 (en) * | 2010-11-26 | 2013-09-26 | Telefonaktiebolaget L M Eriscsson (PUBL) | Real time database system |
CN102096613A (en) * | 2010-12-30 | 2011-06-15 | 上海爱数软件有限公司 | Method and device for generating snapshot |
CN102622185B (en) * | 2011-01-27 | 2015-09-23 | 北京东方广视科技股份有限公司 | The method of storage file and storage allocation method in multiple storage unit |
CN103186433A (en) * | 2011-12-27 | 2013-07-03 | 英业达股份有限公司 | Data backup method and data recovery method for virtual tape equipment |
CN103167026B (en) * | 2013-02-06 | 2016-05-18 | 数码辰星科技发展(北京)有限公司 | A kind of cloud store environmental data processing method, system and equipment |
US20170060433A1 (en) * | 2015-08-24 | 2017-03-02 | HGST Netherlands B.V. | Methods and systems for improving flash memory flushing |
US20170075593A1 (en) * | 2015-09-11 | 2017-03-16 | Sandisk Technologies Inc. | System and method for counter flush frequency |
CN108287666A (en) * | 2018-01-16 | 2018-07-17 | 中国人民公安大学 | Date storage method and device for cloud storage environment |
Non-Patent Citations (1)
Title |
---|
王清团,等: "视频监控中多磁盘存储调度算法的研究", 《信息技术》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112149026A (en) * | 2020-10-20 | 2020-12-29 | 北京天华星航科技有限公司 | Distributed data storage system based on web end |
Also Published As
Publication number | Publication date |
---|---|
CN111240900B (en) | 2020-11-24 |
CN110147298B (en) | 2020-02-18 |
CN110147298A (en) | 2019-08-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8209290B1 (en) | Generic granular restore of application data from a volume image backup | |
US8572337B1 (en) | Systems and methods for performing live backups | |
JP5547727B2 (en) | System and method for tracking changes to volumes | |
CN102096616B (en) | Logical object data duplication method and related device | |
EP1669849A2 (en) | Copy controller and method thereof | |
US8863110B2 (en) | Firmware updating system and method | |
JP2008539474A (en) | Power safe disk storage device, system and method | |
WO2009089426A1 (en) | Selecting storage location for file storage based on storage longevity and speed | |
US20140068216A1 (en) | Storage system for supporting copy command and move command and operation method of storage system | |
JP2011039841A (en) | Data migration method and program | |
US20140372710A1 (en) | System and method for recovering from an unexpected shutdown in a write-back caching environment | |
US20190042134A1 (en) | Storage control apparatus and deduplication method | |
CN111240900B (en) | Data backup method based on virtual tape library | |
US10318196B1 (en) | Stateless storage system controller in a direct flash storage system | |
US8990528B2 (en) | Method for fast format of a fully allocated volume when copied from a space efficient volume | |
US10228961B2 (en) | Live storage domain decommissioning in a virtual environment | |
CN106610788B (en) | Hard disk array control method and device | |
JP2006338345A (en) | Virtual tape library device, virtual tape library system and virtual tape writing method | |
CN105556462A (en) | Writing to files and file meta-data | |
US20150186076A1 (en) | Dynamically updated user data cache for persistent productivity | |
US20130031320A1 (en) | Control device, control method and storage apparatus | |
US20060184729A1 (en) | Device, method, and computer product for disk management | |
KR20160062683A (en) | COMPUTING SYSTEM WITH heterogeneous storage AND METHOD OF OPERATION THEREOF | |
CN110532133B (en) | Low-power-consumption high-capacity extensible data storage method | |
US20100312543A1 (en) | Computer system for executing emulator emulating random access storage medium on virtual sequential access storage medium |
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 |