Partitioned key-value store with atomic memory operations
First Claim
1. A method performed by a server for performing a memory operation in a partitioned key-value store, comprising:
- receiving a request from an application for at least one atomic memory operation, wherein said application executes on a compute node having a client of said partitioned key-value store and said atomic memory operation comprises a memory address identifier of a memory location of said client; and
in response to said atomic memory operation, said server employing one or more remote memory operations to perform one or more of (i) reading a client-side memory location identified by said memory address identifier and storing one or more key-value pairs from said client-side memory location in a local key-value store of said server; and
(ii) obtaining one or more key-value pairs from said local key-value store of said server and writing said obtained one or more key-value pairs into said client-side memory location identified by said memory address identifier,wherein program control returns to said application when said server receives said request from said application for said atomic memory operation such that said application performs one or more additional tasks while said server performs said one or more remote memory operations.
10 Assignments
0 Petitions
Accused Products
Abstract
A partitioned key-value store is provided that supports atomic memory operations. A server performs a memory operation in a partitioned key-value store by receiving a request from an application for at least one atomic memory operation, the atomic memory operation comprising a memory address identifier; and, in response to the atomic memory operation, performing one or more of (i) reading a client-side memory location identified by the memory address identifier and storing one or more key-value pairs from the client-side memory location in a local key-value store of the server; and (ii) obtaining one or more key-value pairs from the local key-value store of the server and writing the obtained one or more key-value pairs into the client-side memory location identified by the memory address identifier. The server can perform functions obtained from a client-side memory location and return a result to the client using one or more of the atomic memory operations.
33 Citations
20 Claims
-
1. A method performed by a server for performing a memory operation in a partitioned key-value store, comprising:
-
receiving a request from an application for at least one atomic memory operation, wherein said application executes on a compute node having a client of said partitioned key-value store and said atomic memory operation comprises a memory address identifier of a memory location of said client; and in response to said atomic memory operation, said server employing one or more remote memory operations to perform one or more of (i) reading a client-side memory location identified by said memory address identifier and storing one or more key-value pairs from said client-side memory location in a local key-value store of said server; and
(ii) obtaining one or more key-value pairs from said local key-value store of said server and writing said obtained one or more key-value pairs into said client-side memory location identified by said memory address identifier,wherein program control returns to said application when said server receives said request from said application for said atomic memory operation such that said application performs one or more additional tasks while said server performs said one or more remote memory operations. - View Dependent Claims (2, 3, 4, 5, 6, 18)
-
-
7. A server apparatus for performing a memory operation in a partitioned key-value store, the server apparatus comprising:
-
a memory; and at least one hardware device, coupled to the memory, operative to implement the following steps; receive a request from an application for at least one atomic memory operation, wherein said application executes on a compute node having a client of said partitioned key-value store and said atomic memory operation comprises a memory address identifier of a memory location of said client; and in response to said atomic memory operation, said server apparatus employing one or more remote memory operations to perform one or more of (i) reading a client-side memory location identified by said memory address identifier and storing one or more key-value pairs from said client-side memory location in a local key-value store of said server; and
(ii) obtaining one or more key-value pairs from said local key-value store of said server and writing said obtained one or more key-value pairs into said client-side memory location identified by said memory address identifier,wherein program control returns to said application when said server receives said request from said application for said atomic memory operation such that said application performs one or more additional tasks while said server performs said one or more remote memory operations. - View Dependent Claims (8, 9, 10, 11, 12, 19)
-
-
13. An article of manufacture for performing a server-side memory operation in a partitioned key-value store, comprising a tangible machine readable recordable storage medium comprising one or more programs which when executed implement the steps of:
-
receiving a request from an application for at least one atomic memory operation, wherein said application executes on a compute node having a client of said partitioned key-value store and said atomic memory operation comprises a memory address identifier of a memory location of said client; and in response to said atomic memory operation, said server employing one or more remote memory operations to perform one or more of (i) reading a client-side memory location identified by said memory address identifier and storing one or more key-value pairs from said client-side memory location in a local key-value store of said server; and
(ii) obtaining one or more key-value pairs from said local key-value store of said server and writing said obtained one or more key-value pairs into said client-side memory location identified by said memory address identifier,wherein program control returns to said application when said server receives said request from said application for said atomic memory operation such that said application performs one or more additional tasks while said server performs said one or more remote memory operations. - View Dependent Claims (14, 15, 16, 17, 20)
-
Specification