Proofreading Results

Overview

Patent number: 20170285995
Title: Updating of pinned storage in flash based on changes to flash-to-disk capacity ratio
Processing time: 0.8 seconds
Number of claims: 3 independent and 20 total
Claims for fees: 3 independent and 20 total (excluding canceled and including multiple dependencies)
Abstract: 151 words (EXCEEDED LIMIT OF 150)

Claim Tree

  • Claim 1
    • Claim 2
      • Claim 3
      • Claim 4
      • Claim 5
        • Claim 6
        • Claim 7
  • Claim 8
    • Claim 9
      • Claim 10
      • Claim 11
      • Claim 12
        • Claim 13
        • Claim 14
  • Claim 15
    • Claim 16
      • Claim 17
      • Claim 18
        • Claim 19
        • Claim 20

Numbering and Dependency Errors

Punctuation warnings.
8. A non-transitory computer-readable medium storing a computer program for upgrading a data storage system, the computer-readable medium comprising:
program instructions for detecting a change in an amount of storage in a network storage device, the network storage device including disk storage and a solid state drive (SSD) cache, wherein pinned volumes in the network storage device are defined to have all active volume data cached in the SSD cache;
program instructions for determining an updated flash capacity of the SSD cache;
program instructions for determining an updated disk capacity of the disk storage;
program instructions for determining an updated flash-to-disk ratio (FDR) as the updated flash capacity divided by the updated disk capacity;
program instructions for determining an updated reserved space in SSD cache as a first function of the updated disk capacity, wherein an updated remaining space in SSD cache is based on the updated flash capacity and the updated reserved space; and
program instructions for determining an updated pinnable space in SSD cache based on the updated disk capacity and the updated FDR missing period?
Claim has different type than parent.
10. The method of claim 9, wherein the first function is a first constant and the second function is a second constant.
Punctuation warnings.
15. A network storage device comprising:
disk storage;
a solid state drive (SSD) cache, wherein pinned volumes in the network storage device are defined to have all active volume data cached in the SSD cache; and superfluous "and"?
a processor operable to detect a change in an amount of storage in a network storage device, the network storage device including disk storage and a solid state drive (SSD) cache, wherein pinned volumes in the network storage device are defined to have all active volume data cached in the SSD cache;
wherein the processor is operable to determine an updated flash capacity of the SSD cache;
wherein the processor is operable to determine an updated disk capacity of the disk storage;
wherein the processor is operable to determine an updated flash-to-disk ratio (FDR) as the updated flash capacity divided by the updated disk capacity; missing "and"?
wherein the processor is operable to determine an updated reserved space in SSD cache as a first function of the updated disk capacity, wherein an updated remaining space in SSD cache is based on the updated flash capacity and the updated reserved space; and superfluous "and"?
wherein the processor is operable to determine an updated pinnable space in SSD cache based on the updated disk capacity and the updated FDR.

Antecedent Basis Errors

Click on a yellow, red, or red-underlined phrase below, and we'll help you diagnose the error.
  • Underline: Indefinite noun phrases for diagnosing errors.
  • Green Highlight: We found an exact match so likely no AB error (you should confirm).
  • Yellow Highlight: We found a partial match so there may be an AB error.
  • Red Highlight: We did not find a partial match so there is likely an AB error.
  • Red Underline: We found a possibly ambigous noun phrase (many false alarms for this).

1.A method for managing memory allocation in a network storage device, the method comprising:
detecting a change in an amount of storage in a network storage device, the network storage device including disk storage and a solid state drive (SSD) cache, wherein pinned volumes in the network storage device are defined to have all active volume data cached in the SSD cache;
determining an updated flash capacity of the SSD cache;
determining an updated disk capacity of the disk storage;
determining an updated flash-to-disk ratio (FDR) as the updated flash capacity divided by the updated disk capacity;
determining an updated reserved space in SSD cache as a first function of the updated disk capacity, wherein an updated remaining space in SSD cache is based on the updated flash capacity and the updated reserved space; and
determining an updated pinnable space in SSD cache based on the updated disk capacity and the updated FDR.

2.The method of claim 1, wherein determining an updated pinnable space in SSD cache further comprises:
determining the updated pinnable space in SSD cache as a second function of the updated remaining space.

3.The method of claim 2, wherein the first function is a first constant and the second function is a second constant.

4.The method of claim 2, further comprising:
setting the updated pinnable space to zero when the updated pinnable space initially determined is negative; and
disabling pinning to the SSD cache of volumes stored in disk storage.

5.The method of claim 2, further comprising:
determining a current amount of pinned data in the SSD cache;
determining that the current amount of pinned volumes is greater than the updated pinnable space; and
disabling pinning to the SSD cache one or more of the currently pinned volumes to align with the updated pinnable space.

6.The method of claim 5, further comprising:
disabling pinning of all currently pinned volumes.

7.The method of claim 5, further comprising:
iteratively unpinning pinned volumes of lowest priority until the current amount of pinned volumes updated to reflect one or more unpinned volumes is lower than the updated pinnable space.

8.A non-transitory computer-readable medium storing a computer program for upgrading a data storage system, the computer-readable medium comprising:
program instructions for detecting a change in an amount of storage in a network storage device, the network storage device including disk storage and a solid state drive (SSD) cache, wherein pinned volumes in the network storage device are defined to have all active volume data cached in the SSD cache;
program instructions for determining an updated flash capacity of the SSD cache;
program instructions for determining an updated disk capacity of the disk storage;
program instructions for determining an updated flash-to-disk ratio (FDR) as the updated flash capacity divided by the updated disk capacity;
program instructions for determining an updated reserved space in SSD cache as a first function of the updated disk capacity, wherein an updated remaining space in SSD cache is based on the updated flash capacity and the updated reserved space; and
program instructions for determining an updated pinnable space in SSD cache based on the updated disk capacity and the updated FDR

9.The computer-readable medium of claim 8, wherein program instructions for determining an updated pinnable space in SSD cache further comprises:
program instructions for determining the updated pinnable space in SSD cache as a second function of the updated remaining space.

10.The method of claim 9, wherein the first function is a first constant and the second function is a second constant.

11.The computer-readable medium of claim 9, further comprising:
program instructions for setting the updated pinnable space to zero when the updated pinnable space initially determined is negative; and
program instructions for disabling pinning to the SSD cache of volumes stored in disk storage.

12.The computer-readable medium of claim 9, further comprising:
program instructions for determining a current amount of pinned data in the SSD cache;
program instructions for determining that the current amount of pinned volumes is greater than the updated pinnable space; and
program instructions for disabling pinning to the SSD cache one or more of the currently pinned volumes to align with the updated pinnable space.

13.The computer-readable medium of claim 12, further comprising:
program instructions for disabling pinning of all currently pinned volumes.

14.The computer-readable medium of claim 12, further comprising:
program instructions for iteratively unpinning pinned volumes of lowest priority until the current amount of pinned volumes updated to reflect one or more unpinned volumes is lower than the updated pinnable space.

15.A network storage device comprising:
disk storage;
a solid state drive (SSD) cache, wherein pinned volumes in the network storage device are defined to have all active volume data cached in the SSD cache; and
a processor operable to detect a change in an amount of storage in a network storage device, the network storage device including disk storage and a solid state drive (SSD) cache, wherein pinned volumes in the network storage device are defined to have all active volume data cached in the SSD cache;
wherein the processor is operable to determine an updated flash capacity of the SSD cache;
wherein the processor is operable to determine an updated disk capacity of the disk storage;
wherein the processor is operable to determine an updated flash-to-disk ratio (FDR) as the updated flash capacity divided by the updated disk capacity;
wherein the processor is operable to determine an updated reserved space in SSD cache as a first function of the updated disk capacity, wherein an updated remaining space in SSD cache is based on the updated flash capacity and the updated reserved space; and
wherein the processor is operable to determine an updated pinnable space in SSD cache based on the updated disk capacity and the updated FDR.

16.The network storage device of claim 15, wherein the processor is further operable to determine the updated pinnable space in SSD cache as a second function of the updated remaining space.

17.The network storage device of claim 16, wherein the processor is further operable to:
set the updated pinnable space to zero when the updated pinnable space initially determined is negative; and
disable pinning to the SSD cache of volumes stored in disk storage.

18.The network storage device of claim 16, wherein the processor is further operable to:
determine a current amount of pinned data in the SSD cache;
determine that the current amount of pinned volumes is greater than the updated pinnable space; and
disable pinning to the SSD cache one or more of the currently pinned volumes to align with the updated pinnable space.

19.The network storage device of claim 18, wherein the processor is further operable to:
disable pinning of all currently pinned volumes.

20.The network storage device of claim 18, wherein the processor is further operable to:
iteratively unpin pinned volumes of lowest priority until the current amount of pinned volumes updated to reflect one or more unpinned volumes is lower than the updated pinnable space.

Word Support in Detailed Description

Word Support in Entire Specification

Hover over any highlighted word to see support details.
Click any green or yellow word to see paragraphs providing support.
  • Green Highlight: Word appears more than 5 times.
  • Yellow Highlight: Word appears 1-5 times.
  • Red Highlight: Word not in spec.

Toggle between showing support in the detailed description section and the entire specification:

1.A method for managing memory allocation in a network storage device, the method comprising:
detecting a change in an amount of storage in a network storage device, the network storage device including disk storage and a solid state drive (SSD) cache, wherein pinned volumes in the network storage device are defined to have all active volume data cached in the SSD cache;
determining an updated flash capacity of the SSD cache;
determining an updated disk capacity of the disk storage;
determining an updated flash-to-disk ratio (FDR) as the updated flash capacity divided by the updated disk capacity;
determining an updated reserved space in SSD cache as a first function of the updated disk capacity, wherein an updated remaining space in SSD cache is based on the updated flash capacity and the updated reserved space; and
determining an updated pinnable space in SSD cache based on the updated disk capacity and the updated FDR.

2.The method of claim 1, wherein determining an updated pinnable space in SSD cache further comprises:
determining the updated pinnable space in SSD cache as a second function of the updated remaining space.

3.The method of claim 2, wherein the first function is a first constant and the second function is a second constant.

4.The method of claim 2, further comprising:
setting the updated pinnable space to zero when the updated pinnable space initially determined is negative; and
disabling pinning to the SSD cache of volumes stored in disk storage.

5.The method of claim 2, further comprising:
determining a current amount of pinned data in the SSD cache;
determining that the current amount of pinned volumes is greater than the updated pinnable space; and
disabling pinning to the SSD cache one or more of the currently pinned volumes to align with the updated pinnable space.

6.The method of claim 5, further comprising:
disabling pinning of all currently pinned volumes.

7.The method of claim 5, further comprising:
iteratively unpinning pinned volumes of lowest priority until the current amount of pinned volumes updated to reflect one or more unpinned volumes is lower than the updated pinnable space.

8.A non-transitory computer-readable medium storing a computer program for upgrading a data storage system, the computer-readable medium comprising:
program instructions for detecting a change in an amount of storage in a network storage device, the network storage device including disk storage and a solid state drive (SSD) cache, wherein pinned volumes in the network storage device are defined to have all active volume data cached in the SSD cache;
program instructions for determining an updated flash capacity of the SSD cache;
program instructions for determining an updated disk capacity of the disk storage;
program instructions for determining an updated flash-to-disk ratio (FDR) as the updated flash capacity divided by the updated disk capacity;
program instructions for determining an updated reserved space in SSD cache as a first function of the updated disk capacity, wherein an updated remaining space in SSD cache is based on the updated flash capacity and the updated reserved space; and
program instructions for determining an updated pinnable space in SSD cache based on the updated disk capacity and the updated FDR

9.The computer-readable medium of claim 8, wherein program instructions for determining an updated pinnable space in SSD cache further comprises:
program instructions for determining the updated pinnable space in SSD cache as a second function of the updated remaining space.

10.The method of claim 9, wherein the first function is a first constant and the second function is a second constant.

11.The computer-readable medium of claim 9, further comprising:
program instructions for setting the updated pinnable space to zero when the updated pinnable space initially determined is negative; and
program instructions for disabling pinning to the SSD cache of volumes stored in disk storage.

12.The computer-readable medium of claim 9, further comprising:
program instructions for determining a current amount of pinned data in the SSD cache;
program instructions for determining that the current amount of pinned volumes is greater than the updated pinnable space; and
program instructions for disabling pinning to the SSD cache one or more of the currently pinned volumes to align with the updated pinnable space.

13.The computer-readable medium of claim 12, further comprising:
program instructions for disabling pinning of all currently pinned volumes.

14.The computer-readable medium of claim 12, further comprising:
program instructions for iteratively unpinning pinned volumes of lowest priority until the current amount of pinned volumes updated to reflect one or more unpinned volumes is lower than the updated pinnable space.

15.A network storage device comprising:
disk storage;
a solid state drive (SSD) cache, wherein pinned volumes in the network storage device are defined to have all active volume data cached in the SSD cache; and
a processor operable to detect a change in an amount of storage in a network storage device, the network storage device including disk storage and a solid state drive (SSD) cache, wherein pinned volumes in the network storage device are defined to have all active volume data cached in the SSD cache;
wherein the processor is operable to determine an updated flash capacity of the SSD cache;
wherein the processor is operable to determine an updated disk capacity of the disk storage;
wherein the processor is operable to determine an updated flash-to-disk ratio (FDR) as the updated flash capacity divided by the updated disk capacity;
wherein the processor is operable to determine an updated reserved space in SSD cache as a first function of the updated disk capacity, wherein an updated remaining space in SSD cache is based on the updated flash capacity and the updated reserved space; and
wherein the processor is operable to determine an updated pinnable space in SSD cache based on the updated disk capacity and the updated FDR.

16.The network storage device of claim 15, wherein the processor is further operable to determine the updated pinnable space in SSD cache as a second function of the updated remaining space.

17.The network storage device of claim 16, wherein the processor is further operable to:
set the updated pinnable space to zero when the updated pinnable space initially determined is negative; and
disable pinning to the SSD cache of volumes stored in disk storage.

18.The network storage device of claim 16, wherein the processor is further operable to:
determine a current amount of pinned data in the SSD cache;
determine that the current amount of pinned volumes is greater than the updated pinnable space; and
disable pinning to the SSD cache one or more of the currently pinned volumes to align with the updated pinnable space.

19.The network storage device of claim 18, wherein the processor is further operable to:
disable pinning of all currently pinned volumes.

20.The network storage device of claim 18, wherein the processor is further operable to:
iteratively unpin pinned volumes of lowest priority until the current amount of pinned volumes updated to reflect one or more unpinned volumes is lower than the updated pinnable space.

1.A method for managing memory allocation in a network storage device, the method comprising:
detecting a change in an amount of storage in a network storage device, the network storage device including disk storage and a solid state drive (SSD) cache, wherein pinned volumes in the network storage device are defined to have all active volume data cached in the SSD cache;
determining an updated flash capacity of the SSD cache;
determining an updated disk capacity of the disk storage;
determining an updated flash-to-disk ratio (FDR) as the updated flash capacity divided by the updated disk capacity;
determining an updated reserved space in SSD cache as a first function of the updated disk capacity, wherein an updated remaining space in SSD cache is based on the updated flash capacity and the updated reserved space; and
determining an updated pinnable space in SSD cache based on the updated disk capacity and the updated FDR.

2.The method of claim 1, wherein determining an updated pinnable space in SSD cache further comprises:
determining the updated pinnable space in SSD cache as a second function of the updated remaining space.

3.The method of claim 2, wherein the first function is a first constant and the second function is a second constant.

4.The method of claim 2, further comprising:
setting the updated pinnable space to zero when the updated pinnable space initially determined is negative; and
disabling pinning to the SSD cache of volumes stored in disk storage.

5.The method of claim 2, further comprising:
determining a current amount of pinned data in the SSD cache;
determining that the current amount of pinned volumes is greater than the updated pinnable space; and
disabling pinning to the SSD cache one or more of the currently pinned volumes to align with the updated pinnable space.

6.The method of claim 5, further comprising:
disabling pinning of all currently pinned volumes.

7.The method of claim 5, further comprising:
iteratively unpinning pinned volumes of lowest priority until the current amount of pinned volumes updated to reflect one or more unpinned volumes is lower than the updated pinnable space.

8.A non-transitory computer-readable medium storing a computer program for upgrading a data storage system, the computer-readable medium comprising:
program instructions for detecting a change in an amount of storage in a network storage device, the network storage device including disk storage and a solid state drive (SSD) cache, wherein pinned volumes in the network storage device are defined to have all active volume data cached in the SSD cache;
program instructions for determining an updated flash capacity of the SSD cache;
program instructions for determining an updated disk capacity of the disk storage;
program instructions for determining an updated flash-to-disk ratio (FDR) as the updated flash capacity divided by the updated disk capacity;
program instructions for determining an updated reserved space in SSD cache as a first function of the updated disk capacity, wherein an updated remaining space in SSD cache is based on the updated flash capacity and the updated reserved space; and
program instructions for determining an updated pinnable space in SSD cache based on the updated disk capacity and the updated FDR

9.The computer-readable medium of claim 8, wherein program instructions for determining an updated pinnable space in SSD cache further comprises:
program instructions for determining the updated pinnable space in SSD cache as a second function of the updated remaining space.

10.The method of claim 9, wherein the first function is a first constant and the second function is a second constant.

11.The computer-readable medium of claim 9, further comprising:
program instructions for setting the updated pinnable space to zero when the updated pinnable space initially determined is negative; and
program instructions for disabling pinning to the SSD cache of volumes stored in disk storage.

12.The computer-readable medium of claim 9, further comprising:
program instructions for determining a current amount of pinned data in the SSD cache;
program instructions for determining that the current amount of pinned volumes is greater than the updated pinnable space; and
program instructions for disabling pinning to the SSD cache one or more of the currently pinned volumes to align with the updated pinnable space.

13.The computer-readable medium of claim 12, further comprising:
program instructions for disabling pinning of all currently pinned volumes.

14.The computer-readable medium of claim 12, further comprising:
program instructions for iteratively unpinning pinned volumes of lowest priority until the current amount of pinned volumes updated to reflect one or more unpinned volumes is lower than the updated pinnable space.

15.A network storage device comprising:
disk storage;
a solid state drive (SSD) cache, wherein pinned volumes in the network storage device are defined to have all active volume data cached in the SSD cache; and
a processor operable to detect a change in an amount of storage in a network storage device, the network storage device including disk storage and a solid state drive (SSD) cache, wherein pinned volumes in the network storage device are defined to have all active volume data cached in the SSD cache;
wherein the processor is operable to determine an updated flash capacity of the SSD cache;
wherein the processor is operable to determine an updated disk capacity of the disk storage;
wherein the processor is operable to determine an updated flash-to-disk ratio (FDR) as the updated flash capacity divided by the updated disk capacity;
wherein the processor is operable to determine an updated reserved space in SSD cache as a first function of the updated disk capacity, wherein an updated remaining space in SSD cache is based on the updated flash capacity and the updated reserved space; and
wherein the processor is operable to determine an updated pinnable space in SSD cache based on the updated disk capacity and the updated FDR.

16.The network storage device of claim 15, wherein the processor is further operable to determine the updated pinnable space in SSD cache as a second function of the updated remaining space.

17.The network storage device of claim 16, wherein the processor is further operable to:
set the updated pinnable space to zero when the updated pinnable space initially determined is negative; and
disable pinning to the SSD cache of volumes stored in disk storage.

18.The network storage device of claim 16, wherein the processor is further operable to:
determine a current amount of pinned data in the SSD cache;
determine that the current amount of pinned volumes is greater than the updated pinnable space; and
disable pinning to the SSD cache one or more of the currently pinned volumes to align with the updated pinnable space.

19.The network storage device of claim 18, wherein the processor is further operable to:
disable pinning of all currently pinned volumes.

20.The network storage device of claim 18, wherein the processor is further operable to:
iteratively unpin pinned volumes of lowest priority until the current amount of pinned volumes updated to reflect one or more unpinned volumes is lower than the updated pinnable space.

Phrase Support in Detailed Description

You can check other phrases by selecting any sequence of words in the claims below with your mouse.
Click any green or yellow phrase to see paragraphs providing support.
  • Green Highlight: Phrase appears more than 5 times.
  • Yellow Highlight: Phrase appears 1-5 times.
  • Red Highlight: Phrase not in spec.

Phrase:

Count:

1.A method for managing memory allocation in a network storage device, the method comprising:
detecting a change in an amount of storage in a network storage device, the network storage device including disk storage and a solid state drive (SSD) cache, wherein pinned volumes in the network storage device are defined to have all active volume data cached in the SSD cache;
determining an updated flash capacity of the SSD cache;
determining an updated disk capacity of the disk storage;
determining an updated flash-to-disk ratio (FDR) as the updated flash capacity divided by the updated disk capacity;
determining an updated reserved space in SSD cache as a first function of the updated disk capacity, wherein an updated remaining space in SSD cache is based on the updated flash capacity and the updated reserved space; and
determining an updated pinnable space in SSD cache based on the updated disk capacity and the updated FDR.

2.The method of claim 1, wherein determining an updated pinnable space in SSD cache further comprises:
determining the updated pinnable space in SSD cache as a second function of the updated remaining space.

3.The method of claim 2, wherein the first function is a first constant and the second function is a second constant.

4.The method of claim 2, further comprising:
setting the updated pinnable space to zero when the updated pinnable space initially determined is negative; and
disabling pinning to the SSD cache of volumes stored in disk storage.

5.The method of claim 2, further comprising:
determining a current amount of pinned data in the SSD cache;
determining that the current amount of pinned volumes is greater than the updated pinnable space; and
disabling pinning to the SSD cache one or more of the currently pinned volumes to align with the updated pinnable space.

6.The method of claim 5, further comprising:
disabling pinning of all currently pinned volumes.

7.The method of claim 5, further comprising:
iteratively unpinning pinned volumes of lowest priority until the current amount of pinned volumes updated to reflect one or more unpinned volumes is lower than the updated pinnable space.

8.A non-transitory computer-readable medium storing a computer program for upgrading a data storage system, the computer-readable medium comprising:
program instructions for detecting a change in an amount of storage in a network storage device, the network storage device including disk storage and a solid state drive (SSD) cache, wherein pinned volumes in the network storage device are defined to have all active volume data cached in the SSD cache;
program instructions for determining an updated flash capacity of the SSD cache;
program instructions for determining an updated disk capacity of the disk storage;
program instructions for determining an updated flash-to-disk ratio (FDR) as the updated flash capacity divided by the updated disk capacity;
program instructions for determining an updated reserved space in SSD cache as a first function of the updated disk capacity, wherein an updated remaining space in SSD cache is based on the updated flash capacity and the updated reserved space; and
program instructions for determining an updated pinnable space in SSD cache based on the updated disk capacity and the updated FDR

9.The computer-readable medium of claim 8, wherein program instructions for determining an updated pinnable space in SSD cache further comprises:
program instructions for determining the updated pinnable space in SSD cache as a second function of the updated remaining space.

10.The method of claim 9, wherein the first function is a first constant and the second function is a second constant.

11.The computer-readable medium of claim 9, further comprising:
program instructions for setting the updated pinnable space to zero when the updated pinnable space initially determined is negative; and
program instructions for disabling pinning to the SSD cache of volumes stored in disk storage.

12.The computer-readable medium of claim 9, further comprising:
program instructions for determining a current amount of pinned data in the SSD cache;
program instructions for determining that the current amount of pinned volumes is greater than the updated pinnable space; and
program instructions for disabling pinning to the SSD cache one or more of the currently pinned volumes to align with the updated pinnable space.

13.The computer-readable medium of claim 12, further comprising:
program instructions for disabling pinning of all currently pinned volumes.

14.The computer-readable medium of claim 12, further comprising:
program instructions for iteratively unpinning pinned volumes of lowest priority until the current amount of pinned volumes updated to reflect one or more unpinned volumes is lower than the updated pinnable space.

15.A network storage device comprising:
disk storage;
a solid state drive (SSD) cache, wherein pinned volumes in the network storage device are defined to have all active volume data cached in the SSD cache; and
a processor operable to detect a change in an amount of storage in a network storage device, the network storage device including disk storage and a solid state drive (SSD) cache, wherein pinned volumes in the network storage device are defined to have all active volume data cached in the SSD cache;
wherein the processor is operable to determine an updated flash capacity of the SSD cache;
wherein the processor is operable to determine an updated disk capacity of the disk storage;
wherein the processor is operable to determine an updated flash-to-disk ratio (FDR) as the updated flash capacity divided by the updated disk capacity;
wherein the processor is operable to determine an updated reserved space in SSD cache as a first function of the updated disk capacity, wherein an updated remaining space in SSD cache is based on the updated flash capacity and the updated reserved space; and
wherein the processor is operable to determine an updated pinnable space in SSD cache based on the updated disk capacity and the updated FDR.

16.The network storage device of claim 15, wherein the processor is further operable to determine the updated pinnable space in SSD cache as a second function of the updated remaining space.

17.The network storage device of claim 16, wherein the processor is further operable to:
set the updated pinnable space to zero when the updated pinnable space initially determined is negative; and
disable pinning to the SSD cache of volumes stored in disk storage.

18.The network storage device of claim 16, wherein the processor is further operable to:
determine a current amount of pinned data in the SSD cache;
determine that the current amount of pinned volumes is greater than the updated pinnable space; and
disable pinning to the SSD cache one or more of the currently pinned volumes to align with the updated pinnable space.

19.The network storage device of claim 18, wherein the processor is further operable to:
disable pinning of all currently pinned volumes.

20.The network storage device of claim 18, wherein the processor is further operable to:
iteratively unpin pinned volumes of lowest priority until the current amount of pinned volumes updated to reflect one or more unpinned volumes is lower than the updated pinnable space.

Reference Label Inconsistencies

Click any reference label or text to see matching paragraphs.
  • Label — A label that was found in the spec or in the drawings.
  • Detailed Description — Text associated with the label and a count of how many times it occurred. If No, the label was not present or was present but did not have any relevant text before it.

Missing ref labels? We look for "strict" ref labels by default. See our documentation for more information.

Label Detailed Description
Label Text Count
102 storage array 7
104 host 1
106 initiator 5
108 NVRAM 8
110 disk storage
HDD
hard drives
hard disk
[no text]
3
3
1
1
1
112 SSD
flash cache
SSDs
cache
SSD cache
flash allocation
flash space
one or more SSDs
5
4
2
1
1
1
1
1
122 general cache area 1
124 general purpose area 1
126 pinned data area 1
128 volume pinning logic 2
502 operation 2
504 operation 2
506 operation 1
508 operation 2
510 operation 1
512 operation 1
514 operation 1
516 operation 2
518 operation 1
602 operation 2
604 operation 2
606 operation 2
608 operation 1
610 operation 1
612 operation 1
614 operation 1
702 storage array
operation
more powerful storage array
upgraded storage array
4
2
1
1
704 operation 2
706 operation 2
708 operation 1
802 storage array 10
804 host 3
806 storage OS 1
808 CPU 2
810 output module 1
816 one or more power supplies 1
818 NVRAM
[no text]
2
1
820 active controller
controller
8
1
822 storage connect module 1
824 standby controller 5
836 applications
one or more applications
2
1
838 host operating system 1
840 computer program storage array manager
storage array manager
1
1
844 initiator 2
848 storage OS interface program
storage OS interface
1
1
850 CPU 2
852 NIC card 1
854 IO module 1
856 network 2
858 general-purpose RAM
RAM
1
1
1202 expansion shelves 2
1204 all flash shelf 1
1206 various all- disk shelves 1

Figure Number Inconsistencies

  • Brief Description — The figure number was included in the Brief Description of the Figures section of the specification.
  • Detailed Description — The figure number was used later in the specification.

We look for figure numbers that are a number optionally followed by a letter. Let us know if you use other formats and we can try to extend this.

Figure Brief
Description
Detailed
Description
1A Yes Yes
1B Yes Yes
1C Yes Yes
2 Yes Yes
3 Yes Yes
4 Yes Yes
5 Yes Yes
6 Yes Yes
7 Yes Yes
8 Yes Yes
9 Yes Yes

Patent Profanity

You can uncheck individual words below to focus on the limiting words that are important to you. See list of profane words:

  • all (33)
  • always (4)
  • best (1)
  • certain (2)
  • each (5)
  • embodiment (56)
  • embodiments (30)
  • entirely (1)
  • exclusive (2)
  • exemplary (5)
  • important (5)
  • invention (1)
  • least (2)
  • lowest (3)
  • maximum (22)
  • minimum (3)
  • most (2)
  • must (1)
  • necessarily (3)
  • need (1)
  • needed (1)
  • needs (4)
  • only (5)
  • optimal (1)
  • required (8)
  • requires (3)
  • should (10)
  • uniquely (1)
  • valuable (1)
  • very (1)

CLAIM OF PRIORITY

[0001] This application is a continuation of U.S. patent application Ser. No. 14/812,972, filed on Jul. 29, 2015, entitled “MANAGEMENT OF PINNED STORAGE IN FLASH BASED ON FLASH-TO-DISK CAPACITY RATIO,” which claims priority from U.S. Provisional Patent Application No. 62/163,075, filed May 18, 2015, and entitled “MANAGEMENT OF PINNED STORAGE IN FLASH BASED ON FLASH-TO-DISK CAPACITY RATIO,” all of which are herein incorporated by reference.

BACKGROUND

1. Field of the Invention

[0002] The present embodiments relate to methods, systems, and programs for managing resources in a networked storage system, and more particularly, methods, systems, and computer programs for managing a cache memory.

2. Description of the Related Art

[0003] Network storage, also referred to as network storage systems or storage systems, is computer data storage connected to a computer network providing data access to heterogeneous clients. Typically network storage systems process a large amount of Input/Output ( 10 ) requests, and high availability, speed, and reliability are desirable characteristics of network storage.

[0004] One way to provide quick access to data is by utilizing fast cache memory to store data. Because of significant difference in access times between a cache memory and a hard drive, the overall performance of the system is highly impacted by the cache hit ratio. Therefore, it is important to provide optimal utilization of the cache memory in order to have in cache the data in cache that is accessed most often.

[0005] Some network storage devices provide the ability to pin data to the cache, thereby guaranteeing that the pinned data will be accessed quickly because it is already stored in cache. However, pinning data to cache reserves valuable cache space that cannot be used for other applications. It is important for the optimum performance of the storage device that there is enough cache space to pin the amount of data requested by the user as well as enough cache space for the general operation of the storage device.

[0006] It is in this context that embodiments arise.

SUMMARY

[0007] Methods, devices, systems, and computer programs are presented for managing memory allocation in a network storage device. It should be appreciated that the present embodiments can be implemented in numerous ways, such as a method, an apparatus, a system, a device, or a computer program on a computer readable medium. Several embodiments are described below.

[0008] In one embodiment, a method for managing memory allocation in a network storage device is provided. The method includes an operation for receiving a request to pin a volume being stored in a network storage device, the network storage device including disk storage and a solid state drive (SSD) cache. The pinned volumes in the network storage device are defined to have all active volume data cached in the SSD cache. Further, the method includes an operation for determining the maximum amount of pinnable space in the SSD cache, where determining the maximum amount of pinnable space includes reserving a first area in the SSD cache based on an amount of disk storage for metadata operations, and determining the maximum amount of pinnable space based on an amount of storage remaining in the SSD cache after reserving the first area. Further yet, the method includes operations for determining an available pinning space that is the maximum amount of pinnable space minus a current amount of pinned data in the SSD cache, and for granting the request to pin the volume when the available pinning space is greater than or equal to a size of the volume.

[0009] In another embodiment, a network storage device includes disk storage, a solid state drive (SSD) cache, and a processor. The pinned volumes in the network storage device are defined to have all active volume data cached in the SSD cache. Further, the processor is operable to receive a request to pin a volume in the network storage device, the processor determining a maximum amount of pinnable space in the SSD cache in response to receiving the request. The processor determines the maximum amount of pinnable space by reserving a first area in the SSD cache based on an amount of disk storage, and by determining the maximum amount of pinnable space based on an amount of storage remaining in the SSD cache after reserving the first area. Additionally, the processor determines an available pinning space, which is the maximum amount of pinnable space minus a current amount of pinned data in the SSD cache. Further, the processor grants the request to pin the volume when the available pinning space is greater than or equal to a size of the volume.

[0010] In yet another embodiment, a non-transitory computer-readable storage medium storing a computer program for managing memory allocation in a network storage device is provided. The computer-readable storage medium includes program instructions for receiving a request to pin a volume being stored in a network storage device, the network storage device including disk storage and a solid state drive (SSD) cache, where pinned volumes in the network storage device are defined to have all active volume data cached in the SSD cache. Further, the storage medium includes program instructions for determining a maximum amount of pinnable space in the SSD cache, where determining the maximum amount of pinnable space includes reserving a first area in the SSD cache based on an amount of disk storage, and determining the maximum amount of pinnable space based on an amount of storage remaining in the SSD cache after reserving the first area. In addition, the storage medium further includes program instructions for determining an available pinning space that is the maximum amount of pinnable space minus a current amount of pinned data in the SSD cache, and program instructions for granting the request to pin the volume when the available pinning space is greater than or equal to a size of the volume.

[0011] Other aspects will become apparent from the following detailed description, taken in conjunction with the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

[0012] The embodiments may best be understood by reference to the following description taken in conjunction with the accompanying drawings.

[0013] FIG. 1A illustrates a storage array with pinned volumes, according to one embodiment.

[0014] FIGS. 1B-1C illustrate the read and write paths within the storage array, according to several embodiments.

[0015] FIG. 2 illustrates the allocation of pinnable space in the SSD cache based on the flash-to-disk ratio (FDR), according to one embodiment.

[0016] FIG. 3 illustrates the increase in pinnable space after adding flash memory, according to one embodiment.

[0017] FIG. 4 illustrates the decrease in pinnable space after adding disk storage, according to one embodiment.

[0018] FIG. 5 is a flowchart for managing pinnable space in the SSD cache after detecting a change in the amount of flash memory or disk space, according to one embodiment.

[0019] FIG. 6 is a flowchart for processing a customer request to pin a volume, according to one embodiment.

[0020] FIG. 7 is a flowchart for managing memory allocation in a network storage device, according to one embodiment.

[0021] FIG. 8 illustrates the architecture of an all-flash storage array, according to one embodiment.

[0022] FIG. 9 is an example of the flexibility of the storage array, which can be expanded for scaling performance and for scaling capacity.

CLAIMS

1.A method for managing memory allocation in a network storage device, the method comprising:
detecting a change in an amount of storage in a network storage device, the network storage device including disk storage and a solid state drive (SSD) cache, wherein pinned volumes in the network storage device are defined to have all active volume data cached in the SSD cache;
determining an updated flash capacity of the SSD cache;
determining an updated disk capacity of the disk storage;
determining an updated flash-to-disk ratio (FDR) as the updated flash capacity divided by the updated disk capacity;
determining an updated reserved space in SSD cache as a first function of the updated disk capacity, wherein an updated remaining space in SSD cache is based on the updated flash capacity and the updated reserved space; and
determining an updated pinnable space in SSD cache based on the updated disk capacity and the updated FDR.

2.The method of claim 1, wherein determining an updated pinnable space in SSD cache further comprises:
determining the updated pinnable space in SSD cache as a second function of the updated remaining space.

3.The method of claim 2, wherein the first function is a first constant and the second function is a second constant.

4.The method of claim 2, further comprising:
setting the updated pinnable space to zero when the updated pinnable space initially determined is negative; and
disabling pinning to the SSD cache of volumes stored in disk storage.

5.The method of claim 2, further comprising:
determining a current amount of pinned data in the SSD cache;
determining that the current amount of pinned volumes is greater than the updated pinnable space; and
disabling pinning to the SSD cache one or more of the currently pinned volumes to align with the updated pinnable space.

6.The method of claim 5, further comprising:
disabling pinning of all currently pinned volumes.

7.The method of claim 5, further comprising:
iteratively unpinning pinned volumes of lowest priority until the current amount of pinned volumes updated to reflect one or more unpinned volumes is lower than the updated pinnable space.

8.A non-transitory computer-readable medium storing a computer program for upgrading a data storage system, the computer-readable medium comprising:
program instructions for detecting a change in an amount of storage in a network storage device, the network storage device including disk storage and a solid state drive (SSD) cache, wherein pinned volumes in the network storage device are defined to have all active volume data cached in the SSD cache;
program instructions for determining an updated flash capacity of the SSD cache;
program instructions for determining an updated disk capacity of the disk storage;
program instructions for determining an updated flash-to-disk ratio (FDR) as the updated flash capacity divided by the updated disk capacity;
program instructions for determining an updated reserved space in SSD cache as a first function of the updated disk capacity, wherein an updated remaining space in SSD cache is based on the updated flash capacity and the updated reserved space; and
program instructions for determining an updated pinnable space in SSD cache based on the updated disk capacity and the updated FDR

9.The computer-readable medium of claim 8, wherein program instructions for determining an updated pinnable space in SSD cache further comprises:
program instructions for determining the updated pinnable space in SSD cache as a second function of the updated remaining space.

10.The method of claim 9, wherein the first function is a first constant and the second function is a second constant.

11.The computer-readable medium of claim 9, further comprising:
program instructions for setting the updated pinnable space to zero when the updated pinnable space initially determined is negative; and
program instructions for disabling pinning to the SSD cache of volumes stored in disk storage.

12.The computer-readable medium of claim 9, further comprising:
program instructions for determining a current amount of pinned data in the SSD cache;
program instructions for determining that the current amount of pinned volumes is greater than the updated pinnable space; and
program instructions for disabling pinning to the SSD cache one or more of the currently pinned volumes to align with the updated pinnable space.

13.The computer-readable medium of claim 12, further comprising:
program instructions for disabling pinning of all currently pinned volumes.

14.The computer-readable medium of claim 12, further comprising:
program instructions for iteratively unpinning pinned volumes of lowest priority until the current amount of pinned volumes updated to reflect one or more unpinned volumes is lower than the updated pinnable space.

15.A network storage device comprising:
disk storage;
a solid state drive (SSD) cache, wherein pinned volumes in the network storage device are defined to have all active volume data cached in the SSD cache; and
a processor operable to detect a change in an amount of storage in a network storage device, the network storage device including disk storage and a solid state drive (SSD) cache, wherein pinned volumes in the network storage device are defined to have all active volume data cached in the SSD cache;
wherein the processor is operable to determine an updated flash capacity of the SSD cache;
wherein the processor is operable to determine an updated disk capacity of the disk storage;
wherein the processor is operable to determine an updated flash-to-disk ratio (FDR) as the updated flash capacity divided by the updated disk capacity;
wherein the processor is operable to determine an updated reserved space in SSD cache as a first function of the updated disk capacity, wherein an updated remaining space in SSD cache is based on the updated flash capacity and the updated reserved space; and
wherein the processor is operable to determine an updated pinnable space in SSD cache based on the updated disk capacity and the updated FDR.

16.The network storage device of claim 15, wherein the processor is further operable to determine the updated pinnable space in SSD cache as a second function of the updated remaining space.

17.The network storage device of claim 16, wherein the processor is further operable to:
set the updated pinnable space to zero when the updated pinnable space initially determined is negative; and
disable pinning to the SSD cache of volumes stored in disk storage.

18.The network storage device of claim 16, wherein the processor is further operable to:
determine a current amount of pinned data in the SSD cache;
determine that the current amount of pinned volumes is greater than the updated pinnable space; and
disable pinning to the SSD cache one or more of the currently pinned volumes to align with the updated pinnable space.

19.The network storage device of claim 18, wherein the processor is further operable to:
disable pinning of all currently pinned volumes.

20.The network storage device of claim 18, wherein the processor is further operable to:
iteratively unpin pinned volumes of lowest priority until the current amount of pinned volumes updated to reflect one or more unpinned volumes is lower than the updated pinnable space.

ABSTRACT

Methods, systems, and programs are presented for managing a storage device memory. One method includes an operation for receiving a request to pin a volume stored in the storage device. The device includes disk storage and a solid state drive (SSD) cache, where pinned volumes in the storage device have all active volume data in the SSD cache. Further, the method includes an operation for determining the maximum amount of pinnable space in the SSD cache, the maximum amount of pinnable space being calculated based on the sizes of the disk storage and the SSD cache. Further, the method includes operations for determining the available pinning space, which is the maximum amount of pinnable space minus the current amount of pinned data in the SSD cache, and for granting the request to pin the volume when the available pinning space is greater than or equal to a size of the volume.