# US 10,313,438 B1 · Partitioned key-value store with one-sided communications for secondary global key lookup by range-knowledgeable clients

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,313,438 B1
- Document ID: US10313438B1
- Status: Granted
- Kind: B1
- Application number: 14/143,758
- Filed: 2013-12-30
- Granted: 2019-06-04
- Earliest claimed: 2013-12-30
- Assignees: EMC Corporation; Triad National Security, LLC; UT-Battelle, LLC
- Applicants: EMC Corporation
- Inventors: John M. Bent; Sorin Faibish; Gary Grider; Aaron Torres; Stephen W. Poole
- Web page: https://patentgrep.com/patent/US10313438B1

## CPC

- H04L 67/1097: for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Partitioned key-value stores with one-sided communications are provided for secondary global key lookup by range-knowledgeable clients. A secondary global lookups is performed in a partitioned key-value store by receiving a request from an application for a secondary global key; accessing metadata to identify a first server storing the secondary global key; instructing the identified first server to store a first value corresponding to the requested secondary global key into a memory address of the client; and returning program control to the application, wherein the first server identifies a primary key corresponding to the requested secondary global key and instructs a second server storing the corresponding primary key to store a second value corresponding to the primary key into the memory address of the client. The second server stores the second value corresponding to the primary key into the first memory address of the client.

## Claims

### Claim 1

A method for performing a secondary global lookup in a partitioned key-value store comprising a plurality of distributed servers that each store a predefined range of primary keys and a predefined range of secondary global keys, comprising:
receiving, by a first server of said plurality of distributed servers from a client of said partitioned key-value store, an instruction to store a first value corresponding to a secondary global key, requested by an application, into a memory address of said client using a Remote Memory Access storage command, wherein said client identifies said first server storing said secondary global key using metadata indicating ranges of said secondary global keys stored by each server of said plurality of distributed servers, and wherein, following said instruction by said client to said first server, said client returns program control to said application that requested said secondary global key;
storing, by said first server, said first value corresponding to said requested secondary global key into said memory address of said client using said Remote Memory Access storage command;
identifying, by said first server, a second server of said plurality of distributed servers storing a primary key corresponding to said requested secondary global key using said predefined ranges of primary keys; and
instructing, by said first server, said second server to store a second value corresponding to said corresponding primary key into a memory address of said client using a Remote Memory Access storage command by said second server.

### Claim 2 (depends on 1)

The method of claim 1, further comprising the step of said second server storing said second value corresponding to said primary key into said first memory address of said client using a Remote Memory Access storage command.

### Claim 3 (depends on 1)

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

### Claim 4 (depends on 1)

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

### Claim 5 (depends on 1)

The method of claim 1, wherein said client comprises a range-knowledgeable client.

### Claim 6 (depends on 5)

The method of claim 5, wherein said range-knowledgeable client stores statistics regarding one or more servers storing particular ranges of said secondary global key.

### Claim 7 (depends on 1)

The method of claim 1, wherein said secondary global key has an associated value that is a primary key in a primary key-value table.

### Claim 8

An apparatus for performing a secondary global lookup in a partitioned key-value store comprising a plurality of distributed servers that each store a predefined range of primary keys and a predefined range of secondary global keys, the apparatus comprising:
a memory comprising one or more programs which when executed by at least one processing device implement the following steps:
receiving, by a first server of said plurality of distributed servers from a client of said partitioned key-value store, an instruction to store a first value corresponding to a secondary global key, requested by an application, into a memory address of said client using a Remote Memory Access storage command, wherein said client identifies said first server storing said secondary global key using metadata indicating ranges of said secondary global keys stored by each server of said plurality of distributed servers, and wherein, following said instruction by said client to said first server, said client returns program control to said application that requested said secondary global key;
storing, by said first server, said first value corresponding to said requested secondary global key into said memory address of said client using said Remote Memory Access storage command;
identifying, by said first server, a second server of said plurality of distributed servers storing a primary key corresponding to said requested secondary global key using said predefined ranges of primary keys; and
instructing, by said first server, said second server to store a second value corresponding to said corresponding primary key into a memory address of said client using a Remote Memory Access storage command by said second server.

### Claim 9 (depends on 8)

The apparatus of claim 8, wherein said second server stores said second value corresponding to said primary key into said first memory address of said client using a Remote Memory Access storage command.

### Claim 10 (depends on 8)

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

### Claim 11 (depends on 8)

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

### Claim 12 (depends on 8)

The apparatus of claim 8, wherein said client comprises a range-knowledgeable client.

### Claim 13 (depends on 12)

The apparatus of claim 12, wherein said range-knowledgeable client stores statistics regarding one or more servers storing particular ranges of said secondary global key.

### Claim 14 (depends on 8)

The apparatus of claim 8, wherein said secondary global key has an associated value that is a primary key in a primary key-value table.

### Claim 15

An article of manufacture for performing a secondary global lookup in a partitioned key-value store comprising a plurality of distributed servers that each store a predefined range of primary keys and a predefined range of secondary global keys, comprising a non-transitory machine readable recordable storage medium containing one or more programs which when executed implement the steps of:
receiving, by a first server of said plurality of distributed servers from a client of said partitioned key-value store, an instruction to store a first value corresponding to a secondary global key, requested by an application, into a memory address of said client using a Remote Memory Access storage command, wherein said client identifies said first server storing said secondary global key using metadata indicating ranges of said secondary global keys stored by each server of said plurality of distributed servers, and wherein, following said instruction by said client to said first server, said client returns program control to said application that requested said secondary global key;
storing, by said first server, said first value corresponding to said requested secondary global key into said memory address of said client using said Remote Memory Access storage command;
identifying, by said first server, a second server of said plurality of distributed servers storing a primary key corresponding to said requested secondary global key using said predefined ranges of primary keys; and
instructing, by said first server, said second server to store a second value corresponding to said corresponding primary key into a memory address of said client using a Remote Memory Access storage command by said second server.

### Claim 16 (depends on 15)

The article of manufacture of claim 15, further comprising the step of said second server storing said second value corresponding to said primary key into said first memory address of said client using a Remote Memory Access storage command.

### Claim 17 (depends on 15)

The article of manufacture of claim 15, wherein said partitioned key-value store is based on a Multidimensional Data Hashing Indexing Middleware (MDHIM) framework and employs Message Passing Interface (MPI) communications.

### Claim 18 (depends on 15)

The article of manufacture of claim 15, wherein said client comprises a range-knowledgeable client that stores statistics regarding one or more servers storing particular ranges of said secondary global key.

### Claim 19 (depends on 15)

The article of manufacture of claim 15, wherein said secondary global key has an associated value that is a primary key in a primary key-value table.

### Claim 20 (depends on 15)

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