| CPC G06F 3/0655 (2013.01) [G06F 3/0604 (2013.01); G06F 3/0679 (2013.01); G06F 16/2246 (2019.01)] | 19 Claims |

|
1. A system, comprising:
one or more storage devices respectively comprising a plurality of extents, wherein individual ones of the plurality of extents comprise a plurality of independently addressable, contiguous blocks;
at least one processor; and
a memory storing program instructions that when executed cause the at least one processor to implement an object store, the object store configured to:
write the respective independently addressable, contiguous blocks sequentially to update individual ones of the plurality of extents;
implement a data store using a data portion of the plurality of extents, the data store storing a plurality of elements respectively comprising one or more portions, wherein individual ones of the portions of the plurality of elements are stored in respective extents of the data portion of the plurality of extents, and wherein to update individual ones of the portions of the plurality of elements the object store is configured to update the independently addressable, contiguous blocks of the respective extents of the data portion of the plurality of extents sequentially;
implement an index using an index portion of the plurality of extents, wherein the index identifies the plurality of elements stored in the data store, and wherein to update a portion of respective portions of the index stored on individual ones of the index portion of the plurality of extents the object store is configured to:
identify a group of leaf nodes representing a contiguous key range to maximize a number of in-memory updates to the contiguous key range;
integrate the in-memory updates of the identified group of leaf nodes into index data for the portion of the index;
reserialize the index data into an updated group of leaf nodes to be sequentially written to the portion of the index; and
update the independently addressable, contiguous blocks of the index data for the portion of the index sequentially; and
provide an object storage interface to clients of the object store using the implemented index and data store.
|