Enabling placement control for consistent hashing-based object stores
First Claim
1. A method for controlling object placement, comprising:
- receiving a first request to store a first object in an object store which includes a plurality of nodes, wherein the object store determines a placement of the first object in one of the plurality of nodes based on an object namespace, wherein the object namespace includes a numerical namespace and a lexicographical namespace, wherein each node is assigned a corresponding subspace of the object namespace for storing objects;
upon determining that the first object specifies both a first numerical namespace value and a first lexicographical namespace value;
generating a second object, wherein the second object is a replica of the first object;
storing the first object in a first node of the plurality of nodes based on the first lexicographical namespace value, wherein the first lexicographical namespace value specifies the first node; and
storing the second object in a second node of the plurality of nodes based on the first numerical namespace value;
receiving a second request to store a third object in the object store; and
upon determining that the third object specifies a second numerical namespace value and does not specify a lexicographical namespace value, storing the third object in a third node of the plurality of nodes based on the second numerical namespace value.
1 Assignment
0 Petitions
Accused Products
Abstract
Techniques are disclosed herein for controlling object placement in object storage. A placement component of a storage application receives a request to store a first object in an object store having multiple nodes. The object store determines a placement of the first object to one of the nodes based on an object namespace including a numerical namespace and a lexicographical namespace. Each node is assigned a corresponding subspace of the object namespace for storing objects. The first object includes a numerical namespace value and a lexicographical namespace value. A second object (a replica of the first object) is generated. The first object is stored to a first node based on the lexicographical namespace value. The second object is stored to a second node based on the numerical namespace value.
-
Citations
20 Claims
-
1. A method for controlling object placement, comprising:
-
receiving a first request to store a first object in an object store which includes a plurality of nodes, wherein the object store determines a placement of the first object in one of the plurality of nodes based on an object namespace, wherein the object namespace includes a numerical namespace and a lexicographical namespace, wherein each node is assigned a corresponding subspace of the object namespace for storing objects; upon determining that the first object specifies both a first numerical namespace value and a first lexicographical namespace value; generating a second object, wherein the second object is a replica of the first object; storing the first object in a first node of the plurality of nodes based on the first lexicographical namespace value, wherein the first lexicographical namespace value specifies the first node; and storing the second object in a second node of the plurality of nodes based on the first numerical namespace value; receiving a second request to store a third object in the object store; and upon determining that the third object specifies a second numerical namespace value and does not specify a lexicographical namespace value, storing the third object in a third node of the plurality of nodes based on the second numerical namespace value. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A computer program product, comprising:
a computer-readable storage medium having computer-readable program code embodied therewith, the computer-readable program code configured to perform an operation for controlling object placement, comprising; receiving a first request to store a first object in an object store which includes a plurality of nodes, wherein the object store determines a placement of the first object in one of the plurality of nodes based on an object namespace, wherein the object namespace includes a numerical namespace and a lexicographical namespace, wherein each node is assigned a corresponding subspace of the object namespace for storing objects; upon determining that the first object specifies both a first numerical namespace value and a first lexicographical namespace value; generating a second object, wherein the second object is a replica of the first object, storing the first object in the first node of the plurality of nodes based on the first lexicographical namespace value, wherein the first lexicographical namespace value specifies the first node, and storing the second object in a second node of the plurality of nodes based on the first numerical namespace value, receiving a second request to store a third object in the object store; and upon determining that the third object specifies a second numerical namespace value and does not specify a lexicographical namespace value, storing the third object in a third node of the plurality of nodes based on the second numerical namespace value. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
15. A system, comprising:
-
a processor; and a memory storing a program, which, when executed on the processor, performs an operation for controlling object placement, the operation comprising; receiving a first request to store a first object in an object store which includes a plurality of nodes, wherein the object store determines a placement of the first object in one of the plurality of nodes based on an object namespace, wherein the object namespace includes a numerical namespace and a lexicographical namespace, wherein each node is assigned a corresponding subspace of the object namespace for storing objects; upon determining that the first object specifies both a first numerical namespace value and a first lexicographical namespace value; generating a second object, wherein the second object is a replica of the first object, storing the first object in a first node of the plurality of nodes based on the first lexicographical namespace value, wherein the first lexicographical namespace value specifies the first node, and storing the second object in a second node of the plurality of nodes based on the first numerical namespace value, receiving a second request to store a third object in the object store; and upon determining that the third object specifies a second numerical namespace value and does not specify a lexicographical namespace value, storing the third object in a third node of the plurality of nodes based on the second numerical namespace value. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification