IP Library Granted Patent US 12,021,858
Granted Patent B2
US 12,021,858 · App. 17/566,813 · Granted Jun 25, 2024

Highly available web-based database interface system

Inventor: Steve Bogrett (San Jose, CA)
Assignee: Xactly Corporation
H04L63/083G06F16/9038G06F16/95G06F16/958H04L63/08H04L67/01H04L67/02H04L67/1001H04L67/60
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 12,021,858
App. No.
17/566,813
Granted
Jun 25, 2024
Kind
B2
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 (44)

1. A computer-implemented method comprising:

receiving, at a computer system, a request for a database management system to execute one or more database instructions;

obtaining a logical address for the database management system;

generating a web-based request directed to the logical address of the database management system and comprising the one or more database instructions;

establishing a network connection with a web-protocol port of a web server using the logical address for the database management system;

sending, over the network connection, the web-based request to the logical address of the database management system.

2. The method of claim 1 , the computer system comprising a first server among a plurality of servers; the generating further comprising transforming the request into the web-based request by replacing a source address of the request with an address of the first server, and replacing a destination address of the request with an address of a second server of the plurality of servers; the method further comprising:

in response to sending the transformed request to the second server, querying, by the second server, a request coordinator store to determine a state of the web-based request, wherein the state of the web-based request comprises an execution state of at least one database instruction of the database request.

3. The method of claim 2 , further comprising, in response to querying the request coordinator store to determine a state of the web-based request, requesting, by the second server and based at least in part on the state of the web-based request, the database management system to execute at least one database instruction of the web-based request.

4. The method of claim 3 , further comprising, in response to requesting the database management system to execute at least one database instruction of the web-based request, updating the state of the web-based request at the request coordinator store.

5. The method of claim 2 , further comprising, in response to sending the web-based request to the second server, the first server receiving a request response from the second server, the request response including result data obtained from execution of at least one database instruction of the web-based request.

6. The method of claim 5 , the request response including information on a failure to execute at least one database instruction of the web-based request, the information on the failure to execute at least one database instruction being based on the state of the web-based request, the state of the web-based request comprising an execution state of at least one database instruction of the web-based request.

7. The method of claim 5 , the request response including a unique identifier associated with the web-based request, and the method further comprising transforming, by the first server, the request response by replacing a source address of the request response with the address of the first server, replacing a destination address of the request with an address of a client computer system, and sending the request response sent to the client computer system with the unique identifier.

8. The method of claim 7 , further comprising:

receiving, at the client computer system, the web-based request;

in response to receiving, at the client computer system, the web-based request, the client computer system performing: obtaining a logical address for the database management system; establishing a network connection with a web-protocol port of the first server using the logical address for the database management system; and sending, over the network connection, the web-based request to the logical address of the database management system.

9. The method of claim 2 , further comprising:

retrieving, by a third server among the plurality of servers, at least a portion of a result set of the web-based request from the database management system;

storing at least the portion of the result set of the web-based request in the request coordinator store in association with a unique identifier of the database request, the request coordinator store further storing a state of the web-based request, and the state of the web-based request comprises an execution state of at least one database instruction of the web-based request.

10. The method of claim 2 , the first server being different from the second server.

11. 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 a request for a database management system to execute one or more database instructions;

obtaining a logical address for the database management system;

generating a web-based request directed to the logical address of the database management system and comprising the one or more database instructions;

establishing a network connection with a web-protocol port of a web server using the logical address for the database management system;

sending, over the network connection, the web-based request to the logical address of the database management system.

12. The server computer system of claim 11 , the server computer system comprising a first server among a plurality of servers; the storage media further comprising program instructions for:

executing the generating by transforming the request into the web-based request by replacing a source address of the request with an address of the first server, and replacing a destination address of the request with an address of a second server of the plurality of servers;

in response to sending the transformed request to the second server, querying, by the second server, a request coordinator store to determine a state of the web-based request, wherein the state of the web-based request comprises an execution state of at least one database instruction of the database request.

13. The server computer system of claim 12 , the storage media further comprising program instructions for executing, in response to querying the request coordinator store to determine a state of the web-based request, requesting, by the second server and based at least in part on the state of the web-based request, the database management system to execute at least one database instruction of the web-based request.

14. The server computer system of claim 13 , the storage media further comprising program instructions for executing, in response to requesting the database management system to execute at least one database instruction of the web-based request, updating the state of the web-based request at the request coordinator store.

15. The server computer system of claim 12 , the storage media further comprising program instructions for executing, in response to sending the web-based request to the second server, the first server receiving a request response from the second server, the request response including result data obtained from execution of at least one database instruction of the web-based request.

16. The server computer system of claim 15 , the request response including information on a failure to execute at least one database instruction of the web-based request, the information on the failure to execute at least one database instruction being based on the state of the web-based request, the state of the web-based request comprising an execution state of at least one database instruction of the web-based request.

17. The server computer system of claim 15 , the request response including a unique identifier associated with the web-based request, and the storage media further comprising program instructions for executing:

transforming, by the first server, the request response by replacing a source address of the request response with the address of the first server, replacing a destination address of the request with an address of a client computer system, and sending the request response sent to the client computer system with the unique identifier.

18. The server computer system of claim 17 , the storage media further comprising program instructions for executing:

receiving, at the client computer system, the web-based request;

in response to receiving, at the client computer system, the web-based request, the client computer system performing: obtaining a logical address for the database management system; establishing a network connection with a web-protocol port of the first server using the logical address for the database management system; and sending, over the network connection, the web-based request to the logical address of the database management system.

19. The server computer system of claim 12 , the storage media further comprising program instructions for executing:

retrieving, by a third server among the plurality of servers, at least a portion of a result set of the web-based request from the database management system;

storing at least the portion of the result set of the web-based request in the request coordinator store in association with a unique identifier of the database request, the request coordinator store further storing a state of the web-based request, and the state of the web-based request comprises an execution state of at least one database instruction of the web-based request.

20. The server computer system of claim 12 , the second server being a different server than the server computer system.

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 31, 2022
From: BOGRETT, STEVE
To: XACTLY CORPORATION
Reel/Frame 058831/0835 →
Continuity (4)
Continuation 16551538 · Aug 26, 2019
Continuation 15728421 · Oct 9, 2017
Continuation 15419051 · Jan 30, 2017
Related Publication 20220124083A1 · Apr 21, 2022