IP Library Granted Patent US 10,397,218
Granted Patent B2
US 10,397,218 · App. 15/728,421 · Granted Aug 27, 2019

Highly available web-based database interface system

Inventor: Steve Bogrett (San Jose, CA)
Assignee: XACTLY CORPORATION
H04L63/083G06F16/9038G06F16/95G06F16/958H04L63/08H04L67/02H04L67/1002H04L67/32H04L67/42
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 10,397,218
App. No.
15/728,421
Filed
Oct 9, 2017
Granted
Aug 27, 2019
Kind
B2
Art Unit
2168
USPC
726/9
Abstract

Techniques are provided for a highly available web-based database interface system (WDIS) processing database requests that target one or more databases managed by a coupled DBMS. In an embodiment, a web server of multiple web servers receives a first client web-based request that includes one or more first database instructions of a database request. The multiple web servers are configured to balance client web-based requests among one or more of the multiple web servers. The one or more of the multiple web servers are coupled to a database management system that includes one or more database servers executing database instructions on one or more databases. Based on balancing client web-based requests among the one or more of the multiple web servers, routing the first client web-based request that includes the one or more first database instructions of the database request to the first web server of the one or more multiple web servers coupled to the database management system. A request coordinator store coupled to the one or more of the multiple web server is queried. to determine a state of the database request. Based at least in part on the state of the database request, the first web server requests the database management system to execute the one or more first database instructions and update the state.

Claims (50)

1. A computer-implemented method comprising:

receiving, from a client computer system at a first web server of a plurality of web servers, a client web-based request comprising one or more database instructions of a database request, the plurality of web servers coupled to a database management system comprising of one or more database servers executing database instructions on one or more databases;

a second web server, of the plurality of web servers, querying a request coordinator store, coupled to the plurality of web servers, to determine a state of the database request;

wherein the state of the database request comprises an execution state of at least one database instruction of the database request of the client computer system;

the second web server, based at least in part on the state of the database request, requesting the database management system to execute the one or more database instructions.

2. The method of claim 1 , wherein the first web server is different from the second web server.

3. The method of claim 2 , further comprising selecting the second web server from the plurality of web servers based on load balancing the plurality of web servers.

4. The method of claim 1 , further comprising the first web server load balancing client web-based requests among the plurality of web servers.

5. The method of claim 1 , wherein the request coordinator store stores one or more result sets for one or more database requests executed by the database management system.

6. The method of claim 1 further comprising:

a third web server retrieving at least a portion of a result set of the database request from the database management system;

the third web server storing at least the portion of the result set of the database request in the request coordinator store in association with an identifier of the database request.

7. The method of claim 1 ,

wherein the one or more database instructions of the database request include an instruction to execute a particular query on a particular database; and

the method further comprising:

sending a request to the database management system to execute the one or more database instructions, the request causing an execution of the particular query by a database server of the database management system;

receiving from the database server a status data describing a result of the execution of the particular query; and

updating the state of the database request in the request coordinator store with the status data of the execution of the particular query.

8. The method of claim 1 , further comprising:

receiving, at a third web server of the plurality of web servers, a particular client web-based request comprising one or more particular database instructions of the database request;

wherein the one or more particular database instructions of the database request include an instruction to fetch at least a portion of a result set generated by the database request;

querying the request coordinator store for a result set of the database request;

sending, to the client computer system, at least the portion of the result set.

9. The method of claim 1 , further comprising parsing the client web-based request to extract the one or more database instructions of the database request for the database management system to execute.

10. A server computer system comprising:

one or more processors;

one or more storage media storing one or more computer programs for execution by the one or more processors, the one or more computer programs comprising program instructions for:

receiving, from a client computer system at a first web server of a plurality of web servers, a client web-based request comprising one or more database instructions of a database request, the plurality of web servers coupled to a database management system comprising of one or more database servers executing database instructions on one or more databases;

a second web server, of the plurality of web servers, querying a request coordinator store, coupled to the plurality of web servers, to determine a state of the database request;

wherein the state of the database request comprises an execution state of at least one database instruction of the database request of the client computer system;

the second web server, based at least in part on the state of the database request, requesting the database management system to execute the one or more database instructions.

11. The system of claim 10 , wherein the one or more computer programs further comprise program instructions for selecting the second web server from the plurality of web servers based on load balancing the plurality of web servers.

12. The system of claim 10 , wherein the one or more computer programs further comprise program instructions for:

receiving, at a third web server of the plurality of web servers, a particular client web-based request comprising one or more particular database instructions of the database request;

wherein the one or more particular database instructions of the database request include an instruction to fetch at least a portion of a result set generated by the database request;

querying the request coordinator store for a result set of the database request;

sending, to the client computer system, at least the portion of the result set.

13. The system of claim 10 , wherein the first web server is different from the second web server.

14. The system of claim 10 , wherein the one or more computer programs further comprise program instructions for the first web server load balancing client web-based requests among the plurality of web servers.

15. The system of claim 10 , wherein the request coordinator store stores one or more result sets for one or more database requests executed by the database management system.

16. The system of claim 10 , wherein the one or more computer programs further comprise program instructions for:

a third web server retrieving at least a portion of a result set of the database request from the database management system;

the third web server storing at least the portion of the result set of the database request in the request coordinator store in association with an identifier of the database request.

17. The system of claim 10 ,

wherein the one or more database instructions of the database request include an instruction to execute a particular query on a particular database; and

wherein the one or more computer programs further comprise program instructions for:

sending a request to the database management system to execute the one or more database instructions, the request causing an execution of the particular query by a database server of the database management system;

receiving from the database server a status data describing a result of the execution of the particular query; and

updating the state of the database request in the request coordinator store with the status data of the execution of the particular query.

18. The system of claim 10 , wherein the one or more computer programs further comprise program instructions for parsing the client web-based request to extract the one or more database instructions of the database request for the database management system to execute.

Assignments (2)
SECURITY INTEREST Recorded Aug 21, 2024
From: XACTLY CORPORATION
To: GOLDMAN SACHS BDC, INC., AS COLLATERAL AGENT
Reel/Frame 068349/0781 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 4, 2021
From: BOGRETT, STEVE
To: XACTLY CORPORATION
Reel/Frame 054804/0655 →
Continuity (2)
Continuation 15419051 · Jan 30, 2017
Related Publication 20180219852A1 · Aug 2, 2018
Cited By (1)
US 12,192,276