IP Library Granted Patent US 9,563,426
Granted Patent B1
US 9,563,426 · App. 14/502,231 · Granted Feb 7, 2017

Partitioned key-value store with atomic memory operations

View Patent ↗
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 9,563,426
App. No.
14/502,231
Granted
Feb 7, 2017
Kind
B1
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.

Claims (31)

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.

2. The method of claim 1 , wherein said partitioned key-value store is based on a Multidimensional Data Hashing Indexing Middleware (MDHIM) framework.

3. The method of claim 1 , wherein said partitioned key-value store employs Message Passing Interface (MPI) communications.

4. The method of claim 1 , wherein said one or more of reading from and writing into said client-side memory location comprises a Remote Memory Access (RMA).

5. The method of claim 1 , further comprising the steps of performing one or more functions obtained from said client-side memory location; and returning a result of said one or more functions to said client using one or more of said atomic memory operations.

6. The method of claim 1 , wherein said atomic memory operation comprises a list-based atomic memory operation, wherein said list-based atomic memory operation is executed for a plurality of key-value pairs in a list.

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.

8. The server apparatus of claim 7 , wherein said partitioned key-value store is based on a Multidimensional Data Hashing Indexing Middleware (MDHIM) framework.

9. The server apparatus of claim 7 , wherein said partitioned key-value store employs Message Passing Interface (MPI) communications.

10. The server apparatus of claim 7 , wherein said one or more of reading from and writing into said client-side memory location comprises a Remote Memory Access (RMA).

11. The server apparatus of claim 7 , further comprising the steps of performing one or more functions obtained from said client-side memory location; and returning a result of said one or more functions to said client using one or more of said atomic memory operations.

12. The server apparatus of claim 7 , wherein said atomic memory operation comprises a list-based atomic memory operation, wherein said list-based atomic memory operation is executed for a plurality of key-value pairs in a list.

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.

14. The article of manufacture of claim 13 , wherein said partitioned key-value store is based on a Multidimensional Data Hashing Indexing Middleware (MDHIM) framework.

15. The article of manufacture of claim 13 , wherein said one or more of reading from and writing into said client-side memory location comprises a Remote Memory Access (RMA).

16. The article of manufacture of claim 13 , further comprising the steps of performing one or more functions obtained from said client-side memory location; and returning a result of said one or more functions to said client using one or more of said atomic memory operations.

17. The article of manufacture of claim 13 , wherein said atomic memory operation comprises a list-based atomic memory operation, wherein said list-based atomic memory operation is executed for a plurality of key-value pairs in a list.

18. The method of claim 1 , wherein said application queries for a status of said at least one atomic memory operation.

19. The server apparatus of claim 7 , wherein said application queries for a status of said at least one atomic memory operation.

20. The article of manufacture of claim 13 , wherein said application queries for a status of said at least one atomic memory operation.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (042769/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.)
Reel/Frame 059803/0802 →
RELEASE OF SECURITY INTEREST AT REEL 042768 FRAME 0585 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; MOZY, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058297/0536 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 8, 2018
From: LOS ALAMOS NATIONAL SECURITY, LLC
To: TRIAD NATIONAL SECURITY, LLC
Reel/Frame 047485/0323 →
PATENT SECURITY INTEREST (CREDIT) Recorded Jun 12, 2017
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; MOZY, INC.; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 042768/0585 →
PATENT SECURITY INTEREST (NOTES) Recorded Jun 12, 2017
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; MOZY, INC.; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 042769/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 10, 2017
From: GRIDER, GARY
To: LOS ALAMOS NATIONAL SECURITY, LLC
Reel/Frame 041228/0661 →
CONFIRMATORY LICENSE Recorded Aug 24, 2016
From: LOS ALAMOS NATIONAL SECURITY
To: U.S. DEPARTMENT OF ENERGY
Reel/Frame 039525/0451 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 4, 2014
From: BENT, JOHN M.; FAIBISH, SORIN
To: EMC CORPORATION
Reel/Frame 034378/0068 →