Writing data in a distributed data storage system
First Claim
1. A method for writing data, the method comprising:
- based on receipt of a write request that includes data and a client address for accessing the data, segmenting the data into storage units;
computing a storage unit identifier for each of the storage units, wherein the storage unit identifier for each storage unit uniquely identifies content of the storage unit;
determining, by a metadata server, mappings between the storage unit identifiers to two or more block servers, wherein different sets of the storage unit identifiers map to different ones of the two or more block servers; and
sending the storage units with their storage unit identifiers to the block servers based upon the mappings, wherein each block server stores the one or more of the storage units sent to the block server in a storage medium of the block server and stores location information on where the storage unit is stored on the block server in association with the corresponding storage unit identifier, and wherein multiple client addresses associated with a same storage unit identifier resolve to a same block server location.
2 Assignments
0 Petitions
Accused Products
Abstract
Methods, systems, and apparatuses, including computer programs encoded on computer-readable media, for receiving a write request that includes data and a client address at which to store the data. The data is segmented into the one or more storage units. A storage unit identifier for each of the one or more storage units is computed that uniquely identifies content of a storage unit. A mapping between each storage unit identifier to a block server is determined. For each of the one or more storage units, the storage unit and the corresponding storage unit identifier is sent to a block server. The block server stores the storage unit and information on where the storage unit is stored on the block server for the storage unit identifier. Multiple client addresses associated with a storage unit with the same storage unit identifier are mapped to a single storage unit.
-
Citations
19 Claims
-
1. A method for writing data, the method comprising:
-
based on receipt of a write request that includes data and a client address for accessing the data, segmenting the data into storage units; computing a storage unit identifier for each of the storage units, wherein the storage unit identifier for each storage unit uniquely identifies content of the storage unit; determining, by a metadata server, mappings between the storage unit identifiers to two or more block servers, wherein different sets of the storage unit identifiers map to different ones of the two or more block servers; and sending the storage units with their storage unit identifiers to the block servers based upon the mappings, wherein each block server stores the one or more of the storage units sent to the block server in a storage medium of the block server and stores location information on where the storage unit is stored on the block server in association with the corresponding storage unit identifier, and wherein multiple client addresses associated with a same storage unit identifier resolve to a same block server location. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A non-transitory computer-readable storage medium containing instructions for a metadata server to service requests for writing data in a distributed storage system, the instructions for controlling a computer system to perform operations comprising:
-
based on receipt of a write request that includes data and a client address for accessing the data, segmenting the data into storage units; computing a storage unit identifier for each of the storage units, wherein the storage unit identifier for each storage unit uniquely identifies content of the storage unit; determining mappings between the storage unit identifiers to two or more block servers, wherein different sets of the storage unit identifiers map to different ones of the two or more block servers; and sending the storage units and their corresponding storage unit identifiers to the two or more block servers based upon the mappings, wherein each block server stores the one or more of the storage units sent to the block server in a storage medium of the block server and stores location information on where the storage unit is stored on the block server in association with the corresponding storage unit identifier, and wherein multiple client addresses associated with a same storage unit identifier resolve to a same block server location. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A system comprising:
a metadata server comprising a processor and a non-transitory machine-readable medium having stored therein instructions executable by the processor to cause the metadata server to; based on receipt of a write request that includes data and a client address for accessing the data, segment the data into storage units; compute a storage unit identifier for each of the storage units, wherein the storage unit identifier for each storage unit uniquely identifies content of the storage unit; determine mappings between the storage unit identifiers to two or more block servers, wherein different sets of the storage unit identifiers map to different ones of the two or more block servers; and send the storage units and their corresponding storage unit identifiers to the two or more block servers based upon the mappings, wherein multiple client addresses associated with a same storage unit identifier resolve to a same block server location; and two or more block servers each comprising a processor, storage media, and a non-transitory machine-readable medium having stored therein instructions executable by the processor to cause the block server to; store in the storage media a storage unit from the metadata server and send location information on where the storage unit is stored on the block server in association with the storage unit identifier to the metadata server. - View Dependent Claims (18, 19)
Specification