Methods and apparatus for information storage and retrieval using a caching technique with external-chain hashing and dynamic resource-dependent data shedding
First Claim
1. A computer-implemented method for storing and retrieving data in a computer system'"'"'s memory, at least some of the data aging-out, the method comprising executing on a computer processor the steps of:
- determining an age-out time of data,identifying an initial location in the memory,searching memory for non-aged-out data with a matching key,identifying at least some aged-out data using the age-out time while searching for the non-aged-out data,determining a maximum number of data items so as to enable an auxiliary parallel global background garbage collector to select at least one portion of the memory containing an excessive number of data items in light of the maximum number of data items,accessing at least some of the selected portions of the memory using the garbage collector, which executes asynchronously as a separate thread with respect to searching for non-aged-out data with a matching key,identifying the aged-out data using the garbage collector when a memory portion is accessed by the garbage collector.
0 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus for performing storage and retrieval in an information storage system cache is disclosed that uses the hashing technique with the external chaining method for collision resolution. In order to prevent performance deterioration due to an unrestrained growth in the length of chains, an on-the-fly record removal technique is combined with background chain-pruning processes that continually trim long chains to keep chain lengths at an acceptable equilibrium without triggering abrupt, disruptive action at the time the system senses that it is stressed. More specifically, each insertion, retrieval, or deletion of a record is an occasion to rid an entire linked list of its records that have aged out. Additionally, concurrent background processes continually navigate the hash table, trimming those chains that are deemed excessively long. The aggressiveness of chain-pruning varies dynamically as the local and global state of the system fluctuates, pruning more when chains are long and the system is heavily loaded, and pruning less when chains are short and the system load is light.
49 Citations
20 Claims
-
1. A computer-implemented method for storing and retrieving data in a computer system'"'"'s memory, at least some of the data aging-out, the method comprising executing on a computer processor the steps of:
-
determining an age-out time of data, identifying an initial location in the memory, searching memory for non-aged-out data with a matching key, identifying at least some aged-out data using the age-out time while searching for the non-aged-out data, determining a maximum number of data items so as to enable an auxiliary parallel global background garbage collector to select at least one portion of the memory containing an excessive number of data items in light of the maximum number of data items, accessing at least some of the selected portions of the memory using the garbage collector, which executes asynchronously as a separate thread with respect to searching for non-aged-out data with a matching key, identifying the aged-out data using the garbage collector when a memory portion is accessed by the garbage collector. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A computer-implemented method for pruning data in a computer system'"'"'s memory, at least some of the data aging-out, the method comprising executing on a computer processor the steps of:
-
searching memory for non-aged-out data without using an auxiliary parallel global background garbage collector, determining a maximum number of data items for an auxiliary parallel global background garbage collector that executes asynchronously as a separate thread with respect to searching for non-aged-out data, to select at least one portion of the memory for identifying aged-out data contained therein, accessing at least some of the selected memory portions containing an excessive number of data items in light of the maximum number of data items using the garbage collector, identifying aged-out data using the garbage collector when a memory portion is accessed by the garbage collector. - View Dependent Claims (10, 11)
-
-
12. A computer-implemented method for storing and retrieving information records in a computer system'"'"'s memory organized as at least one linked list, at least some of the records stored in memory aging-out, the method comprising executing on a computer processor the steps of:
-
determining an age-out time of records, searching a linked list for a non-aged-out target record with a matching key, identifying at least some of the aged-out records using the age-out time while searching for the target record, determining a maximum linked list length so as to enable an auxiliary parallel global background garbage collector, which executes asynchronously as a separate thread with respect to searching for a non-aged-out target record with a matching key, to select at least one linked list for identifying aged-out records, accessing at least some of the linked lists whose length is excessive in light of the maximum linked list length using the garbage collector, identifying aged-out records using the garbage collector when a linked list is accessed by the garbage collector. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20)
-
Specification