Patent ID: 7406481

Claim:
A method for performing database operations, the method comprising performing the following steps on a first machine: allocating a first segment of memory for exchanging data with a second machine using the direct memory access enabled channel, wherein at least one of the first machine and the second machine is a database server, wherein allocating the first segment of memory includes identifying a plurality of buffers to be used for exchanging data with the second machine; verifying that the first machine and the second machine can communicate using the direct memory access enabled channel; in response to determining that the first machine and the second machine can communicate using the direct memory access enabled channel, performing: during performance of a database operation that involves a transfer of data from the second machine to the first machine, buffering a portion of said data in the first segment of memory in response to the second machine writing said portion of data to a second segment of memory on the second machine, and wherein buffering said portion of said data in the first segment of memory includes (a) buffering said portion of the data received from the second machine in one or more buffers of the plurality of buffers, and (b) sending, to the second machine, an acknowledgment upon each buffer, of the plurality of buffers, becoming available to receive additional data from the second machine; and in response to determining that either the first machine or the second machine cannot use the direct memory access enabled channel, using an Internet Protocol enabled channel instead of the direct memory access enabled channel to receive, at said first machine, said data from the second machine to the second machine, wherein verifying that the first machine and the second machine can communicate using the direct memory access enabled channel comprises at least one of the following steps: sending a test message to the second machine over the direct memory access enabled channel, causing the second machine to send a test message to the first machine over the direct memory access enabled channel, and comparing information about resources on the second machine for using the direct memory access enabled channel with resources on the first machine for using the direct memory access enabled channel.