IP Library › Granted Patent US 10,248,691
Granted Patent B2
US 10,248,691 · App. 14/985,789 · Granted Apr 2, 2019

Read/write split database query routing

Inventors: Somenath Das (San Jose, CA); Kamlakar K. Singh (Foster City, CA); Saibabu Devabhaktuni (Fremont, CA); Yaping Shi (Cupertino, CA); Petrica Lulian Voicu (Union City, CA); Kenneth Kang (Campbell, CA)
Assignee: PAYPAL, INC.
G06F17/30442G06F17/30067G06F17/30312G06F17/30377G06F17/30457G06F17/30474G06F17/30477G06F17/30545G06F17/30864H04L67/10H04L67/2842G06F2216/13
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,248,691
App. No.
14/985,789
Filed
Dec 31, 2015
Granted
Apr 2, 2019
Kind
B2
Art Unit
2154
USPC
707/703
Abstract

Systems and methods for improving database system performance are described. In one embodiment, a database system includes a database application cluster including at least one read-write node and a plurality of read nodes, a shared memory, and a multiplexer coupled to the database application cluster and shared memory. The multiplexer is configured to receive a request from a client computing system which includes a database query. Based on a lookup in the shared memory, the multiplexer determines that the database query can be routed to one of the plurality of read nodes. In response, the database query is routed to one of the read nodes for execution.

Claims (40)

1. A database system, comprising:

a database application cluster comprising a read-write node and a plurality of read nodes;

a shared memory; and

a multiplexer coupled to the database application cluster and shared memory, and comprising a non-transitory memory and one or more hardware processors coupled to the non-transitory memory and configured to read instructions from the non-transitory memory to cause the multiplexer to perform operations comprising:

receiving a request from a client computing system, wherein the request comprises a database query;

determining that the database query is a read query which is not included in a transaction executing on the read-write node of the database application cluster;

determining, based at least on a lookup in the shared memory and the determination that the database query is a read query not included in a transaction executing on the read-write node, whether the database query can be routed to one of the plurality of read nodes; and

routing the database query to one of the plurality of read nodes for execution if the determination is that the database query can be routed to one of the plurality of read nodes.

2. The system of claim 1 , wherein the operations further comprise:

returning results of an executed database query to the client computing system.

3. The system of claim 1 , wherein the operations further comprise:

routing the database query to the read-write node for execution if the determination is that the database query cannot be routed to one of the plurality of read nodes.

4. The system of claim 3 , wherein determining that the database query cannot be routed to one of the plurality of read nodes includes determining that the database query is part of a transaction executing on the read-write node of the database application cluster.

5. The system of claim 1 , wherein routing the database query to one of the plurality of read nodes for execution further includes routing the database query to a read worker system in a worker pool.

6. The system of claim 1 , the operations further comprising:

updating, in the shared memory and by a worker system coupled to the read-write node, a state of a worker process executing on the worker system.

7. The system of claim 1 , wherein determining that the database query is a read query further includes parsing the query to identify a read only operation.

8. A method for providing data from a database system in response to a query, comprising:

receiving, by a multiplexer of the database system, a request from a client computing system, wherein the request comprises a database query;

determining that the database query is a read query which is not included in a transaction executing on a read-write node of a database application cluster comprising a plurality of read nodes;

determining, by the multiplexer and based at least on a lookup in a shared memory coupled to the multiplexer and the database application cluster and on the determination that the database query is a read query not included in a transaction executing on the read-write node, whether the database query can be routed to one of the plurality of read nodes; and

routing, by the multiplexer, the database query to one of the plurality of read nodes for execution if the determination is that the database query can be routed to one of the plurality of read nodes.

9. The method of claim 8 , further comprising returning results of an executed database query to the client computing system.

10. The method of claim 8 , further comprising:

routing the database query to the read-write node for execution if the determination is that the database query cannot be routed to one of the plurality of read nodes.

11. The method of claim 10 , wherein determining that the database query cannot be routed to one of the plurality of read nodes further comprises determining that the database query is part of a transaction executing on the read-write node of the database application cluster.

12. The method of claim 8 , wherein routing the database query to one of the plurality of read nodes for execution further includes routing the database query to a read worker system in a worker pool for execution.

13. The method of claim 8 , further comprising updating, in the shared memory and by a worker system coupled to the read-write node, a state of a worker process executing on the worker system.

14. The method of claim 8 , wherein determining that the database query is a read query further includes parsing the query to identify a read only operation.

15. A non-transitory machine-readable medium having stored thereon machine-readable instructions executable to cause a machine to perform operations comprising:

receiving, by a multiplexer of a database system, a request from a client computing system, wherein the request comprises a database query;

determining that the database query is a read query which is not included in a transaction executing on a read-write node of a database application cluster comprising a plurality of read nodes;

determining, by the multiplexer and based at least on a lookup in a shared memory coupled to the multiplexer and the database application cluster and on the determination that the database query is a read query not included in a transaction executing on the read-write node, whether the database query can be routed to one of the plurality of read nodes; and

routing, by the multiplexer, the database query to one of the plurality of read nodes for execution if the determination is that the database query can be routed to one of the plurality of read nodes.

16. The non-transitory machine-readable medium of claim 15 , the operations further comprising returning results of an executed database query to the client computing system.

17. The non-transitory machine-readable medium of claim 15 , the operations further comprising:

routing the database query to the read-write node for execution if the determination is that the database query cannot be routed to one of the plurality of read nodes.

18. The non-transitory machine-readable medium of claim 17 , wherein determining that the database query cannot be routed to one of the plurality of read nodes further comprises determining that the database query is part of a transaction executing on the read-write node of the database application cluster.

19. The non-transitory machine-readable medium of claim 15 , wherein routing the database query to one of the plurality of read nodes for execution further includes routing the database query to a read worker system in a worker pool for execution.

20. The non-transitory machine-readable medium of claim 15 , wherein determining that the database query is a read query further includes parsing the query to identify a read only operation.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 18, 2019
From: SINGH, KAMLAKAR
To: PAYPAL, INC.
Reel/Frame 048360/0233 →
Continuity (2)
Provisional Application 62191622 · Jul 13, 2015
Related Publication 20170017692A1 · Jan 19, 2017
Cited By (2)
US 12,248,476 US 12,670,055