IP Library Granted Patent US 9,633,120
Granted Patent B2
US 9,633,120 · App. 14/166,895 · Granted Apr 25, 2017

Continuously blocking query result data for a remote query

Inventors: Margaret A. Dong (San Jose, CA); Shivram Ganduri (San Jose, CA); James W. Pickel (Gilroy, CA); Hugh J. Smith (Santa Cruz, CA)
Assignee: International Business Machines Corporation
G06F17/30867G06F17/30283G06F17/30424G06F17/30516H04L67/10
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,633,120
App. No.
14/166,895
Granted
Apr 25, 2017
Kind
B2
Abstract

Continuously blocking query result data for a remote query is provided. Included is: creating a first connection, using a communications network, between a database server and a client. At least one secondary connection is created, using the communications network, between the database server and the client, based on the database server supporting a continuous block fetch protocol. Using the at least one secondary connection, the database server receives at least one cursor-based fetch query. The database server generates continuous blocks of result data, based on the received at least one cursor-based fetch query and sends to the client, using the at least one secondary connection, the continuous blocks of result data.

Claims (35)

1. A method for continuously blocking query result data for a remote query comprising:

creating a first connection, using a communications network, between a database server and a client;

creating a plurality of secondary connections, using the communications network, between the database server and the client, based on the database server supporting a continuous block fetch protocol, wherein each of the plurality of secondary connections corresponds to a cursor-based fetch query, and wherein the plurality of secondary connections and the first connection belong to a same transaction and share session data of the same transaction;

receiving from the client, at the database server, the cursor-based fetch query using a corresponding secondary connection;

generating, by the database server, continuous blocks of result data, for the cursor-based fetch query;

sending the continuous blocks of result data to the client, using the secondary connection corresponding to the cursor-based fetch query, wherein the database server sends the continuous blocks of result data until the cursor-based fetch query is exhausted, and wherein the database server adheres to network congestion protocols in pacing the sending the continuous blocks of result data; and

closing the corresponding secondary connection when the cursor-based fetch query is exhausted.

2. The method of claim 1 , wherein the client creates one secondary connection with the database server for each cursor-based fetch query.

3. The method of claim 1 , wherein the database server continuously transmits query result blocks to the client, using the secondary connection corresponding to the cursor-based fetch query.

4. The method of claim 1 , wherein the database server sends session data to the client, based on the session data being changed in the transaction, wherein the session data is synchronized across the first connection and the plurality of secondary connections, and wherein the session data includes global variables shared by the same transaction.

5. The method of claim 1 , wherein the database server sends session data to the client upon creating the secondary connection.

6. A computer program product for continuously blocking query result data for a remote query comprising:

a computer readable storage medium readable by a processing circuit and storing instructions for execution by the processing circuit for performing a method comprising:

creating a first connection, using a communications network, between a database server and a client;

creating a plurality of secondary connections, using the communications network, between the database server and the client, based on the database server supporting a continuous block fetch protocol, wherein each of the plurality of secondary connections corresponds to a cursor-based fetch query, and wherein the plurality of secondary connections and the first connection belong to a same transaction and share session data of the same transaction;

receiving from the client, at the database server, the cursor-based fetch query using a corresponding secondary connection;

generating, by the database server, continuous blocks of result data, for the cursor-based fetch query;

sending the continuous blocks of result data to the client, using the secondary connection corresponding to the cursor-based fetch query, wherein the database server sends the continuous blocks of result data until the cursor-based fetch query is exhausted, and wherein the database server adheres to network congestion protocols in pacing the sending the continuous blocks of result data; and

closing the corresponding secondary connection when the cursor-based fetch query is exhausted.

7. The computer program product of claim 6 , wherein each secondary connection remains open, based on the database server continuously transmitting query results to the client;

and wherein the client fetches query result blocks from any open secondary connection.

8. The computer program product of claim 6 , wherein the database server continuously transmits query result blocks to the client, using the secondary connection corresponding to the cursor-based fetch query.

9. The computer program product of claim 6 , wherein the database server sends session data to the client, based on the session data being changed in the transaction, wherein the session data is synchronized across the first connection and the plurality of secondary connections, and wherein the session data includes global variables shared by the same transaction.

10. A computer system for continuously blocking query result data for a remote query comprising one or more processors, one or more computer-readable storage devices, and a plurality of program instructions stored on at least one of the one or more storage devices for execution by at least one of the one or more processors, the plurality of program instructions comprising:

a computer readable storage medium readable by a processing circuit and storing instructions for execution by the processing circuit for performing a method comprising:

creating a first connection, using a communications network, between a database server and a client;

creating a plurality of secondary connections, using the communications network, between the database server and the client, based on the database server supporting a continuous block fetch protocol, wherein each of the plurality of secondary connections corresponds to a cursor-based fetch query, and wherein the plurality of secondary connections and the first connection belong to a same transaction and share session data of the same transaction;

receiving from the client, at the database server, the cursor-based fetch query using a corresponding secondary connection;

generating, by the database server, continuous blocks of result data, for the cursor-based fetch query;

sending the continuous blocks of result data to the client, using the secondary connection corresponding to the cursor-based fetch query, wherein the database server sends the continuous blocks of result data until the cursor-based fetch query is exhausted, and wherein the database server adheres to network congestion protocols in pacing the sending the continuous blocks of result data; and

closing the corresponding secondary connection when the cursor-based fetch query is exhausted.

11. The computer system of claim 10 , wherein each secondary connection remains open, based on the database server continuously transmitting query results to the client; and wherein the client fetches query result blocks from any open secondary connection.

12. The computer system of claim 10 , wherein the database server continuously transmits query result blocks to the client, using the secondary connection corresponding to the cursor-based fetch query.

13. The computer system of claim 10 , wherein the database server sends session data to the client, based on the session data being changed in the transaction, wherein the session data is synchronized across the first connection and the plurality of secondary connections, and wherein the session data includes global variables shared by the same transaction.

14. The computer system of claim 10 , wherein the database server sends session data to the client upon creating the secondary connection.

Assignments (2)
CORRECTIVE ASSIGNMENT TO CORRECT THE 4TH INVENTOR'S EXECUTION DATE 1/24/2014 PREVIOUSLY RECORDED ON REEL 032073 FRAME 0637. ASSIGNOR(S) HEREBY CONFIRMS THE HUGH J. SMITH EXECUTION DATE 1/24/2014. Recorded Apr 23, 2014
From: DONG, MARGARET A.; GANDURI, SHIVRAM; PICKEL, JAMES W.; SMITH, HUGH J.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 032742/0904 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 29, 2014
From: DONG, MARGARET A.; GANDURI, SHIVRAM; PICKEL, JAMES W.; SMITH, HUGH J.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 032073/0637 →
Continuity (1)
Related Publication 20150213124A1 · Jul 30, 2015