IP Library Granted Patent US 9,870,415
Granted Patent B2
US 9,870,415 · App. 14/057,712 · Granted Jan 16, 2018

System and method for fast query response

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,870,415
App. No.
14/057,712
Granted
Jan 16, 2018
Kind
B2
Abstract

The disclosure generally describes computer-implemented methods, software, and systems for handling data access request, including: receiving a request submitted by a user to access data entries stored at a primary data server; determining whether the received request is supported by a fast query service engine, the fast query service engine being different from the primary data server; in response to determining that the received request is supported by the fast query service engine, directing the request to the fast query service engine; receiving query results from the fast query service engine, the query results composed from more than one answer sets maintained in in-memory data store at the fast query service engine, the answer sets the in-memory data-store being synchronized with the primary data server; and providing the query results to the user submitting the request.

Claims (58)

1. A method for handling data access request, comprising:

receiving a semantic request submitted by a user to access data entries stored at a primary data server running a relational database management system (DBMS);

decomposing the received request into logic query segments, each logic query segment having a corresponding answer set retrievable from the primary data server based on a DBMS query formulated based on the logic query segment;

determining whether a corresponding answer set of a particular decomposed logic query segment is stored and ready in an in-memory data storage at the fast query service engine such that a DBMS query submission at the primary data server is obviated, the fast query service engine being different and separate from the primary data server;

in response to determining that a corresponding answer set of a particular decomposed logic query segment is not stored in the in-memory data storage at the fast query service engine, formulating a DBMS query based on the particular decomposed logic query segment and fetching answer set of the particular logic query segment from the primary data server;

in response to determining that a corresponding answer set of a particular decomposed logic query segment is stored but invalid in the in-memory data storage at the fast query service engine, formulating a DBMS query based on the particular decomposed logic query segment and updating contents of the answer set by synchronizing copies of data on the primary data server and in the in-memory data storage;

in response to determining that the corresponding answer set of a particular decomposed logic query segment is stored and ready in the in-memory data storage at the fast query service engine, directing the logic query segment to the fast query service engine and retrieving an answer set of the particular decomposed logic query segment from the in-memory data storage at the fast query service engine;

composing query results from the answer set received from the primary data server and the answer set retrieved from the in-memory data storage at the fast query service engine; and

providing the composed query results to the user submitting the semantic request.

2. The method of claim 1 , wherein decomposing the received request comprises: decomposing the received request into logic query segments nested by at least one conjunctive.

3. The method of claim 1 , wherein decomposing the received request comprises: decomposing the receive request into logic query segments nested by at least one disjunctive.

4. The method of claim 1 , wherein decomposing the received request comprises: decomposing the receive request into logic query segments nested by at least one negation.

5. The method of claim 1 , further comprising:

determining whether the request modifies data on the primary data server.

6. The method of claim 5 , further comprising:

in response to determining that the request modifies data on the primary data server, notifying the fast query service engine that contents of an answer set referencing the modified data, as maintained in the in-memory data storage at the fast query service engine, has become invalid.

7. The method of claim 1 , further comprising:

receiving a subsequent request submitted by a user;

determining that the subsequent request modifies data referenced by an answer set that is cached in the in-memory data storage at the fast query service engine; and

issuing an invalidation notice to the fast query service engine such that the answer set cached in the in-memory data storage becomes invalidated.

8. A computer system, comprising at least one processor, wherein the at least one processor is configured to perform the operations of:

receiving a semantic request submitted by a user to access data entries stored at a primary data server running a relational database management system (DBMS);

decomposing the received request into logic query segments, each logic query segment having a corresponding answer set retrievable from the primary data server based on a DBMS query formulated based on the logic query segment;

determining whether a corresponding answer set of a particular decomposed logic query segment is stored and ready in an in-memory data storage at the fast query service engine such that a DBMS query submission at the primary data server is obviated, the fast query service engine being different and separate from the primary data server;

in response to determining that a corresponding answer set of a particular decomposed logic query segment is not stored in the in-memory data storage at the fast query service engine, formulating a DBMS query based on the particular decomposed logic query segment and fetching answer set of the particular logic query segment from the primary data server;

in response to determining that a corresponding answer set of a particular decomposed logic query segment is stored but invalid in the in-memory data storage at the fast query service engine, formulating a DBMS query based on the particular decomposed logic query segment and updating contents of the answer set by synchronizing copies of data on the primary data server and in the in-memory data storage;

in response to determining that the corresponding answer set of a particular decomposed logic query segment is stored and ready in the in-memory data storage at the fast query service engine, directing the logic query segment to the fast query service engine and retrieving an answer set of the particular decomposed logic query segment from the in-memory data storage at the fast query service engine;

composing query results from the answer set received from the primary data server and the answer set retrieved from the in-memory data storage at the fast query service engine; and

providing the composed query results to the user submitting the semantic request.

9. The computer system of claim 8 , wherein decomposing the received request comprises: decomposing the received request into logic query segments nested by at least one conjunctive.

10. The computer system of claim 8 , wherein decomposing the received request comprises: decomposing the receive request into logic query segments nested by at least one disjunctive.

11. The computer system of claim 8 , wherein decomposing the received request comprises: decomposing the receive request into logic query segments nested by at least one negation.

12. The computer system of claim 8 , wherein the operations further comprise:

determining whether the request modifies data on the primary data server.

13. The computer system of claim 12 , wherein the operations further comprise:

in response to determining that the request modifies data on the primary data server, notifying the fast query service engine that contents of an answer set referencing the modified data, as maintained in the in-memory data storage at the fast query service engine, has become invalid.

14. The computer system of claim 8 , wherein the operations further comprise:

receiving a subsequent request submitted by a user;

determining that the subsequent request modifies data referenced by an answer set that is cached in the in-memory data storage at the fast query service engine; and

issuing an invalidation notice to the fast query service engine such that the answer set cached in the in-memory data storage becomes invalidated.

15. A non-transitory computer-readable medium, comprising software instructions that when executed by a computer, causes the computer to perform the operations of:

receiving a semantic request submitted by a user to access data entries stored at a primary data server running a relational database management system (DBMS);

decomposing the received request into logic query segments, each logic query segment having a corresponding answer set retrievable from the primary data server based on a DBMS query formulated based on the logic query segment;

determining whether a corresponding answer set of a particular decomposed logic query segment is stored and ready in an in-memory data storage at the fast query service engine such that a DBMS query submission at the primary data server is obviated, the fast query service engine being different and separate from the primary data server;

in response to determining that a corresponding answer set of a particular decomposed logic query segment is not stored in the in-memory data storage at the fast query service engine, formulating a DBMS query based on the particular decomposed logic query segment and fetching answer set of the particular logic query segment from the primary data server;

in response to determining that a corresponding answer set of a particular decomposed logic query segment is stored but invalid in the in-memory data storage at the fast query service engine, formulating a DBMS query based on the particular decomposed logic query segment and updating contents of the answer set by synchronizing copies of data on the primary data server and in the in-memory data storage;

in response to determining that the corresponding answer set of a particular decomposed logic query segment is stored and ready in the in-memory data storage at the fast query service engine, directing the logic query segment to the fast query service engine and retrieving an answer set of the particular decomposed logic query segment from the in-memory data storage at the fast query service engine;

composing query results from the answer set received from the primary data server and the answer set retrieved from the in-memory data storage at the fast query service engine; and

providing the composed query results to the user submitting the semantic request.

16. The computer-readable medium of claim 15 , wherein the operations further comprise:

in response to determining that the request is not supported by the fast query service engine, directing the request to the primary data server; and

determining whether the request modifies data on the primary data server.

17. The computer-readable medium of claim 16 , wherein the operations further comprise:

in response to determining that the request modifies data on the primary data server, notifying the fast query service engine that contents of an answer set referencing the modified data, as maintained in the in-memory data storage at the fast query service engine, has become invalid.

18. The computer-readable medium of claim 15 , wherein the operations further comprise:

receiving a subsequent request submitted by a user;

determining that the subsequent request modifies data referenced by an answer set that is cached in the in-memory data storage at the fast query service engine;

issuing an invalidation notice to the fast query service engine such that the answer set cached in the in-memory data storage becomes invalidated.

Assignments (11)
SECURITY INTEREST Recorded Mar 12, 2026
From: IMS SOFTWARE SERVICES LTD.; IQVIA INC.; IQVIA RDS INC.; RULES-BASED MEDICINE, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 075047/0061 →
CORRECTIVE ASSIGNMENT TO CORRECT THE CONVEYING PARTIES INADVERTENTLY NOT INCLUDED IN FILING PREVIOUSLY RECORDED AT REEL: 065709 FRAME: 618. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT. Recorded Dec 6, 2023
From: IQVIA INC.; IQVIA RDS INC.; IMS SOFTWARE SERVICES LTD.; Q SQUARED SOLUTIONS HOLDINGS LLC
To: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION
Reel/Frame 065790/0781 →
SECURITY INTEREST Recorded Nov 29, 2023
From: IQVIA INC.; IQVIA RDS INC.; IMS SOFTWARE SERVICES LTD.; Q SQUARED SOLUTIONS HOLDINGS LLC
To: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION
Reel/Frame 065710/0253 →
SECURITY INTEREST Recorded Nov 29, 2023
From: IQVIA INC.
To: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION
Reel/Frame 065709/0618 →
SECURITY INTEREST Recorded May 24, 2023
From: IQVIA INC.; IQVIA RDS INC.; IMS SOFTWARE SERVICES LTD.; Q SQUARED SOLUTIONS HOLDINGS LLC
To: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION
Reel/Frame 063745/0279 →
CHANGE OF NAME Recorded Oct 9, 2018
From: QUINTILES IMS INCORPORATED
To: IQVIA INC.
Reel/Frame 047207/0276 →
MERGER AND CHANGE OF NAME Recorded Jan 22, 2018
From: IMS HEALTH INCORPORATED; QUINTILES TRANSNATIONAL CORP.
To: QUINTILES IMS INCORPORATED
Reel/Frame 045102/0549 →
MERGER AND CHANGE OF NAME Recorded Feb 23, 2017
From: IMS HEALTH INCORPORATED; QUINTILES TRANSNATIONAL CORP.
To: QUINTILES IMS INCORPORATED
Reel/Frame 041791/0233 →
MERGER AND CHANGE OF NAME Recorded Jan 5, 2017
From: IMS HEALTH INCORPORATED; QUINTILES TRANSNATIONAL CORP.
To: QUINTILES IMS INCORPORATED
Reel/Frame 041260/0474 →
SECURITY INTEREST Recorded Mar 18, 2014
From: IMS HEALTH INCORPORATED, AS PLEDGOR; APPATURE, INC., AS PLEDGOR
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 032461/0773 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 22, 2013
From: MEYLES, STEPHEN; SLAGER, DEREK
To: IMS HEALTH INCORPORATED
Reel/Frame 031449/0394 →