CN105630635B - Data disaster tolerance system and method - Google Patents

Data disaster tolerance system and method Download PDF

Info

Publication number
CN105630635B
CN105630635B CN201511009851.3A CN201511009851A CN105630635B CN 105630635 B CN105630635 B CN 105630635B CN 201511009851 A CN201511009851 A CN 201511009851A CN 105630635 B CN105630635 B CN 105630635B
Authority
CN
China
Prior art keywords
merchandise news
database
reconciliation
message
disaster tolerance
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
CN201511009851.3A
Other languages
Chinese (zh)
Other versions
CN105630635A (en
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.)
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology 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 Beijing Jingdong Century Trading Co Ltd, Beijing Jingdong Shangke Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN201511009851.3A priority Critical patent/CN105630635B/en
Publication of CN105630635A publication Critical patent/CN105630635A/en
Application granted granted Critical
Publication of CN105630635B publication Critical patent/CN105630635B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

The present invention provides a kind of data disaster tolerance system and method, the system comprises: merchandising database is configured to store commodity information;Operations control center, is configured in response to the operation failure to merchandise news and when can not update merchandising database, and the merchandise news is put into message queue;And message handling device, it is configured to handle the merchandise news from message queue, and processing result is sent to merchandising database.

Description

Data disaster tolerance system and method
Technical field
This application involves data processing fields, and in particular, to a kind of data disaster tolerance system and method.
Background technique
With the fast development of e-commerce, the accuracy of merchandise news is become more and more important.For example, merchandise news Accuracy may influence the KPI Key Performance Indicator (KPI) of employee, the storage of storehouse and outbound and other any to be had with commodity The classification system of pass.
User causes quotient due to sporadic server delay machine and network interruption process when operating commodity in order to prevent Product information goes wrong (for example, merchandise news mistake or merchandise news lose etc.), needs a kind of data disaster tolerance system and side Method, to ensure the completeness and efficiency of merchandise news.
Summary of the invention
The present invention provides a kind of data disaster tolerance system and methods, it can be ensured that the completeness and efficiency of merchandise news.
According to example embodiment of the present invention, a kind of data disaster tolerance system is provided, may include: merchandising database, match It is set to store commodity information;Operations control center, being configured to can not more new commodity in response to the operation failure to merchandise news When database, the merchandise news is put into message queue;And message handling device, it is configured to handle the quotient from message queue Processing result is passed through the network between message handling device and merchandising database to complete the operation to merchandise news by product information It is sent to merchandising database, the network between the message handling device and merchandising database is different from operations control center and commodity number According to the network between library.
The data disaster tolerance system can also include: reconciliation database, and wherein operations control center is believed by the commodity While breath is put into message queue, by merchandise news storage to reconciliation database, reconciliation scheduler is configured to determine reconciliation It whether there is the merchandise news of the not stored omission into merchandising database in database.
The merchandise news may include the unique identifier of commodity, the attribute information of commodity and the attribute information to commodity Operation.
The data disaster tolerance system can also include: message queue Distribution Center, be configured to establish multiple message queues, and Multiple merchandise newss are respectively put into the multiple Message Queuing.
The reconciliation scheduler is also configured as when determining the merchandise news for existing and omitting, by the merchandise news of omission It is sent to message handling device, message handling device handles the merchandise news of omission, and processing result is sent to commodity number According to library.
The reconciliation scheduler is configurable to: by periodically by the merchandise news and merchandising database in reconciliation database In merchandise news be compared, to determine whether there is the merchandise news of omission.
The message handling device is also configured as while processing result is sent to merchandising database, will also be described Processing result is sent to reconciliation database to identify the processing of merchandise news completion, and the reconciliation scheduler can also match It is set to: checking whether merchandise news has been identified as processing and complete by the merchandise news in carousel reconciliation database, determine With the presence or absence of the merchandise news of omission.
The method may include: it, will when can not update merchandising database in response to the operation failure to merchandise news The merchandise news is put into message queue;And merchandise news of the processing from message queue is to complete the behaviour to merchandise news Make, and processing result is sent to merchandising database by another network, another network is different from the behaviour to merchandise news The network used when making failure and merchandising database can not be updated.
The method can also include: while the merchandise news is put into message queue, by the merchandise news Store reconciliation database;It determines in reconciliation database with the presence or absence of the merchandise news omitted.
It is described by merchandise news be put into message queue can also include: when there are multiple message queues, respectively will be multiple Merchandise news is put into each Message Queuing.
Detailed description of the invention
Below in conjunction with attached drawing, above and other aspect, feature and the advantage of example embodiments of the present invention will be become apparent from, In attached drawing:
Fig. 1 shows the data disaster tolerance system of the first example embodiment according to the present invention;
Fig. 2 shows the flow charts of the data disaster tolerance method of the first example embodiment according to the present invention;
Fig. 3 shows the flow chart of the data disaster tolerance method of the second example embodiment according to the present invention;And
Fig. 4 shows a kind of implementation of example embodiment according to the present invention.
Specific embodiment
Example of the invention is described below with reference to attached drawing to implement.The present invention provides a kind of data disaster tolerance system and sides Method, it can be ensured that the completeness and efficiency of merchandise news.
Specifically, Fig. 1 shows the data disaster tolerance system 100 of the first example embodiment according to the present invention.The data Disaster tolerance system 100 includes: merchandising database 101, is configured for store commodity information, wherein the merchandise news includes commodity Unique identifier, information attribute value and the attribute information to commodity operation;Operations control center 102 is configured to respond When the operation failure to merchandise news can not update merchandising database 101, the merchandise news is put into message queue;With And message handling device 103, it is configured to handle the merchandise news from message queue, and processing result is sent to merchandising database 101。
With reference to Fig. 2, describe the data disaster tolerance method that data disaster tolerance system 100 as shown in Figure 1 executes first is implemented Example 200.Specifically, in step 201, occurring the case where operation failure when operating to merchandise news as operator Under, the merchandise news is put into message queue by operations control center 102, wherein the merchandise news includes the unique of commodity The operation of identifier, information attribute value and the attribute information to commodity.In step 202, handled via message handling device 103 Merchandise news from message queue, and processing result is sent to merchandising database 101.For example, 103 pairs of message handling device packets The information attribute value being contained in the merchandise news in message queue executes the operation being also contained in the merchandise news.
For example, one is identified as 110221, and one is 119023 there are 2 merchandise newss.When operations control center 102 When can not update merchandising database 101 to the operation failure of merchandise news, this two information are put into message queue.Message Processor 103 handles this two information, and processing result is sent to merchandising database 101.In this way, in due to operational management Heart delay machine (or other reasons) and merchandise news can not be operated, it is complete thus in the case where merchandising database can not being updated At the operation to merchandise news, solves the problems, such as the disaster tolerance of merchandise news.
When the merchandise news in message queue is excessive, in fact it could happen that the phenomenon that merchandise news is lost.It omits in order to prevent Merchandise news proposes another implementation.Specifically, Fig. 3 shows the data disaster tolerance of second embodiment according to the present invention Method 300.Other than component shown in FIG. 1, it can also be wrapped for realizing the data disaster tolerance system of second embodiment of the invention Include reconciliation database and reconciliation scheduler.Number is described below with reference to data disaster tolerance system according to a second embodiment of the present invention According to disaster recovery method 300.For ease of description, it will omit and describe content identical with data disaster tolerance method 200 shown in Fig. 2.
Firstly, data disaster tolerance method 200 shown in Fig. 2 is similar to, in step 301, in response to the operation to merchandise news When failing and can not update merchandising database, the merchandise news is put into message queue by operations control center 102.It should be noted that Different from data disaster tolerance method 200, operation management center 102 also stores the merchandise news to reconciliation database at this time.? Step 302, message handling device 103 handles the merchandise news from message queue, and processing result is sent to merchandising database 101 (or both merchandising databases and reconciliation database).In step 303, whether reconciliation scheduler determines in reconciliation database and deposits In the merchandise news of omission, wherein the merchandise news omitted refers to the not stored merchandise news into merchandising database.For example, institute The means stated in determining reconciliation database with the presence or absence of the merchandise news omitted may include: by periodically will be in reconciliation database Merchandise news be compared with the merchandise news in merchandising database, to determine whether there is the information of omission.Alternatively, disappear Breath processor 103 is also configured as while processing result is sent to merchandising database 101 also by the processing result Reconciliation database is sent to identify the processing completed to the merchandise news and complete.When configured as such, reconciliation scheduler can It is completed with checking whether merchandise news has been identified as processing by the merchandise news in carousel reconciliation database, it is determined whether There are the merchandise newss of omission.
When determining the merchandise news for existing and omitting, in step 304, reconciliation scheduler sends the merchandise news of omission to Message handling device 103, message handling device 103 are handled in the merchandise news that step 305 pair is omitted, and will be located in step 306 Reason result is sent to merchandising database 101, and (or the configuration according to message handling device 103 can be sent to merchandising database and right Both account databases).
It is thereby achieved that a kind of data disaster tolerance method.The data disaster tolerance method can be on the basis for solving the problems, such as disaster tolerance On, it is ensured that the consistency of data, to guarantee not lose data.
In addition, occur the excessive situation of merchandise news in message queue in order to prevent, above-mentioned data disaster tolerance system can be with It including message queue Distribution Center, is configured to establish multiple message queues, and multiple merchandise newss is respectively put into the multiple In Message Queuing, so that ensure will not the missing data there is a phenomenon where excessive due to the merchandise news in message queue.Specifically Ground, for example, message queue Distribution Center can believe according to the commodity that each of multiple message queues message queue is included Merchandise news is put into different message queues by the quantity of breath.Alternatively, message queue Distribution Center according to commodity only Corresponding goods information is selectively put into corresponding commodity queue by one identifier.
Fig. 4 shows a kind of implementation of example embodiment according to the present invention.Although showing for ease of description in attached drawing Two merchandising databases are gone out, the two merchandising databases indicate identical merchandising database.In operator to item property When being operated, the case where being easy to appear operation failure, and it is relatively more frequent.When discovery operations control center (OMC) can not connect When to item property database, by merchandise news by being written in message queue, merchandise news contains unique identifier, commodity Attribute information, the operation etc. to information attribute value, such as in the present solution, there is 2 merchandise newss, one is identified as 110221, One is 119023.When that can not update merchandising database, operations control center sends this two information in message queue. On the other hand, the system has message handling device, the message from message queue is handled, when obtaining 110221 merchandise news When, which can be parsed, and post-process, after handling successfully, which can be arrived In merchandising database.This completes the process flows that merchandise news updates failure.When the merchandise news that message queue squeezes When excessive, having sporadic loss of learning, (herein, commodity 119023 are since the merchandise news in message queue is excessive, quilt It abandons).In order to avoid also merchandise news is written while message queue is written in merchandise news for such case appearance Into reconciliation database, it is noted that operations control center and merchandising database delay machine in order to prevent, can by merchandising database with it is right Account database separates.In addition, will also when message handling device stores the merchandise news related content into merchandising database Processing result is written in reconciliation database, and mark, which has been handled, completes this merchandise news.In order to guarantee the consistency of data, Reconciliation scheduler task is also executed, for the merchandise news recorded in carousel reconciliation database, is lost once discovery has by message queue The merchandise news of mistake will be found by reconciliation, and handle in time.Work as after treatment, processing result can be written to commodity number According to library, and record reconciliation processing information.In addition, in order to prevent message queue excessive extrusion the case where occur (herein, commodity 119023, since the merchandise news in message queue is excessive, are dropped), message queue Distribution Center is set, multiple disappear is established Queue channel is ceased, is written in batches based on identifier, message queue is reduced and squeezes the probability occurred.
Above scheme is only to show a specific implementation of present inventive concept, and the present invention is not limited to above-mentioned realization sides Case.It can be omitted or skip a part processing in above-mentioned implementation, without departing from the spirit and scope of the present invention.
The method of front can be realized in the form of the program command that can be held by a variety of computer installations and be recorded in calculating In machine readable medium recording program performing.In this case, computer readable recording medium may include individual program command, data text Part, data structure or combinations thereof.Meanwhile the program command recorded in the recording medium specially can design or be configured to this hair Bright or computer software fields technical staff's known applications.Computer readable recording medium includes such as hard disk, floppy disk Or the magnetic mediums such as tape, the optical medium such as compact disk read-only memory (CD-ROM) or digital versatile disc (DVD), such as The magnet-optical medium of floptical disk and, for example, store and execute the hardware devices such as ROM, RAM of program command, flash memory.In addition, journey Sequence order includes the high-level language that the machine language code that compiler is formed and computer can be performed by using interpretive program.Before The hardware device in face can be configured to operate as at least one software module to execute operation of the invention, and contrary operation It is also the same.
Although the operation of context of methods has shown and described with particular order, the operation of each method can change Sequentially, allow to be performed with reverse order specific operation or allow at least partly execute spy simultaneously with other operations Fixed operation.Additionally, this invention is not limited to above example embodiment, it can be in the premise for not departing from spirit and scope of the present disclosure Under, including one or more other components or operation, or omit one or more other components or operation.
The preferred embodiment of the present invention is had been combined above and shows the present invention, but those skilled in the art will manage Solution, without departing from the spirit and scope of the present invention, can carry out various modifications the present invention, replaces and change.Cause This, the present invention should not be limited by above-described embodiment, and should be limited by appended claims and its equivalent.

Claims (12)

1. a kind of data disaster tolerance system, comprising:
Merchandising database is configured to store commodity information;
Operations control center is configured in response to the operation failure to merchandise news and when can not update merchandising database, by institute It states merchandise news and is put into message queue;And
Message handling device is configured to handle the merchandise news from message queue to complete the operation to merchandise news, and will place It manages result and merchandising database is sent to by the network between message handling device and merchandising database, the message handling device and commodity Network between database is different from the network between operations control center and merchandising database.
2. data disaster tolerance system according to claim 1, further includes:
Reconciliation database, wherein operations control center is while being put into message queue for the merchandise news, by the commodity Information is stored to reconciliation database,
Reconciliation scheduler is configured to determine the commodity that whether there is the not stored omission into merchandising database in reconciliation database Information.
3. data disaster tolerance system according to claim 1, wherein the merchandise news includes the unique identifier of commodity, quotient The operation of the attribute information of product and the attribute information to commodity.
4. data disaster tolerance system according to claim 1, further includes:
Message queue Distribution Center is configured to establish multiple message queues, and multiple merchandise newss is respectively put into the multiple In Message Queuing.
5. data disaster tolerance system according to claim 2, wherein the reconciliation scheduler is additionally configured to there is something lost when determining When the merchandise news of leakage, message handling device is sent by the merchandise news of omission,
Message handling device handles the merchandise news of omission, and processing result is sent to merchandising database.
6. data disaster tolerance system according to claim 2, wherein the reconciliation scheduler is configured that
By the way that periodically the merchandise news in reconciliation database is compared with the merchandise news in merchandising database, it is to determine It is no to there is the merchandise news omitted.
7. data disaster tolerance system according to claim 2, wherein message handling device is additionally configured to send by processing result While to merchandising database, the processing for also sending reconciliation database for the processing result to identify the merchandise news is complete At,
Whether the reconciliation scheduler is additionally configured to: merchandise news is checked by the merchandise news in carousel reconciliation database It is identified as processing to complete, it is determined whether there are the merchandise newss of omission.
8. a kind of data disaster tolerance method, which comprises
When can not update merchandising database in response to the operation failure to merchandise news, the merchandise news is put into message team Column;And
Processing result is passed through another network to complete the operation to merchandise news by merchandise news of the processing from message queue It is sent to merchandising database, when another network is different from the operation failure to merchandise news and can not update merchandising database The network used.
9. according to the method described in claim 8, further include:
While the merchandise news is put into message queue, by merchandise news storage to reconciliation database;
It determines in reconciliation database with the presence or absence of the merchandise news omitted.
10. according to the method described in claim 8, wherein described be put into message queue for merchandise news further include:
When there are multiple message queues, multiple merchandise newss are put into each Message Queuing respectively.
11. a kind of data disaster tolerance device, comprising:
One or more processors;
Storage device, for storing executable instruction, the executable instruction is realized when being executed by the processor according to power Benefit require any one of 8~10 described in method.
12. a kind of computer readable storage medium, is stored thereon with executable instruction, which realizes root when being executed by processor According to method described in any one of claim 8~10.
CN201511009851.3A 2015-12-29 2015-12-29 Data disaster tolerance system and method Active CN105630635B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201511009851.3A CN105630635B (en) 2015-12-29 2015-12-29 Data disaster tolerance system and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201511009851.3A CN105630635B (en) 2015-12-29 2015-12-29 Data disaster tolerance system and method

Publications (2)

Publication Number Publication Date
CN105630635A CN105630635A (en) 2016-06-01
CN105630635B true CN105630635B (en) 2019-07-30

Family

ID=56045610

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201511009851.3A Active CN105630635B (en) 2015-12-29 2015-12-29 Data disaster tolerance system and method

Country Status (1)

Country Link
CN (1) CN105630635B (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111953506A (en) * 2019-05-15 2020-11-17 北京沃东天骏信息技术有限公司 Message processing method and system

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1725186A (en) * 2004-07-23 2006-01-25 中兴通讯股份有限公司 Multiple data base data syne method
CN101102281A (en) * 2007-08-16 2008-01-09 中兴通讯股份有限公司 Data processing method for reporting a large number of data in mobile communication system
CN102971711A (en) * 2010-07-02 2013-03-13 国际商业机器公司 An apparatus for processing a batched unit of work
CN103049317A (en) * 2013-01-10 2013-04-17 中国南方电网有限责任公司超高压输电公司 Highly-concurrent data fast write system and method based on queues in cloud environment
CN103209115A (en) * 2013-04-07 2013-07-17 北京京东世纪贸易有限公司 Message sending system
CN103425658A (en) * 2012-05-15 2013-12-04 阿里巴巴集团控股有限公司 Commodity information storing and searching method, mobile terminal and server
CN103856392A (en) * 2013-06-26 2014-06-11 携程计算机技术(上海)有限公司 Message push method, outgoing server using message push method and outgoing server system
CN103886079A (en) * 2014-03-26 2014-06-25 北京京东尚科信息技术有限公司 Data processing method and system
CN104156863A (en) * 2014-08-08 2014-11-19 携程计算机技术(上海)有限公司 OTA website order processing system and method
CN104243438A (en) * 2013-06-24 2014-12-24 阿里巴巴集团控股有限公司 Database transaction processing method and server
CN104252481A (en) * 2013-06-27 2014-12-31 阿里巴巴集团控股有限公司 Dynamic check method and device for consistency of main and salve databases
CN104731912A (en) * 2015-03-24 2015-06-24 浪潮集团有限公司 Message transmission method and device for message middleware MQ
CN104951852A (en) * 2014-03-24 2015-09-30 阿里巴巴集团控股有限公司 Method and system for processing periodic order information

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1725186A (en) * 2004-07-23 2006-01-25 中兴通讯股份有限公司 Multiple data base data syne method
CN101102281A (en) * 2007-08-16 2008-01-09 中兴通讯股份有限公司 Data processing method for reporting a large number of data in mobile communication system
CN102971711A (en) * 2010-07-02 2013-03-13 国际商业机器公司 An apparatus for processing a batched unit of work
CN103425658A (en) * 2012-05-15 2013-12-04 阿里巴巴集团控股有限公司 Commodity information storing and searching method, mobile terminal and server
CN103049317A (en) * 2013-01-10 2013-04-17 中国南方电网有限责任公司超高压输电公司 Highly-concurrent data fast write system and method based on queues in cloud environment
CN103209115A (en) * 2013-04-07 2013-07-17 北京京东世纪贸易有限公司 Message sending system
CN104243438A (en) * 2013-06-24 2014-12-24 阿里巴巴集团控股有限公司 Database transaction processing method and server
CN103856392A (en) * 2013-06-26 2014-06-11 携程计算机技术(上海)有限公司 Message push method, outgoing server using message push method and outgoing server system
CN104252481A (en) * 2013-06-27 2014-12-31 阿里巴巴集团控股有限公司 Dynamic check method and device for consistency of main and salve databases
CN104951852A (en) * 2014-03-24 2015-09-30 阿里巴巴集团控股有限公司 Method and system for processing periodic order information
CN103886079A (en) * 2014-03-26 2014-06-25 北京京东尚科信息技术有限公司 Data processing method and system
CN104156863A (en) * 2014-08-08 2014-11-19 携程计算机技术(上海)有限公司 OTA website order processing system and method
CN104731912A (en) * 2015-03-24 2015-06-24 浪潮集团有限公司 Message transmission method and device for message middleware MQ

Also Published As

Publication number Publication date
CN105630635A (en) 2016-06-01

Similar Documents

Publication Publication Date Title
CN108536761B (en) Report data query method and server
CN105335448B (en) Data storage based on distributed environment and processing system
CN104281468B (en) The method and system of distributed virtual machine image management
US11501232B2 (en) System and method for intelligent sales engagement
US10282691B2 (en) Database partition
CN107870730A (en) For managing the method and system of storage system
EP3427217A1 (en) System and method for intelligent sales engagement
US9652181B2 (en) Library apparatus including a cartridge memory (CM) database stored on a storage cloud
KR102024005B1 (en) Method for processing transactions using blockchain, and transaction management server using the same
US20180247234A1 (en) Platform for management and tracking of collaborative projects
CN107526645A (en) A kind of communication optimization method and system
CN111083179B (en) Internet of things cloud platform, and equipment interaction method and device based on same
WO2015014150A1 (en) Method,apparatus,and application platform for updating application object attribute
US20170124490A1 (en) Inclusion of time series geospatial markers in analyses employing an advanced cyber-decision platform
US10423625B2 (en) Exactly-once semantics for streaming analytics in non-idempotent output operations
GB2500455A (en) Triggering data windows based on number of exceptions
CN114780285A (en) Block chain data recovery method and device and electronic equipment
CN105630635B (en) Data disaster tolerance system and method
US20220019451A1 (en) System and methods for creation and use of meta-models in simulated environments
US9208818B1 (en) Replication of tape cartridge data
CN106156076B (en) The method and system of data processing
US10031904B2 (en) Database management system based on a spreadsheet concept deployed in an object grid
US11714991B2 (en) System and methods for creation of learning agents in simulated environments
CN110457318A (en) The update method of data field, device, medium, electronic equipment in block chain
CN109039782A (en) A kind of cluster log recording method and relevant apparatus

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant