Single-sided distributed storage system
AssigneeGoogle Inc.
InventorsKyle Nesbit, Andrew Everett Phelps
Life of this patent
Estimating the term…
Abstract
A distributed storage system including memory hosts and at least one curator in communication with the memory hosts. Each memory host has memory, and the curator manages striping of data across the memory hosts. In response to a memory access request by a client in communication with the memory hosts and the curator, the curator provides the client a file descriptor mapping data stripes and data stripe replications of a file on the memory hosts for remote direct memory access of the file on the memory hosts.
Claims20
A computer-implemented method when executed by data processing hardware of a distributed storage system causes the data processing hardware to perform operations comprising:
- dividing a file into a plurality of data stripes;
- for each respective data stripe of the plurality of data stripes, allocating storage of the respective data stripe to a respective memory host of a plurality of memory hosts of the distributed storage system;
- receiving, from a client, a memory access request requesting access to the file;
- in response to the memory access request, retrieving a file descriptor mapping each respective data stripe to the respective memory host of the plurality of memory hosts for access of the file by the client;
- receiving an external notification indicating that an attempt to access a particular data stripe of the plurality of data stripes stored at a particular memory host of the plurality of memory hosts has failed;
- and
- in response to receiving the external notification, reconstructing the particular data stripe.
A system comprising:
- data processing hardware of a distributed storage system;
- and
- memory hardware in communication with the data processing hardware, the memory hardware storing instructions that when executed on the data processing hardware cause the data processing hardware to perform operations comprising:
- dividing a file into a plurality of data stripes;
- for each respective data stripe of the plurality of data stripes, allocating storage of the respective data stripe to a respective memory host of a plurality of memory hosts of the distributed storage system;
- receiving, from a client, a memory access request requesting access to the file;
- in response to the memory access request, retrieving a file descriptor mapping each respective data stripe to the respective memory host of the plurality of memory hosts for access of the file by the client;
- receiving an external notification indicating that an attempt to access a particular data stripe of the plurality of data stripes stored at a particular memory host of the plurality of memory hosts has failed;
- and
- in response to receiving the external notification, reconstructing the particular data stripe.
Dependencies are inferred from the claim text.