US 11,657,088 B1
Accessible index objects for graph data structures
Alazel Acheson, Redmond, WA (US); Mahendra Manshi Chheda, Sammamish, WA (US); Hyun Sik Kim, Seattle, WA (US); and Srikanth Mandadi, Redmond, WA (US)
Assigned to Amazon Technologies, Inc., Seattle, WA (US)
Filed by Amazon Technologies, Inc., Seattle, WA (US)
Filed on Nov. 8, 2017, as Appl. No. 15/807,364.
Int. Cl. G06F 16/00 (2019.01); G06F 16/901 (2019.01); G06F 16/23 (2019.01); G06F 16/903 (2019.01)
CPC G06F 16/9024 (2019.01) [G06F 16/2379 (2019.01); G06F 16/90335 (2019.01)] 19 Claims
OG exemplary drawing
 
1. A system, comprising:
a memory to store program instructions which, if performed by at least one processor, cause the at least one processor to perform a method configured to at least:
receive, at a storage node that stores at least some of a directory structure, a request to create an index object to include in the directory structure, wherein the directory structure comprises a plurality of data objects respectively comprising one or more links to other data objects of the plurality of data objects, wherein the request identifies one of the plurality of data objects as a parent object of the index object in the directory structure, wherein to create the index object the method is configured to update data for the parent object to include a link to the index object, wherein the index object comprises a plurality of alternative links to a subset of the plurality of data objects to access the subset of the plurality of data objects via the alternative links, and wherein the index object does not provide a path for access to an additional data object of the plurality of data objects excluded from the subset of the plurality of data objects;
receive, at the storage node subsequent to receiving the request, a query comprising a predicate and directed to the created index object, wherein individual data objects of the plurality of data objects respectively comprise an attribute value for an attribute identified by the predicate, and in response to the receipt of the query:
identify the subset of data objects according to the alternative links of the created index object, the identified subset not including the additional data object of the plurality of data objects;
evaluate the respective attribute values for the identified subset of data objects according to the predicate of the query applicable to the attribute of the identified subset of data objects indexed by the created index object; and
return a result of the query based, at least in part, on the evaluation of the respective attribute values for the identified subset of data objects.