Methods and systems for dynamic hashing in caching sub-systems
AssigneeNetApp, Inc.
InventorsArindam Banerjee, Donald R. Humlicek
Life of this patent
Estimating the term…
Abstract
Methods and systems for dynamic hashing in cache sub-systems are provided. The method includes analyzing a plurality of input/output (I/O) requests for determining a pattern indicating if the I/O requests are random or sequential; and using the pattern for dynamically changing a first input to a second input for computing a hash index value by a hashing function that is used to index into a hashing data structure to look up a cache block to cache an I/O request to read or write data, where for random I/O requests, a segment size is the first input to a hashing function to compute a first hash index value and for sequential I/O requests, a stripe size is used as the second input for computing a second hash index value.
Claims21
A machine implemented method, comprising:
- analyzing a plurality of input/output (I/O) requests for determining a pattern indicating if the I/O requests are random or sequential;
- and
- using the pattern for dynamically changing a first input to a second input for computing a hash index value by a hashing function that is used to index into a hashing data structure to look up a cache block to cache an I/O request to read or write data;
- wherein for random I/O requests, a segment size is the first input to a hashing function to compute a first hash index value and for sequential I/O requests, a stripe size is used as the second input for computing a second hash index value.
A non-transitory, machine readable storage medium having stored thereon instructions for performing a method, comprising machine executable code which when executed by at least one machine, causes the machine to:
- analyze a plurality of input/output (I/O) requests for determining a pattern indicating if the I/O requests are random or sequential;
- and
- use the pattern for dynamically changing a first input to a second input for computing a hash index value by a hashing function that is used to index into a hashing data structure to look up a cache block to cache an I/O request to read or write data;
- wherein for random I/O requests, a segment size is the first input to a hashing function to compute a first hash index value and for sequential I/O requests, a stripe size is used as the second input for computing a second hash index value.
A system comprising:
- a memory containing machine readable medium comprising machine executable code having stored thereon instructions;
- and
- a processor module coupled to the memory, the processor module configured to execute the machine executable code to:
- analyze a plurality of input/output (I/O) requests for determining a pattern indicating if the I/O requests are random or sequential;
- and
- use the pattern for dynamically changing a first input to a second input for computing a hash index value by a hashing function that is used to index into a hashing data structure to look up a cache block to cache an I/O request to read or write data;
- wherein for random I/O requests, a segment size is the first input to a hashing function to compute a first hash index value and for sequential I/O requests, a stripe size is used as the second input for computing a second hash index value.
Dependencies are inferred from the claim text.