Simulating hierarchical structures in key value stores
First Claim
1. A computer-implemented method, comprising:
- under the control of one or more computer systems configured with executable instructions,storing a plurality of key-value pairs in a key-value store, a first subset of the plurality of key-value pairs including a first key and a first value, the first key indicating an object name and the first value indicating a location where an object associated with the object name of the first key is stored, a second subset of the plurality of key-value pairs including a second key and a second value, the second key indicating a delimiter and a directory name associated with a namespace, the second value indicating the namespace; and
in response to a first data retrieval request including the directory name and the delimiter;
querying the key-value store to determine that the directory name matches at least a key-value pair of the second subset of the plurality of key-value pairs;
as a result of the directory name matching at least the second key of the second subset of the plurality of key-value pairs, using the second key to determine the namespace associated with the second value;
mapping the directory name to the determined namespace of one or more objects associated with the first data retrieval request; and
retrieving, using the first subset of the plurality of key-value pairs, the one or more objects having the determined namespace and associated with the first data retrieval request from the location indicated by the first value.
1 Assignment
0 Petitions
Accused Products
Abstract
A key-value store is adapted to represent hierarchical structures, such as directory structures, to be associated with objects otherwise mapped to a flat keyspace. For example, one or more key-value pairs stored in the key-value store are designated to have a key indicating the name of a hierarchical structure, and an associated value that maps the structure to a namespace (e.g., of a group of objects to be associated with a directory). Inbound requests for operations related to the objects in a given namespace and defining the structure are checked against such “redirecting” key-value pairs to determine whether the structure is related to the namespace objects, and if so, the request is internally processed to perform the requested operations against the actual key-value pair(s) associated with the objects without necessitating identification of the objects with a fully qualified name as represented in the flat keyspace.
28 Citations
20 Claims
-
1. A computer-implemented method, comprising:
under the control of one or more computer systems configured with executable instructions, storing a plurality of key-value pairs in a key-value store, a first subset of the plurality of key-value pairs including a first key and a first value, the first key indicating an object name and the first value indicating a location where an object associated with the object name of the first key is stored, a second subset of the plurality of key-value pairs including a second key and a second value, the second key indicating a delimiter and a directory name associated with a namespace, the second value indicating the namespace; and in response to a first data retrieval request including the directory name and the delimiter; querying the key-value store to determine that the directory name matches at least a key-value pair of the second subset of the plurality of key-value pairs; as a result of the directory name matching at least the second key of the second subset of the plurality of key-value pairs, using the second key to determine the namespace associated with the second value; mapping the directory name to the determined namespace of one or more objects associated with the first data retrieval request; and retrieving, using the first subset of the plurality of key-value pairs, the one or more objects having the determined namespace and associated with the first data retrieval request from the location indicated by the first value. - View Dependent Claims (2, 3, 4)
-
5. A system, comprising:
at least one computing device configured to implement one or more services that; adapt a keyspace represented in a key-value store, the keyspace including a plurality of key-value pairs arranged in a flat hierarchy, to include a structure simulating a multi-level hierarchy within the keyspace, by at least; storing a key-value pair in the key-value store, the key-value pair having a key that indicates a redirect name for the structure and a value that indicates a namespace associated with the structure; and assigning a delimiter that, when invoked, activates a redirect for requests associated with the structure; and in response to a request, associated with the namespace, that invokes the delimiter; verify that a requested structure name defined in the request matches the redirect name for the structure; as a result of the requested structure name matches the redirect name for the structure, append, to the request, the redirect name for the structure to the namespace, thereby generating an appended request; and perform one or more actions associated with the request in accordance with the appended request. - View Dependent Claims (6, 7, 8, 9, 10, 11, 12)
-
13. A non-transitory computer-readable storage medium having stored thereon executable instructions that, as a result of being executed by one or more processors of a computer system, cause the computer system to at least:
-
simulate a multi-level hierarchy in a keyspace having a flat hierarchy and being represented in a key-value store, the keyspace including a plurality of key-value pairs, by at least; generating a redirecting key-value pair for storage in the key-value store, the redirecting key-value pair having a key that indicates a redirect name and a value that indicates a namespace; and assigning a delimiter that, when invoked, activates a redirect for requests associated with the redirecting key-value pair; and in response to a request invoking the delimiter; verify that a requested redirect name in the request matches the key of the redirecting key-value pair; and as a result of verifying that the requested redirect name in the request matches the key of the redirecting key-value pair, perform one or more in accordance with the request. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20)
-
Specification