IP Library › Granted Patent US 9,069,680
Granted Patent B2
US 9,069,680 · App. 13/963,875 · Granted Jun 30, 2015

Methods and systems for determining a cache size for a storage system

Inventors: Gokul Soundararajan (Sunnyvale, CA); Lakshmi Narayanan Bairavasundaram (Sunnyvale, CA); Vipul Mathur (Bangalore, IN)
Assignee: NetApp, Inc.
G06F12/0873G06F12/0811
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,069,680
App. No.
13/963,875
Granted
Jun 30, 2015
Kind
B2
Abstract

Technology for operating a cache sizing system is disclosed. In various embodiments, the technology monitors input/output (IO) accesses to a storage system within a monitor period; tracks an access map for storage addresses within the storage system during the monitor period; and counts a particular access condition of the IO accesses based on the access map during the monitor period. When sizing a cache of the storage system that enables the storage system to provide a specified level of service, the counting is for computing a working set size (WSS) estimate of the storage system.

Claims (39)

1. A method of operating a cache sizing system, comprising:

monitoring input/output (IO) accesses to a storage system within a monitor period;

tracking an access map for storage addresses within the storage system during the monitor period; and

counting a particular access condition of the IO accesses based on the access map during the monitor period, wherein, when sizing a cache of the storage system that enables the storage system to provide a specified level of service, the counting is for computing a working set size (WSS) estimate of the storage system.

2. The method of claim 1 , wherein tracking the access map is performed by tracking whether a storage address has been accessed by a particular type of access in a bitmap structure mapping a bit to the storage address.

3. The method of claim 2 , wherein the particular type of access includes read access or a write access.

4. The method of claim 2 , wherein counting the particular access condition includes updating a counter of IO accesses under the particular access condition, wherein the particular access condition includes whether a storage address being accessed has previously been accessed by the particular type of access.

5. The method of claim 1 , further comprising:

calculating the WSS estimate based on the tracking of the particular type of IO access;

fitting WSS estimates including the calculated WSS estimate to a WSS curve; and

calculating a miss ratio curve based on the WSS curve for sizing the cache of the storage system.

6. The method of claim 5 , further comprising iterating through the method of claim 5 to produce multiple miss ratio curves; and averaging the multiple miss ratio curves to generate a final miss ratio curve for sizing the optimal cache size.

7. The method of claim 6 , further comprising computing a variance of the multiple miss ratio curves in association with the final miss ratio curve for determining an accuracy of the final miss ratio curve.

8. The method of claim 1 , further comprising determining a write policy intended for the cache of the storage system after the monitor period ends; and calculating the WSS estimate for the write policy for the monitor period.

9. A method of operating a cache sizing system comprising:

monitoring input/output (IO) accesses to a storage system within a monitor period;

tracking a particular type of the IO accesses during the monitor period;

computing a working set size (WSS) estimate for a particular IO access condition based on the tracking of the particular type of the IO accesses;

fitting WSS estimates including the calculated WSS estimate to a WSS curve; and

computing a miss ratio curve based on the WSS curve for sizing a cache of the storage system.

10. The method of claim 9 , wherein tracking includes tracking the particular type of the IO accesses on a bit-per-block (BPB) bitmap; and wherein the BPB bitmap corresponds to storage addresses in sequence.

11. The method of claim 10 , wherein the storage addresses are hash addresses in sequence and wherein the hash addresses reference physical addresses of the storage system through a hash function.

12. The method of claim 10 , wherein the storage addresses in sequence are separated by a sampling interval in a storage address space of the storage system.

13. The method of claim 9 , wherein tracking the particular type of the IO accesses includes tracking whether a storage address has been written to by toggling a single bit in a write access BPB bitmap, the single bit corresponding to the storage address.

14. The method of claim 9 , wherein tracking the particular type of the IO accesses includes tracking whether a storage address has been read by toggling a single bit in a read access BPB bitmap, the single bit corresponding to the storage address.

15. The method of claim 9 , wherein calculating the WSS estimate for the particular type of IO access includes calculating the WSS estimate for IO accesses to metadata storage addresses.

16. The method of claim 9 , wherein calculating the WSS estimate for the particular type of IO access includes calculating the WSS estimate for prefetchable IO accesses.

17. The method of claim 9 , wherein calculating the WSS estimate for the particular type of IO access includes calculating the WSS estimate for IO accesses to a storage address of a pre-defined type.

18. The method of claim 9 , further comprising adjusting the WSS curve when the cache of the storage system is a multi-level cache, such that for each level of the multi-level cache, a slope of the WSS curve is set to a constant until WSS estimate reaches a cache level size of a previous level.

19. A cache sizing system, comprising:

a computer readable storage medium having instructions stored thereon;

wherein the instructions, when executed by a processor, are operable to:

monitor input/output (IO) accesses to a storage system within a monitor period;

track a particular type of the IO accesses to storage addresses of the storage system on a bit-per-block (BPB) bitmap during the monitor period, wherein the BPB bitmap maps to at least a portion of the storage addresses; and

update a counter of the IO accesses under an access condition for estimating a working set size (WSS) of a cache of the storage system, wherein the access condition includes whether a storage address being accessed has previously been accessed by the particular type of access.

20. The cache sizing system of claim 19 , wherein the instructions, when executed by a processor, are further operable to:

calculate the WSS estimate based on at least the counter;

fit WSS estimates including the calculated WSS estimate to a WSS curve; and

calculate a miss ratio curve based on the WSS curve for sizing an optimal cache size for a cache of the storage system.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 4, 2013
From: SOUNDARARAJAN, GOKUL; BAIRAVASUNDARAM, LAKSHMI NARAYANAN; MATHUR, VIPUL
To: NETAPP, INC.
Reel/Frame 031137/0434 →
Continuity (1)
Related Publication 20150046653A1 · Feb 12, 2015