IP Library › Granted Patent US 10,291,716
Granted Patent B2
US 10,291,716 · App. 14/604,435 · Granted May 14, 2019

Methods and systems to reduce connections to a database

Inventors: Christopher J. Kasten (Rancho Cordova, CA); Igor Chernyshev (Campbell, CA); Greg Seitz (Lake Oswego, OR)
Assignee: eBay Inc.
H04L67/14H04L67/1008H04L67/1021H04L67/28H04L67/2819H04L69/14H04L67/1002
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,291,716
App. No.
14/604,435
Granted
May 14, 2019
Kind
B2
Abstract

In various embodiments, systems and methods of managing server connections are disclosed. In one embodiment, a system automatically maintains a plurality of client connections associated with a plurality of clients, where the plurality of client connections includes both active and idle connections. A first server receives a request from a client of the plurality of clients to access a second server of a plurality of second servers communicatively coupled to the first server, where the plurality of second servers have varying communication protocols. The first server then identifies a first communication protocol associated with the second server and activates a link between the first server and the second server using the first communication protocol. Other systems and methods are disclosed.

Claims (47)

1. A computer implemented method of managing server connections, the computer implemented method comprising:

at a first hardware-based server,

establishing a plurality of client connections between the first hardware-based server and a plurality of clients;

establishing a database connection between the first hardware-based server and a second hardware-based server of a plurality of second servers communicatively coupled to the first hardware-based server;

receiving a request to access the second hardware-based server from a first client of the plurality of clients;

caching the received request as a prepared statement based on the received request being a first instance received at the first hardware-based server;

providing the first client with a statement identifier to identify the cached prepared statement that is stored on the first hardware-based server, the statement identifier being a unique identifier used for a lookup of the cached prepared statement on the first hardware-based server;

receiving data from the second hardware-based server over the database connection;

communicating the data to the first client;

deactivating a link between the first hardware-based server and the second hardware-based server responsive to the communicating the data to the first client.

2. The computer implemented method of claim 1 , further comprising returning the link to a connection pool.

3. The computer implemented method of claim 1 , further comprising caching the plurality of client connections at the first hardware-based server.

4. The computer implemented method of claim 1 , wherein the cached prepared statement being used to associate future requests with associated metadata and a matching prepared statement on a new connection to the second hardware-based server or to a specific transactional connection to the second hardware-based server.

5. The computer implemented method of claim 1 , further comprising allocating resources for at least one resource from a list including the first client and one or more of the plurality of second servers.

6. The computer implemented method of claim 5 , wherein the allocating of the resources includes using a weighting algorithm to allocate one or more threads from a global pool to one or more isolation areas or queues.

7. The computer implemented method of claim 1 , further comprising selecting the database connection from a plurality of connections maintained at the first hardware-based server.

8. The computer implemented method of claim 7 , wherein the plurality of connections includes a specific transactional connection.

9. A system to manage server connections, the system comprising:

at least one processor and executable instructions accessible on a computer-readable medium that, when executed, cause the at least one processor to perform operations comprising:

at a first hardware-based server,

establishing a plurality of client connections between the first hardware-based server and a plurality of clients;

establishing a database connection between the first hardware-based and a second hardware-based server of a plurality of second servers communicatively coupled to the first hardware-based server;

receiving a request to access the second hardware-based server from a first client of the plurality of clients;

caching the received request as a prepared statement based on the received request being a first instance received at the first hardware-based server;

providing the first client with a statement identifier to identify the cached prepared statement that is stored on the first hardware-based server, the statement identifier being a unique identifier used for a lookup of the cached prepared statement on the first hardware-based server;

receiving data from the hardware-based server over the database connection;

communicating the data to the first client; and

deactivating a link between the first hardware-based server and the second hardware-based server responsive to the communicating the data to the first client.

10. The system of claim 9 , wherein the operations further comprise returning the link to a connection pool.

11. The system of claim 9 , wherein the operations further comprise caching the plurality of client connections at the first hardware-based server.

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

writing data received at the first hardware-based server from the second hardware-based server directly to a connection stream output buffer back to the first client; and

reusing the connection stream output buffer until all of the data are communicated back to the first client.

13. The system of claim 9 , wherein the operations further comprise creating the plurality of client connections between the plurality of clients and the first hardware-based server using a TCP socket for each of the plurality of client connections.

14. A computer-readable medium having no transitory signals and storing instructions that, when executed by at least one hardware-based processor of a first hardware-based server, cause the first hardware-based server to perform operations comprising:

establishing a plurality of client connections between the first hardware-based server and a plurality of clients;

establishing a database connection between the first hardware-based server and a second hardware-based server of a plurality of second servers communicatively coupled to the first hardware-based server;

receiving a request to access the second hardware-based server from a first client of the plurality of clients;

caching the received request as a prepared statement based on the received request being a first instance received at the first hardware-based server;

providing the first client with a statement identifier to identify the cached prepared statement that is stored on the first hardware-based server, the statement identifier being a unique identifier used for a lookup of the cached prepared statement on the first hardware-based server;

receiving data from the second hardware-based server over the database connection;

communicating the data to the first client;

deactivating a link between the first hardware-based server and the second hardware-based server responsive to the communicating the data to the first client.

15. The computer-readable medium of claim 14 , wherein the operations further comprise returning the link to a connection pool.

16. The computer-readable medium of claim 14 , wherein the operations further comprise caching the plurality of client connections at the first hardware-based server.

17. The computer-readable medium of claim 14 , wherein the cached prepared statement being used to associate future requests with associated metadata and a matching prepared statement on a new connection to the second hardware-based server or to a specific transactional connection to the second hardware-based server.

18. The computer-readable medium of claim 14 , wherein the operations further comprise allocating resources for at least one resource from a list including the first client and one or more of the plurality of second servers, wherein the allocating of the resources includes using a weighting algorithm to allocate one or more threads from a global pool to one or more isolation areas or queues.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 23, 2015
From: KASTEN, CHRISTOPHER J; CHERNYSHEV, IGOR; SEITZ, GREG
To: EBAY INC.
Reel/Frame 034803/0311 →
Continuity (3)
Continuation 11605066 · Nov 28, 2006
Provisional Application 60740331 · Nov 29, 2005
Related Publication 20150134839A1 · May 14, 2015
Cited By (1)
US 12,309,232