IP Library Patent Application 13931790
Patent Application
App. No. 13/931,790

REPLICATED DATABASE USING ONE SIDED RDMA

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 None
App. No.
13/931,790
Abstract

This innovation provides a method for a networked and replicated database management system (DBMS) using only one-sided remote direct memory access (RDMA). Replicated databases retain some access to the stored data in the face of server failure. In the prior state of the art, after the software in the DBMS on one of the servers acted on a client's request to update the database, it would contact the other replicas of the database and ensure that they had recorded the change, before responding to the client that the transaction was complete. This innovation describes a method whereby the database client directly interacts with each DBMS replica over the network using only RDMA to directly modify the stored data while maintaining the properties of database atomicity and consistency. This method reduces transactional latency by removing any need for the server DBMS software to respond to or forward requests for service.

Claims (42)

1 . A method for replicating data, comprising:

allocating a memory location in a first server;

sending a remote direct memory access command from a client to a first server and a second server to write data to the memory location; and

updating an index structure for each of the first server and second server with information regarding the data.

2 . The method of claim 1 , wherein allocating includes finding an unused data block in a data structure within each of the first server and the second server.

3 . The method of claim 1 , wherein allocating includes marking a data block in a data structure within the first server and the second server as used.

4 . The method of claim 1 , wherein the information regarding the data includes an updated pointer to the memory block.

5 . The method of claim 1 , wherein the write at the first server memory location does not utilize a server process.

6 . The method of claim 1 , wherein each index structure is associated with a table, each table associated with a single write client.

7 . The method of claim 1 , further comprising:

finding desired data in the index structure of one of the first server and the second server;

determining the location of the data from a pointer in the index structure and associated with the data;

retrieving the data using a remote direct memory access command from a client to a first server; and

detecting whether the index structure changed.

8 . A computer readable storage medium having embodied thereon a program, the program being executable by a processor to perform a method for replicating data, the method comprising:

allocating a memory location in a first server;

sending a remote direct memory access command from a client to a first server and a second server to write data to the memory location; and

updating an index structure for each of the first server and second server with information regarding the data.

9 . The computer readable storage medium of claim 8 , wherein allocating includes finding an unused data block in a data structure within each of the first server and the second server.

10 . The computer readable storage medium of claim 8 , wherein allocating includes marking a data block in a data structure within the first server and the second server as used.

11 . The computer readable storage medium of claim 8 , wherein the information regarding the data includes an updated pointer to the memory block.

12 . The computer readable storage medium of claim 8 , wherein the write at the first server memory location does not utilize a server process.

13 . The computer readable storage medium of claim 8 , wherein each index structure is associated with a table, each table associated with a single write client.

14 . The computer readable storage medium of claim 8 , the method further comprising:

finding desired data in the index structure of one of the first server and the second server;

determining the location of the data from a pointer in the index structure and associated with the data;

retrieving the data using a remote direct memory access command from a client to a first server; and

detecting whether the index structure changed.

15 . A system for displaying data, comprising:

a processor;

memory; and

one or more modules stored in memory and executed by the processor to allocate a memory location in a first server, send a remote direct memory access command from a client to a first server and a second server to write data to the memory location, update an index structure for each of the first server and second server with information regarding the data.

16 . The system of claim 15 , wherein allocating includes finding an unused data block in a data structure within each of the first server and the second server.

17 . The system of claim 15 , wherein allocating includes marking a data block in a data structure within the first server as used.

18 . The system of claim 15 , wherein allocating includes marking a data block in a data structure within the first server and the second server as used.

19 . The system of claim 15 , wherein the write at the first server memory location does not utilize a server process.

20 . The system of claim 15 , wherein each index structure is associated with a table, each table associated with a single write client.

21 . The system of claim 15 , further comprising:

finding desired data in the index structure of one of the first server and the second server;

determining the location of the data from a pointer in the index structure and associated with the data;

retrieving the data using a remote direct memory access command from a client to a first server; and

detecting whether the index structure changed.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 4, 2017
From: SILICON GRAPHICS INTERNATIONAL CORP.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 044128/0149 →
RELEASE OF SECURITY INTEREST Recorded Nov 2, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC., AS AGENT
To: SILICON GRAPHICS INTERNATIONAL CORP.
Reel/Frame 040545/0362 →
SECURITY INTEREST Recorded Mar 13, 2015
From: SILICON GRAPHICS INTERNATIONAL CORP.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 035200/0722 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 15, 2014
From: EVANS, LANCE
To: SILICON GRAPHICS INTERNATIONAL CORP.
Reel/Frame 031978/0051 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 2, 2014
From: RAYMOND, MICHAEL ANDREW
To: SILICON GRAPHICS INTERNATIONAL CORP.
Reel/Frame 031877/0799 →