Scalable storage system
AssigneeVast Data Ltd.
InventorsRenen Hallak, Asaf Levy, Avi Goren, Alon Horev
Life of this patent
Estimating the term…
Abstract
A large-scale storage system is provided. The large-scale system includes a plurality of compute nodes; a plurality of storage nodes; and a communication fabric for providing a communication infrastructure between the plurality of compute nodes and the plurality of storage nodes; wherein each compute node of the plurality of compute nodes is configured to independently perform at least a storage operation on any of the storage nodes in a persistent manner, and wherein each storage node of the plurality of storage nodes provides physical storage space of the large-scale storage system.
Claims33
A large-scale storage system, comprising:
- a plurality of compute nodes each compute node including at least one processing circuitry;
- a plurality of storage nodes;
- and
- a communication fabric for providing a communication infrastructure between the plurality of compute nodes and the plurality of storage nodes;
- wherein each compute node of the plurality of compute nodes is configured to independently perform at least a storage operation on any of the storage nodes in a persistent manner,
- wherein each storage node of the plurality of storage nodes provides physical storage space of the large-scale storage system,
- wherein the plurality of storage nodes is configured to store mapping information of elements stored in the large-scale storage system, for mapping element identifiers into physical locations, wherein the mapping information is sharded across the plurality of storage nodes, and
- wherein each compute node is configured to communicate with each of the plurality of storage nodes over the communication fabric, and to use the mapping information for accessing the elements, thereby enabling access by each compute node of the plurality of compute nodes to an entire namespace of the large-scale storage system.
A method for performing a write request in a large-scale storage system, comprising:
- receiving, by a compute node of a plurality of compute nodes of the large-scale storage system, a write request, wherein the write request includes at least a data element to be written, wherein the large-scale storage system includes the plurality of compute nodes and a plurality of storage nodes, wherein the plurality of storage nodes is configured to store mapping information of elements stored in the large-scale storage system, for mapping elements identifiers into physical locations, wherein the mapping information is sharded across the plurality of storage nodes, and wherein each compute node is configured to communicate with each of the plurality of storage nodes over the communication fabric, and to use the mapping information for accessing the elements, thereby enabling access by each compute node of the plurality of compute nodes to an entire namespace of the large-scale storage system;
- determining a location to write the received data element, wherein the location is in at least one storage node of the plurality of storage nodes the large-scale storage system;
- writing the data element to a write buffer at the determined location;
- and
- acknowledging a completion of the write request when the writing of the data element to the write buffer is completed.
A method for performing a read request in a large-scale storage system, comprising:
- receiving, at a first compute node of a plurality of compute nodes of the large-scale storage system, a read request, wherein the read request includes at least an identifier of a data element to be read, wherein the large-scale storage system includes a plurality storage nodes configured to store mapping information of elements stored in the large-scale storage system, for mapping elements identifiers into physical locations, wherein the mapping information is sharded across the plurality of storage nodes, and
- wherein each compute node is configured to communicate with each of the plurality of storage nodes, and to use the mapping information for accessing the elements, thereby enabling access by each compute node of the plurality of compute nodes to an entire namespace of the large-scale storage system;
- determining a certain shard of the mapping information that includes mapping information for the data element;
- determining a location of the data blocks, based on the mapping information for the data element, wherein the location is in at least one storage node of the large-scale storage system;
- and
- accessing the determined location to retrieve the data blocks of the requested element.
Dependencies are inferred from the claim text.