Consistent data storage in an object cache
AssigneeInktomi Corporation
InventorsPeter Mattis, John Plevyak, Matthew Haines, Adam Beguelin, Brian Totty, David Gourley
Life of this patent
Estimating the term…
Loading patent…
AssigneeInktomi Corporation
InventorsPeter Mattis, John Plevyak, Matthew Haines, Adam Beguelin, Brian Totty, David Gourley
Estimating the term…
A method for consistently storing cached objects in the presence of failures is provided. This method ensures atomic object consistency--in the event of failure and restart, an object will either be completely present or completely absent from the cache, never truncated or corrupted. Furthermore, this consistency comes without any time-consuming data structure reconstruction on restart. In this scheme, objects are indexed by a directory table that is stored in main memory and mapped to non-volatile storage, and changes to the directory table are buffered into an open directory that is stored in main memory. Cache objects are either stored in volatile aggregation buffers or in segments of non-volatile disk storage called arenas. Objects are first coalesced into memory-based aggregation buffers, and later committed to disk. Locking is used to control parallel storage to aggregation buffers. Directory entries pointing to objects are only permitted to be written to persistent disk storage after the target objects are themselves committed to disk, preventing dangling pointers. Periodically, when the contents of open directory entries point to objects that are stably stored on disk, the open directory entries are copied into the directory table and committed to non-volatile storage. The disclosure also encompasses a computer program product, computer apparatus, and computer data signal configured similarly.
In a cache for information objects that comprises a directory table that indexes each of the information objects in one of a plurality of buckets, an open directory comprising a list of changes associated with each of the buckets, a set of volatile object aggregation buffers, and a set of disk-based object pools, a method for ensuring the integrity of cache storage in the presence of software failures, comprising the steps of:
In a cache for information objects that comprises a directory table that indexes each of the information objects in one of a plurality of buckets, an open directory comprising a list of changes associated with each of the buckets, a set of volatile object aggregation buffers, and a set of disk-based object pools, a method for ensuring the integrity of cache storage in the presence of software failures, comprising the steps of:
In a cache for information objects that comprises a directory table that indexes each of the information objects in one of a plurality of buckets, an open directory comprising a list of changes associated with each of the buckets, a set of volatile object aggregation buffers, and a set of disk-based object pools, a method for ensuring the integrity of cache storage in the presence of software failures, comprising the steps of:
In a cache for information objects comprising a directory table that indexes each of the information objects in one of a plurality of buckets, an open directory comprising a list of changes associated with each of the buckets, a set of volatile object aggregation buffers, and a set of disk-based object pools, a method of synchronizing the cache, comprising the steps of:
In a cache for information objects comprising a directory table that indexes each of the information objects in one of a plurality of blocks that is stored in one of a plurality of buckets, and an open directory comprising a list of changes associated with each of the buckets, a method of managing the cache, comprising the steps of:
A method for maintaining the integrity of a cache, comprising the steps of:
A method for implementing a cache of objects, the method comprising the steps of:
Dependencies are inferred from the claim text.