Using persistent memory and remote direct memory access to reduce write latency for database logging
AssigneeOracle International Corporation
InventorsKesavan Puliyur Srinivasan, Jia Shi, Vijay Sridharan, Zuoyu Tao, Shreyas Udgaonkar
Life of this patent
Estimating the term…
Abstract
Described is an approach to implement persistent memory to hold log records upon a commit for a database system. The approach may use RDMA techniques to hold change records at a remote persistent memory location.
Claims33
A method, comprising:
- executing operations for a first transaction in a first database at a database node of multiple database nodes, wherein
- the database node of the multiple database nodes comprises the first database,
- the multiple database nodes share use of a persistent memory within a remote storage appliance to hold log records for the first transaction, and
- the remote storage appliance is connected to and shared by the multiple database nodes over a network so that each database node of the multiple database nodes shares the persistent memory for respective commits of respective transactions executing on respective database nodes;
- generating log data for the operations for the first transaction at the first database;
- initiating a commit of the first transaction;
- sending the log data together with a request to write the log data to the persistent memory at the remote storage appliance;
- and
- committing the first transaction after successfully sending the request, by the database node, together with the log data for the first transaction using a one-sided protocol to the persistent memory, without the database node waiting for acknowledgment from the remote storage appliance.
A system, comprising:
- a processor;
- and
- a memory for holding programmable code;
- wherein the programmable code includes instructions which, when executed by the processor, cause the processor to execute a set of acts, the set of acts comprising:
- executing operations for a first transaction in a first database at a database node of multiple database nodes, wherein
- the database node of the multiple database nodes comprises the first database,
- the multiple database nodes share use of a persistent memory within a remote storage appliance to hold log records for the first transaction, and
- the remote storage appliance is connected to and shared by the multiple database nodes over a network so that each database node of the multiple database nodes shares the persistent memory for respective commits of respective transactions executing on the eachrespective database nodes;
- generating log data for the operations for the first transaction at the first database;
- initiating a commit of the first transaction;
- sending the log data together with a request to write the log data to the persistent memory at the remote storage appliance;
- and
- committing the first transaction after successfully sending, by the database node, the request together with the log data for the first transaction using a one-sided protocol to the persistent memory, without the database node waiting for acknowledgment from the remote storage appliance.
A computer program product embodied on a non-transitory computer readable medium, the non-transitory computer readable medium having stored thereon a sequence of instructions which, when executed by a processor, causes the processor to perform a set of acts, the set of acts comprising:
- executing operations for a first transaction in a first database at a database node of multiple database nodes, wherein
- the database node of the multiple database nodes comprises the first database,
- the multiple database nodes share use of a persistent memory within a remote storage appliance to hold log records for the first transaction, and
- the remote storage appliance is connected to and shared by the multiple database nodes over a network so that each database node of the multiple database nodes shares the persistent memory for respective commits of respective transactions executing on respective database nodes;
- generating log data for the operations for the first transaction at the first database;
- initiating a commit of the first transaction;
- sending the log data together with a request to write the log data to the persistent memory at the remote storage appliance;
- and
- committing the first transaction after successfully sending the request, by the database node, together with the log data for the first transaction using a one-sided protocol to the persistent memory, without the database node waiting for acknowledgment from the remote storage appliance.
A computer program product embodied on a non-transitory computer readable medium, the non-transitory computer readable medium having stored thereon a sequence of instructions which, when executed by a processor, causes the processor to perform a set of acts, the set of acts comprising:
- executing operations for a transaction in a database at a database node of multiple database nodes, wherein
- a database node of the multiple database nodes comprises the database,
- the multiple database nodes share use of a persistent memory in a storage tier of a remote computing device to hold log records for the transaction, wherein
- the storage tier of the remote computing device is connected to and shared by the multiple database nodes over a network so that each database node of the multiple database nodes shares the persistent memory for a respective commits of respective transactions executing on respective database nodes;
- generating log data for the operations at the database;
- initiating a commit of the transaction;
- sending the log data together with a request to write the at least the log data to the persistent memory in the storage tier of the remote computing device;
- and
- committing the transaction after a successful send message, by the database node, for successfully sending the request together with the log data for the transaction sent using a one-sided protocol is received, without the database node waiting for acknowledgment from the persistent memory.
Dependencies are inferred from the claim text.