A method and apparatus for performing storage and retrieval in an information storage system is disclosed that uses the hashing technique with the external chaining method for collision resolution. In order to prevent performance deterioration due to the presence of automatically expiring data items, a garbage collection technique is used that removes all expired records stored in the system in the external chain targeted by a probe into the data storage system. More particularly, each insertion, retrieval, or deletion of a record is an occasion to search an entire linked-list chain of records for expired items and then remove them. Because an expired data item will not remain in the system long term if the system is frequently probed, it is useful for large information storage systems that are heavily used, require the fast access provided by hashing, and cannot be taken off-line for removal of expired data. |
Citations|
| US5121495 | Oct 31, 1989 | Jun 9, 1992 | Bell Communications Research, Inc. | Methods and apparatus for information storage and retrieval utilizing hashing techniques | | US5202981 | Oct 23, 1989 | Apr 13, 1993 | International Business Machines Corporation | Process and apparatus for manipulating a boundless data stream in an object oriented programming system | | US5287499 | May 16, 1991 | Feb 15, 1994 | Bell Communications Research, Inc. | Methods and apparatus for information storage and retrieval utilizing a method of hashing and different collision avoidance schemes depending upon clustering in the hash table |
Referenced by|
| US6442553 | Aug 28, 1995 | Aug 27, 2002 | Fujitsu Limited | Hash system and hash method for transforming records to be hashed | | US6515963 | Jan 27, 1999 | Feb 4, 2003 | Cisco Technology, Inc. | Per-flow dynamic buffer management | | US6529995 | Jun 18, 1999 | Mar 4, 2003 | Storage Technology Corporation | Method and apparatus for maintaining and restoring mapping table entries and data in a raid system | | US6611837 | Dec 29, 2000 | Aug 26, 2003 | International Business Machines Corporation | System and method for managing hierarchical objects | | US6625592 | Aug 10, 1999 | Sep 23, 2003 | Harris-Exigent, Inc. | System and method for hash scanning of shared memory interfaces | | US6745189 | Dec 29, 2000 | Jun 1, 2004 | International Business Machines Corporation | System and method for enabling multi-indexing of objects | | US6823328 | Dec 29, 2000 | Nov 23, 2004 | International Business Machines Corporation | System and method for enabling unified access to multiple types of data | | US6836776 | May 8, 2003 | Dec 28, 2004 | International Business Machines Corporation | System and method for managing hierarchical objects | | US6865676 | Mar 28, 2000 | Mar 8, 2005 | Koninklijke Philips Electronics N.V. | Protecting content from illicit reproduction by proof of existence of a complete data set via a linked list | | US6874072 | Mar 23, 2001 | Mar 29, 2005 | International Business Machines Corporation | Method, apparatus and article of manufacture for managing a reusable linear access storage medium | | US6915302 | Oct 1, 1999 | Jul 5, 2005 | International Business Machines Corporation | Method, system, and program for accessing files in a file system | | US6931393 | Dec 29, 2000 | Aug 16, 2005 | International Business Machines Corporation | System and method for enabling statistical matching | | US6963876 | Dec 29, 2000 | Nov 8, 2005 | International Business Machines Corporation | System and method for searching extended regular expressions | | US7010606 | Dec 29, 2000 | Mar 7, 2006 | International Business Machines Corporation | System and method for caching a network connection | | US7016917 | Dec 29, 2000 | Mar 21, 2006 | International Business Machines Corporation | System and method for storing conceptual information | | US7039764 | Jan 17, 2002 | May 2, 2006 | Nokia Corporation | Near-perfect, fixed-time searching algorithm using hashing, LRU and cam-based caching | | US7209932 | Mar 25, 2002 | Apr 24, 2007 | International Business Machines Corporation | Method, system, and program for allocating tasks to a plurality of processors | | US7216207 | Mar 8, 2004 | May 8, 2007 | International Business Machines Corporation | System and method for fast, secure removal of objects from disk storage | | US7246075 | Jun 23, 2000 | Jul 17, 2007 | North Carolina A&T State University | System for scheduling multiple time dependent events | | US7370048 | May 27, 2005 | May 6, 2008 | International Business Machines Corporation | File storage method and apparatus | | US7460534 | Feb 4, 1999 | Dec 2, 2008 | 3Com Corporation | Method for statistical switching | | US7549053 | Sep 27, 2005 | Jun 16, 2009 | United States Postal Service | Method and system for efficiently retrieving secured data by securely pre-processing provided access information | | US7587408 | Feb 28, 2003 | Sep 8, 2009 | United States Postal Service | Method and system for storing and retrieving data using hash-accessed multiple data stores | | US7664731 | Sep 22, 2005 | Feb 16, 2010 | United States Postal Service | Method and system for storing and retrieving data using hash-accessed multiple data stores | | US7827108 | Nov 21, 2008 | Nov 2, 2010 | Visa U.S.A. Inc. | System and method of validating a relationship between a user and a user account at a financial institution | | US7856027 | Feb 25, 2008 | Dec 21, 2010 | International Business Machines Corporation | Inbound blocking of data received from a LAN in a multi-processor virtualization environment | | US8019768 | Dec 12, 2003 | Sep 13, 2011 | Unisys Corporation | Bidirectional data structure processing | | US8117462 | Sep 22, 2005 | Feb 14, 2012 | United States Postal Service | Delivery point validation system | | US8165146 | Jan 16, 2003 | Apr 24, 2012 | Lightwaves Systems Inc. | System and method for storing/caching, searching for, and accessing data |
Claims1. An information storage and retrieval system, the system comprising: - a linked list to store and provide access to records stored in a memory of the system, at least some of the records automatically expiring,
- a record search means utilizing a search key to access the linked list,
- the record search means including a means for identifying and removing at least some of the expired ones of the records from the linked list when the linked list is accessed, and
- means, utilizing the record search means, for accessing the linked list and, at the same time, removing at least some of the expired ones of the records in the linked list.
2. The information storage and retrieval system according to claim 1 further including means for dynamically determining maximum number for the record search means to remove in the accessed linked list of records. 3. A method for storing and retrieving information records using a linked list to store and provide access to the records, at least some of the records automatically expiring, the method comprising the steps of: - accessing the linked list of records,
- identifying at least some of the automatically expired ones of the records, and
- removing at least some of the automatically expired records from the linked list when the linked list is accessed.
4. The method according to claim 3 further including the step of dynamically determining maximum number of expired ones of the records to remove when the linked list is accessed. 5. An information storage and retrieval system, the system comprising: - a hashing means to provide access to records stored in a memory of the system and using an external chaining technique to store the records with same hash address, at least some of the records automatically expiring,
- a record search means utilizing a search key to access a linked list of records having the same hash address,
- the record search means including means for identifying and removing at least some expired ones of the records from the linked list of records when the linked list is accessed, and
- meals, utilizing the record search means, for inserting, retrieving, and deleting records from the system and, at the same time, removing at least some expired ones of the records in the accessed linked list of records.
6. The information storage and retrieval system according to claim 5 further including means for dynamically determining maximum number for the record search means to remove in the accessed linked list of records. 7. A method for storing and retrieving information records using a hashing technique to provide access to the records and using an external chaining technique to store the records with same hash address, at least some of the records automatically expiring, the method comprising the steps of: - accessing a linked list of records having same hash address,
- identifying at least some of the automatically expired ones of the records,
- removing at least some of the automatically expired records from the linked list when the linked list is accessed, and
- inserting, retrieving or deleting one of the records from the system following the step of removing.
8. The method according to claim 7 further including the step of dynamically determining maximum number of expired ones of the records to remove when the linked list is accessed. |