# US 2008/0189504 A1 · Storage device flow control

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2008/0189504 A1
- Document ID: US20080189504A1
- Status: Published application
- Kind: A1
- Application number: 12/100,013
- Filed: 2008-04-09
- Published: 2008-08-07
- Earliest claimed: 2005-01-10
- Assignees: Hewlett-Packard Development Company, L.P.
- Inventors: Brian William Hughes
- Web page: https://patentgrep.com/patent/US20080189504A1

## CPC

- G06F 3/0656: {Data buffering arrangements}
- G06F 3/0619: {in relation to data integrity, e.g. data losses, bit errors}
- G06F 3/0671: {In-line storage system}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A method for controlling data flow to a pair of storage devices includes receiving at least one new entry to store in a first storage device or a second storage device in the pair of storage devices and determining a number of entries made to the first and second storage devices out of the at least one new entry. The method also includes calculating a difference between available space in the first storage device and the second storage device, and calculating a number of credits used by the at least one new entry based on the numbers of entries to the first and second storage devices and on the difference in available space.

## Claims

### Claim 1

A method for controlling data flow to a pair of storage devices, the method comprising:
receiving at least one new entry to store in a first storage device or a second storage device in said pair of storage devices;
determining a number of entries made to said first storage device out of said at least one new entry;
determining a number of entries made to said second storage device out of said at least one new entry;
calculating a difference between available space in said first storage device and said second storage device; and
calculating a number of credits used by said at least one new entry based on said numbers of entries to said first and second storage devices and on said difference.

### Claim 2 (depends on 1)

The method of claim 1, further comprising initializing a credit counter with an available space of a smallest storage device in said pair of storage devices.

### Claim 3 (depends on 2)

The method of claim 2, wherein said credit counter is decremented for each of said at least one new entries.

### Claim 4 (depends on 1)

The method of claim 1, said calculating said difference comprising subtracting a number of existing entries in said first storage device from a number of existing entries in said second storage device.

### Claim 5 (depends on 1)

The method of claim 1, said calculating said difference comprising subtracting a number of free spaces in said first storage device from a number of free spaces in said second storage device.

### Claim 6 (depends on 1)

The method of claim 1, said calculating said difference further comprising calculating an absolute value of said difference.

### Claim 7 (depends on 1)

The method of claim 1, said calculating said number of credits used further comprising determining which of said pair of storage devices has more free space and which has less free space.

### Claim 8 (depends on 7)

The method of claim 7, said calculating said number of credits used further comprising adding said number of entries made to said storage device having less free space to said difference.

### Claim 9 (depends on 8)

The method of claim 8, said calculating said number of credits used further comprising identifying a minimum of a result of said adding and said number of entries made to said storage device having more free space.

### Claim 10 (depends on 9)

The method of claim 9, said calculating said number of credits used further comprising determining whether said difference is greater than a threshold value, wherein if said difference is greater than said threshold value, said number of credits used is equal to a quantity of said at least one entry minus said number of entries made to said storage device having more free space, and if said difference is not greater than said threshold value, said number of credits used is equal to said quantity of said at least one entry minus said minimum.

### Claim 11 (depends on 10)

The method of claim 10, wherein said threshold value is equal to a maximum quantity of said at least one entry that can be received in one cycle of said calculating said number of credits.

### Claim 12 (depends on 10)

The method of claim 10, wherein said threshold value is equal to a maximum quantity of said at least one entry that can be received in one cycle of said calculating said number of credits, minus one.

### Claim 13 (depends on 1)

The method of claim 1, further comprising sending an indication of said number of credits used to a source of said at least one entry.

### Claim 14 (depends on 1)

The method of claim 1, further comprising sending an indication of a number of credits not used by said at least one entry, wherein said number of credits not used is equal to a quantity of said at least one entry minus said number of credits used.

### Claim 15

An apparatus for controlling data flow to a pair of storage devices, comprising:
a. at least one computer readable medium; and
b. computer readable program code stored on said at least one computer readable medium, said computer readable program code comprising program code for calculating a number of unused credits for a transmission of data entries to said pair of storage devices, said program code for calculating said number of unused credits comprising:
i. code for calculating a difference in free space between a storage device with less free space and a storage device having more free space;
ii. code for calculating a sum of said difference and a number of new entries to said storage device having less free space;
iii. code for setting a minimum value to the smaller of said sum and a number of new entries to said storage device having more free space; and
iv. code for setting said number of unused credits to said minimum value if said difference is not greater than a threshold value, and for setting said number of unused credits to said number of new entries to said storage device having more free space if said difference is greater than a threshold value.

### Claim 16 (depends on 15)

The apparatus of claim 15, further comprising program code for initializing a credit counter in a source of said data entries by transmitting a smallest number of empty spaces in said pair of storage devices.

### Claim 17 (depends on 15)

The apparatus of claim 15, further comprising program code for transmitting said number of unused credits to a source of said data entries, wherein a credit counter is incremented by said number of unused credits.

### Claim 18 (depends on 17)

The apparatus of claim 17, wherein no more data entries are transmitted for storage in said pair of storage devices than a number of credits in said credit counter.

### Claim 19

An apparatus for calculating unused data storage credits for a data transmission to a pair of storage devices, comprising:
means for normalizing a measure of available free space in one of said storage devices having less free space to a measure of available free space in one of said storage devices having more free space; and
means for calculating said unused data storage credits based on said normalized measure of available free space in one of said storage devices having less free space and on a count of data entries being stored in each of said storage devices.
