Patent ID: 9223686
Filing Date: 2015-12-29
Classification: G06F

Abstract:
1. A system for determining storage and removal of data from a cache memory, comprising: one or more computing devices, wherein the one or more computing devices comprise: one or more processors; and one or more memories, wherein the one or more memories include instructions that upon execution cause the one or more computing devices to: generate a hierarchical set of slots, each slot configured to store at least an identifier for a specific group of data that is insertable into a cache, wherein each identifier is associated with a usage attribute indicative of an amount of usage of the specific group of data, wherein the hierarchical set of slots includes: a first designated set of slots for storing identifiers for data that is stored in solid state storage, a second designated set of slots for storing identifiers for data that is potentially insertable into the solid state storage, and a third designated set of slots for storing identifiers that are potentially removable from the hierarchical set; at least one of the slots of the hierarchical set being designated as an insertion point for an identifier into the hierarchical set; at least one of the slots of the hierarchical set being designated as a cache insertion point such that upon an identifier being placed within that slot, the specific group of data associated with that identifier is inserted into the solid state storage; and at least one of the slots of the hierarchical set being designated as a drop slot for potential removal of an identifier from the hierarchical set; receive a request for a specific data; store, in response to the usage attribute of an identifier associated with the specific data reaching a predetermined threshold, the identifier within the hierarchical set of slots at the insertion point within the second designated set of slots, the identifier being selectively movable within the hierarchical set of slots based upon the usage attribute of that identifier in comparison with the usage attribute of other identifiers within the hierarchical set, cause, in response to the identifier being placed at the cache insertion point, the specific data for the identifier to be placed into the solid state storage and the identifier to be stored within the first designated set of slots, cause, in response to the identifier being moved from the first designated set of slots to the second designated set of slots, the specific group of data for the identifier to be removed from the cache memory, and cause, in response to the identifier being moved within the third set of designated slots, the identifier to be placed at the insertion point.