Patent ID: 9606938
Date: 2017-03-28
CPC Classifications: G06F

Claim:
1. A method for use in managing caches in storage systems, the method comprising: reserving a set of block entries for a limited use in a reserved block entries list of a storage system during initialization of the storage system, wherein the reserved block entries list manages the set of block entries that are separate from a set of cache entries organized in a cache of the storage system, wherein the reserved block entries list is used in addition to the cache of the storage system to store data of the storage system and only upon unavailability of an available cache entry in the cache, wherein a portion of a memory of the storage system is reserved as the cache, wherein the cache is accessed by using a set of hash buckets, each hash bucket of the set of hash buckets including the set of cache entries, wherein a different portion of the memory of the storage system is reserved for the reserved block entries list, wherein the reserved block entries list is managed separately from the cache; based on a criterion, determining whether a cache entry is available for use in the cache of the storage system, wherein determining whether a cache entry is available for use in the cache of the storage system includes continuing to search for an available cache entry in the cache for a specific number of times until an available cache entry is found prior to the specific number of times exceeding a threshold value, wherein the threshold value is configured in the storage system, wherein the criterion is used for determining a hash bucket from the set of hash buckets for searching for an available cache entry; based on the determining, selecting a block entry as an available cache entry for use from the reserved block entries list upon determining that the cache of the storage system does not include a cache entry available for use; based on the determining, continuing to search the cache for an available cache entry upon determining that the reserved block entries list does not include a cache entry available for use, wherein the cache is continually searched by randomly selecting hash buckets from the set of hash buckets until an available cache entry is found; and providing the available cache entry to a user of the cache for storing data of the storage system.