Dynamically sizing buffers to optimal size in network layers when supporting data transfers related to database applications
First Claim
Patent Images
1. A computer implemented method of transferring data from a first database system to a second database system using multiple computing layers, said computing layers containing an application layer, a network layer, and a set of intermediate layers between said network layer and said application layer, said method being performed in said first database system, said method comprising:
- in a database application comprised in an application layer of said set of upper layers implemented in said first database system, formulating a first call and then a second call, both said first call and said second call for transferring respective data to an application layer in said second database system;
receiving in said set of intermediate layers, said first call and then said second call;
at said set of intermediate layers, estimating a first expected amount of data and a second expected amount of data to be transferred for said first call and said second call respectively, wherein said first expected amount of data is larger than said second expected amount of data;
at said set of intermediate layers, determining a first TCP/IP buffer size based on said first expected amount of data and determining a second TCP/IP buffer size based on said second expected amount of data, wherein said first TCP/IP buffer size is larger than said second TCP/IP buffer size when said first expected amount of data is larger than said second expected amount of data;
communicating from said set of intermediate layers to said network layer said first TCP/IP buffer size used for transferring data associated with said first call and said second TCP/IP buffer size used for transferring data associated with said second call;
at said network layer, providing a first TCP/IP buffer of said first TCP/IP buffer size for transferring data of said first call and providing a second TCP/IP buffer of said second TCP/IP buffer size for transferring data of said second call, wherein said first TCP/IP buffer size is more than said second TCP/IP buffer size in response to said communicating;
storing in said first TCP/IP buffer a first data provided in said first call, and storing in said second TCP/IP buffer a second data provided in said second call; and
transferring said first data stored in said first TCP/IP buffer and said second data stored in said second TCP/IP buffer to said second database system via TCP/IP.
1 Assignment
0 Petitions
Accused Products
Abstract
In transferring data from/to a database server, the size of a network buffer used by a network layer is dynamically adjusted according to the call type and expected size of data to be transferred for the call. Due to such use of appropriate buffer size, throughput performance of the transfer may be enhanced.
-
Citations
20 Claims
-
1. A computer implemented method of transferring data from a first database system to a second database system using multiple computing layers, said computing layers containing an application layer, a network layer, and a set of intermediate layers between said network layer and said application layer, said method being performed in said first database system, said method comprising:
-
in a database application comprised in an application layer of said set of upper layers implemented in said first database system, formulating a first call and then a second call, both said first call and said second call for transferring respective data to an application layer in said second database system; receiving in said set of intermediate layers, said first call and then said second call; at said set of intermediate layers, estimating a first expected amount of data and a second expected amount of data to be transferred for said first call and said second call respectively, wherein said first expected amount of data is larger than said second expected amount of data; at said set of intermediate layers, determining a first TCP/IP buffer size based on said first expected amount of data and determining a second TCP/IP buffer size based on said second expected amount of data, wherein said first TCP/IP buffer size is larger than said second TCP/IP buffer size when said first expected amount of data is larger than said second expected amount of data; communicating from said set of intermediate layers to said network layer said first TCP/IP buffer size used for transferring data associated with said first call and said second TCP/IP buffer size used for transferring data associated with said second call; at said network layer, providing a first TCP/IP buffer of said first TCP/IP buffer size for transferring data of said first call and providing a second TCP/IP buffer of said second TCP/IP buffer size for transferring data of said second call, wherein said first TCP/IP buffer size is more than said second TCP/IP buffer size in response to said communicating; storing in said first TCP/IP buffer a first data provided in said first call, and storing in said second TCP/IP buffer a second data provided in said second call; and transferring said first data stored in said first TCP/IP buffer and said second data stored in said second TCP/IP buffer to said second database system via TCP/IP. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A computer readable storage medium storing one or more sequence of instructions causing a first data base system to transfer data to a second database system using multiple computing layers, said computing layers containing an application layer, a network layer, and a set of intermediate layers between said network layer and said application layer, wherein execution of said one or more sequences of instructions by one or more processors contained in said first database system causes said first database system to perform the actions of:
-
in a database application comprised in an application layer of said set of upper layers implemented in said first database system, formulating a first call and then a second call, both said first call and said second call for transferring respective data to an application layer in said second database system; receiving in said set of intermediate layers, said first call and then said second call; at said set of intermediate layers, estimating a first expected amount of data and a second expected amount of data to be transferred for said first call and said second call respectively, wherein said first expected amount of data is larger than said second expected amount of data; at said set of intermediate layers, determining a first TCP/IP buffer size based on said first expected amount of data and determining a second TCP/IP buffer size based on said second expected amount of data, wherein said first TCP/IP buffer size is larger than said second TCP/IP buffer size when said first expected amount of data is larger than said second expected amount of data; communicating from said set of intermediate layers to said network layer said first TCP/IP buffer size used for transferring data associated with said first call and said second TCP/IP buffer size used for transferring data associated with said second call; at said network layer, providing a first TCP/IP buffer of said first TCP/IP buffer size for transferring data of said first call and providing a second TCP/IP buffer of said second TCP/IP buffer size for transferring data of said second call, wherein said first TCP/IP buffer size is more than said second TCP/IP buffer size in response to said communicating; storing in said first TCP/IP buffer a first data provided in said first call, and storing in said second TCP/IP buffer a second data provided in said second call; and transferring said first data stored in said first TCP/IP buffer and said second data stored in said second TCP/IP buffer to said second database system via TCP/IP. - View Dependent Claims (12, 13, 14, 15)
-
-
16. A first database system for transferring data to a second database system using multiple computing layers, said computing layers containing an application layer, a network layer, and a set of intermediate layers between said network layer and said application layer, said first database system comprising:
-
a memory to store a set of instructions; one or more processors to retrieve and execute said set of instructions, which cause said first database system to perform the actions of; in a database application comprised in an application layer of said set of upper layers implemented in said first database system, formulating a first call and then a second call, both said first call and said second call for transferring respective data to an application layer in said second database system; receiving in said set of intermediate layers, said first call and then said second call; at said set of intermediate layers, estimating a first expected amount of data and a second expected amount of data to be transferred for said first call and said second call respectively, wherein said first expected amount of data is larger than said second expected amount of data; at said set of intermediate layers, determining a first TCP/IP buffer size based on said first expected amount of data and determining a second TCP/IP buffer size based on said second expected amount of data, wherein said first TCP/IP buffer size is larger than said second TCP/IP buffer size when said first expected amount of data is larger than said second expected amount of data; communicating from said set of intermediate layers to said network layer said first TCP/IP buffer size used for transferring data associated with said first call and said second TCP/IP buffer size used for transferring data associated with said second call; at said network layer, providing a first TCP/IP buffer of said first TCP/IP buffer size for transferring data of said first call and providing a second TCP/IP buffer of said second TCP/IP buffer size for transferring data of said second call, wherein said first TCP/IP buffer size is more than said second TCP/IP buffer size in response to said communicating; storing in said first TCP/IP buffer a first data provided in said first call, and storing in said second TCP/IP buffer a second data provided in said second call; and transferring said first data stored in said first TCP/IP buffer and said second data stored in said second TCP/IP buffer to said second database system via TCP/IP. - View Dependent Claims (17, 18, 19, 20)
-
Specification