IP Library Granted Patent US 9,104,731
Granted Patent B2
US 9,104,731 · App. 12/170,887 · Granted Aug 11, 2015

Relocated joins in a distributed query processing system

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 9,104,731
App. No.
12/170,887
Granted
Aug 11, 2015
Kind
B2
Abstract

A system, method, and computer program product are provided for performing a join operation between a local table at a local server and a remote table at a remote server. In accordance with an embodiment of the present invention, a query instruction to join the local table and the remote table is received at the remote server. Qualifying rows of the local table are then retrieved to the remote server, and the remote table is joined with the qualifying rows to generate a result table, which is then sent to the local server.

Claims (52)

1. A method, comprising:

receiving, at a remote server, a query from a local server wherein the query comprises a join operation that joins a local table at the local server and a remote table at the remote server;

retrieving, from the local server, qualifying rows of the local table;

joining the remote table with the qualifying rows to generate a result table; and

sending the result table to the local server,

wherein the remote server is configured to perform the receiving, retrieving, joining, and sending based on a cost associated with relocating the join operation to be processed at the remote server instead of the local server.

2. The method of claim 1 , wherein the cost of the relocated join operation is assessed based on a result of scanning the local table and the remote table.

3. The method of claim 2 , wherein the cost is further assessed based on a number and a size of the qualifying rows to be retrieved.

4. The method of claim 2 , wherein the cost is further assessed based on a joining cost associated with generating the result table at the remote server instead of the local server.

5. The method of claim 1 , further comprising:

receiving the query at the local server;

modifying the query to state a fully-qualified name for the local table; and sending the query to the remote server.

6. The method of claim 1 , further comprising:

receiving, at the remote server, a transaction context representing a transaction of the local server; and

establishing a connection from the remote server to the local server, wherein the connection is joined to the transaction context.

7. The method of claim 1 , wherein retrieving qualifying rows of the local table comprises:

scanning a corresponding proxy table at the remote server.

8. A system, comprising:

a receiving module configured to receive, at a remote server, a query from a local server, wherein the query comprises a join operation that joins a local table at the local server and a remote table at the remote server;

a retrieving, from the local server, module configured to retrieve qualifying rows of the local table;

a joining module configured to join the remote table with the qualifying rows to generate a result table; and

a sending module configured to send the result table to the local server,

wherein the receiving module, the retrieving module, the joining module, and the sending module are configured to perform their respective operations at the remote server based on cost associated with relocating the join operation to be processed at theremote server instead of the local server.

9. The system of claim 8 , wherein the cost of the relocated join operation is assessed based on a result of scanning the local table and the remote table.

10. The system of claim 9 , wherein the cost is further assessed based on a joining cost associated with generating the result table at the remote server instead of the local server.

11. The system of claim 8 , further comprising:

a second receiving module configured to receive the query at the local server;

a modifying module configured to modify the query to state a fully-qualified name for the local table; and

a second sending module configured to send the query to the remote server.

12. The system of claim 8 , further comprising:

a second receiving module configured to receive, at the remote server, a transaction context representing a transaction of the local server, and

an establishing module configured to establish a connection trom the remote server to the local server, wherein the connection is joined to the transaction context.

13. The system of claim 8 , wherein the retrieving module comprises:

a scanning module configured to scan a corresponding proxy table at the remote server.

14. A computer-usable storage device having instructions recorded thereon that, if executed by a computing device, causes the computing device to perform operations comprising:

receiving, at a remote server, a query from a local server, wherein the query comprises a join operation that joins a local table at the local server and a remote table at the remote server;

retrieving, from the local server, qualifying rows of the local table;

joining the remote table with the qualifying rows to generate a result table; and

sending the result table to the local server,

wherein the remote server is configured to perform the receiving, retrieving joining, and sending based on a cost associated with relocating the join operation to be processed at the remote server instead of the local server, wherein the cost is assessed based on a result of scanning the local table and the remote table according to the query.

15. The computer-usable storage device of claim 14 , the operations further comprising:

determining whether the join operation is optimal.

16. The computer-usable storage device of claim 15 , wherein the cost is further assessed based on a joining cost associated with generating the result table at the remote server instead of the local server.

17. The computer-usable storage device of claim 14 , the operations further comprising:

receiving the query at the local server;

modifying the query to state a fully-qualified name for the local table; and

sending the query to the remote server.

18. The computer-usable storage device of claim 14 , the operations further comprising:

receiving at the remote server, a transaction context representing a transaction of the local server; and

establishing a connection from the remote server to the local server, wherein the connection is joined to the transaction context.

19. The computer-usable storage device of claim 14 , wherein retrieving qualifying rows of the local table comprises:

scanning a corresponding proxy table at the remote server.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2021
From: SAP SE
To: SYBASE, INC.
Reel/Frame 055151/0731 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 8, 2019
From: SYBASE, INC.
To: SAP SE
Reel/Frame 049116/0711 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 15, 2008
From: JOHNSON, CURTIS; OLSON, STEVE; MESENZEFF, VICTOR; CHOWDHURI, SUDIPTO
To: SYBASE, INC.
Reel/Frame 021236/0201 →