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 as 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 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.
Claims20
A method for writing data to a storage pool, comprising:
- receiving a virtual identifier (ID) and an offset for an object, wherein the virtual ID comprises an object ID and a node ID;
- obtaining, using the node ID, an object layout (OL) for the object from a first storage server;
- generating a value using the object ID and the offset;
- identifying a second storage server in the storage pool using a global namespace layout (GL), the OL, and the 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, wherein the virtual ID comprises a node ID;
- obtaining, using the node ID, an object layout (OL) for the object from a first storage server;
- generating a value using the object ID and the offset ID;
- identifying a second storage server in the storage pool using a global namespace layout (GL), the OL, and the value;
- and
- issuing a read request to read data from the object in the second storage server, wherein the write 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;
- after storing the OL in the storage server:
- receiving a write request to write data to the object, wherein the write request comprises the object ID and an offset;
- generating a value using the object ID and the offset ID;
- identifying a second storage server in the storage pool using a global namespace layout (GL), the OL, and the 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.