Method and system for global namespace with consistent hashing
AssigneeDSSD, Inc.
InventorMichael W. Shapiro
Life of this patent
Estimating the term…
Abstract
A method for writing data to a storage pool. The method includes receiving a virtual identifier (ID) and an offset for an object, extracting a node identifier (ID) that identifies a first storage server in the storage pool from the virtual ID, obtaining an object layout (OL) for the object from the first storage server, hashing an object ID and an offset ID to obtain a hashed value, where the virtual ID comprises the object ID and where the offset ID is generated from the offset, identifying a second storage server in the storage pool using a global namespace layout (GL), the OL, and the hashed value, and issuing a write request to write data to the object in the second storage server, where the write request comprises the object ID and the offset.
Claims19
A method for writing data to a storage pool, comprising:
- receiving a virtual identifier (ID) and an offset for an object;
- extracting a node identifier (ID) that identifies a first storage server in the storage pool from the virtual ID;
- obtaining an object layout (OL) for the object from the first storage server;
- hashing an object ID and an offset ID to obtain a hashed value, wherein the virtual ID comprises the object ID and wherein the offset ID is generated from the offset;
- identifying a second storage server in the storage pool using a global namespace layout (GL), the OL, and the hashed value;
- and
- issuing a write request to write data to the object in the second storage server, wherein the write request comprises the object ID and the offset.
A method for reading data to a storage pool, comprising:
- receiving a virtual ID and an offset for an object;
- extracting a node identifier (ID) that identifies a first storage server in the storage pool from the virtual ID;
- obtaining an object layout (OL) for the object from the first storage server;
- hashing an object ID and an offset ID to obtain a hashed value, wherein the virtual ID comprises the object ID and wherein the offset ID is generated from the offset;
- identifying, using consistent hashing, a second storage server in the storage pool using a global namespace layout (GL), the OL, and the hashed value;
- and
- issuing a read request to read data from the object in the second storage server, wherein the read request comprises the object ID and the offset.
A method for writing data to a storage pool, comprising:
- receiving a request for a new object;
- selecting a storage server from the storage pool, wherein the storage server is identified using a Node ID;
- requesting the storage server to generate a virtual ID, wherein the virtual ID comprises the node ID and an object ID for the object;
- generating an object layout (OL) for the object using the virtual ID;
- storing the OL in the storage server;
- receiving a write request to write data to the object, wherein the write request comprises an offset;
- generating an offset ID from the offset;
- hashing the object ID and the offset ID to obtain a hashed value;
- identifying a second storage server in the storage pool using a global namespace layout (GL), the OL, and the hashed value;
- and
- issuing a write request to write the data to the object in the second storage server, wherein the write request comprises the object ID and the offset.
Dependencies are inferred from the claim text.