IP Library Granted Patent US 8,756,217
Granted Patent B2
US 8,756,217 · App. 13/181,416 · Granted Jun 17, 2014

Speculative switch database

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 8,756,217
App. No.
13/181,416
Granted
Jun 17, 2014
Kind
B2
Abstract

Processing switch database operations may include receiving a database selection message from a database client, transmitting an unconditional acknowledgement to the database client in response to the database selection message, accessing a database query from a queue of queries from the a database client where the database query includes a user identifier and a database identifier, determining whether a matching backend database connection exists, and if a matching backend database connection exists, forwarding the database query to the matching backend database connection. In some embodiments, a matching backend database connection may be a backend database connection having a user identifier equivalent to the user identifier of the database query, and a database identifier that is equivalent to the database identifier the database query.

Claims (44)

1. A non-transitory computer readable medium comprising instructions, the instructions operable when executed by a processor to:

receive a database selection message from a database client;

transmit an unconditional acknowledgement to the database client in response to the database selection message;

access a database query from a queue of queries from the database client, the database query comprising a user identifier and a database identifier;

determine whether a matching backend database connection exists, the matching backend database connection having a user identifier equivalent to the user identifier of the database query and a database identifier that is equivalent to the database identifier of the database query;

if a matching backend database connection exists, forward the database query to the matching backend database connection; and

determine, in response to determining that the matching backend database does not exist, whether a similar backend database connection exists, the similar backend database connection having a user identifier equivalent to the user identifier of the database query and a database identifier not equivalent to the database identifier of the database query, or having the user identifier not equivalent to the user identifier of the database query and the database identifier that is equivalent to the database identifier of the database query;

if the similar backend database connection exists and the user identifier of the similar backend database connection is equivalent to the user identifier of the database query, transmit a request to a database server to switch the database identifier of the similar backend connection to the database identifier of the database query; and

if the similar backend database connection exists and the database identifier of the similar backend database connection is equivalent to the database identifier of the database query, transmit a request to switch the user identifier of the similar backend database connection to the user identifier of the database query.

2. The non-transitory computer readable medium of claim 1 , wherein the instructions are further operable when executed by the processor to, if the similar backend database connection does not exist, transmit a request to the database server to establish a new connection using the user identifier and database identifier of the database query.

3. The non-transitory computer readable medium of claim 1 , wherein the request to the database server to switch the database identifier or switch the user identifier of the similar backend connection is transmitted when a user connection limit is not exceeded.

4. The non-transitory computer readable medium of claim 3 , wherein the instructions are further operable when executed by a processor to identify the user identifier and the database identifier of the database query if the user connection limit is not exceeded.

5. The non-transitory computer readable medium of claim 4 , wherein the instructions are further operable when executed by a processor to store the database query on the queue if the user identifier and the database identifier have been previously identified.

6. The non-transitory computer readable medium of claim 1 , wherein if a user connection limit is exceeded, the database query is not processed.

7. An apparatus, comprising:

an interface for communicating database messages;

a memory for storing database messages;

a processor communicatively coupled the interface and the memory, the processor operable to:

receive a database selection message from a database client;

transmit an unconditional acknowledgement to the database client in response to the database selection message;

access a database query from a queue of queries from the database client, the database query comprising a user identifier and a database identifier;

determine whether a matching backend database connection exists, the matching backend database connection having a user identifier equivalent to the user identifier of the database query and a database identifier that is equivalent to the database identifier of the database query;

if a matching backend database connection exists, forward the database query to the matching backend database connection; and

determine, in response to determining that the matching backend database does not exist, whether a similar backend database connection exits, the similar backend database connection having a user identifier equivalent to the user identifier of the database query and a database identifier not equivalent to the database identifier of the database query, or having the user identifier not equivalent to the user identifier of the database query and the database identifier that is equivalent to the database identifier of the database query;

if the similar backend database connection exists and the user identifier of the similar backend database connection is equivalent to the user identifier of the database query, transmit a request to a database server to switch the database identifier of the similar backend connection to the database identifier of the database query; and

if the similar backend database connection exists and the database identifier of the similar backend database connection is equivalent to the database identifier of the database query, transmit a request to switch the user identifier of the similar backend database connection to the user identifier of the database query.

8. The apparatus of claim 7 , wherein the processor is further operable to, if the similar backend database connection does not exist, transmit a request to the database server to establish a new connection using the user identifier and database identifier of the database query.

9. The apparatus of claim 7 , wherein the request to the database server to switch the database identifier or switch the user identifier of the similar backend connection is transmitted when a user connection limit is not exceeded.

10. The apparatus of claim 9 , wherein the processor is further operable to identify the user identifier and the database identifier of the database query if the user connection limit is not exceeded.

11. The apparatus of claim 10 , wherein the processor is further operable to store the database query on the queue if the user identifier and the database identifier have been previously identified.

12. The apparatus of claim 7 , wherein if a user connection limit is exceeded, the database query is not processed.

13. A method, comprising:

receiving a database selection message from a database client;

transmitting an unconditional acknowledgement to the database client in response to the database selection message;

accessing a database query from a queue of queries from the database client, the database query comprising a user identifier and a database identifier;

determining whether a matching backend database connection exists, the matching backend database connection having a user identifier equivalent to the user identifier of the database query and a database identifier that is equivalent to the database identifier of the database query;

if a matching backend database connection exists, forwarding the database query to the matching backend database connection; and

determining, in response to determining that the matching backend database not exist, whether a similar backend database connection exists, the similar backend database connection having a user identifier equivalent to the user identifier of the database query and a database identifier not equivalent to the database identifier of the database query, or having the user identifier not equivalent to the user identifier of the database query and the database identifier that is equivalent to the database identifier of the database query;

if the similar backend database connection exists and the user identifier of the similar backend database connection is equivalent to the user identifier of the database query, transmitting a request to a database server to switch the database identifier of the similar backend connection to the database identifier of the database query; and

if the similar backend database connection exists and the database identifier of the similar backend database connection is equivalent to the database identifier of the database query, transmitting a request to switch the user identifier of the similar backend database connection to the user identifier of the database query.

14. The method of claim 13 , further comprising if the similar backend database connection does not exist, transmitting a request to the database server to establish a new connection using the user identifier and database identifier of the database query.

15. The method of claim 13 , wherein the request to the database server to switch the database identifier or switch the user identifier of the similar backend connection is transmitted when a user connection limit is not exceeded.

16. The method of claim 15 , further comprising identifying the user identifier and the database identifier of the database query if the user connection limit is not exceeded.

17. The method of claim 16 , further comprising storing the database query on the queue if the user identifier and the database identifier have been previously identified.

Assignments (2)
CHANGE OF NAME Recorded Dec 20, 2021
From: FACEBOOK, INC.
To: META PLATFORMS, INC.
Reel/Frame 058553/0802 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 15, 2011
From: PEEK, DANIEL NOTA
To: FACEBOOK, INC.
Reel/Frame 026911/0676 →