IP Library Granted Patent US 8,402,246
Granted Patent B1
US 8,402,246 · App. 12/869,604 · Granted Mar 19, 2013

Alignment adjustment in a tiered storage system

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 8,402,246
App. No.
12/869,604
Granted
Mar 19, 2013
Kind
B1
Abstract

A storage proxy monitors storage access operations. Different address alignments are identified between the storage access operations and data blocks in a storage media. A dominant one of the address alignments is identified. Data blocks are mapped into the storage media to remove the dominant address alignment. An array of counters can be used to track the address alignments for different storage access sizes and the address alignment associated with the highest number of storage access operations is used as the dominant address alignment.

Claims (78)

1. A method, comprising:

monitoring storage access operations from initiators;

determining if data blocks for the storage access operations are located in a storage media;

forwarding the storage access operations to a storage target when the data blocks for the storage operations are not located in the storage media;

identifying address alignments between the storage access operations and the data blocks in storage media for different read sizes;

maintaining a count for each of the address alignments for each of the different read sizes for the storage access operations;

identifying a dominant one of the address alignments based on the count for each of the address alignments for each of the different read sizes;

clearing all data blocks in the storage media and copying new data blocks from the storage target into the storage media according to the dominant one of the address alignments.

2. The method of claim 1 further comprising:

selecting one of the address alignments with a largest number of storage access operations; and

using the selected one of the address alignments as the dominant one of the address alignments.

3. The method of claim 1 further comprising:

performing the clearing of all the data blocks in the storage media after identifying the dominant one of the address alignments;

mapping the new data blocks into the storage media according to the dominant one of the address alignments;

identifying new address alignments between subsequent storage access operations and the new data blocks in the storage media;

identifying a new dominant one of the new address alignments between the subsequent storage access operations and the new data blocks; and

mapping additional data blocks into the storage media according to the new dominant one of the new address alignments.

4. The method of claim 1 wherein the address alignments are in 512 byte increments.

5. The method of claim 1 wherein the storage access operations are performed on 512 byte address increments and the data blocks are stored in 4 thousand byte address increments.

6. The method of claim 1 further comprising:

tracking a first set of numbers for the address alignments having a first read size;

tracking a second set of numbers for the address alignments having a second read size; and

identifying the dominant one of the address alignments according to the first set and second set of numbers.

7. A method, comprising:

monitoring storage access operations;

identifying address alignments between the storage access operations and data blocks in a storage media;

identifying groups of the address alignments for different read sizes that provide a same alignment with the data blocks;

identifying one of the groups of address alignments with a highest number of the storage access operations;

using a largest one of the address alignments in the identified one of the groups as a dominant one of the address alignments; and

mapping new data blocks into the storage media according to the dominant one of the address alignments.

8. The method of claim 1 further comprising:

identifying when a number of the storage access operations reaches a sampling limit; and

identifying one of the address alignments associated with a largest number of the storage access operations after reaching the sampling limit; and

using the identified one of the address alignments as a current dominant one of the address alignments.

9. The method according to claim 8 further comprising:

identifying a number of storage access operations associated with a previous previously dominant one of the address alignments;

using the previously dominant one of the address alignments as the dominant one of the address alignments when the previously dominant one of the address alignments has more storage access operations than the current dominant one of the address alignments; and

using the current dominant one of the address alignments as the dominant one of the address alignments when the current dominant one of the address alignments has more storage access operations than the previously dominant one of the address alignments.

10. An apparatus, comprising:

at least one processor configured to:

identify different alignment offsets between starting addresses of read operations and starting addresses of locations of data blocks containing data for the read operations;

identify different read sizes for the read operations;

identify a number for each of the different alignment offsets for each of the different read sizes;

determine a preferred one of the different alignment offsets based on the number for each of the different alignment offsets for each of the different read sizes; and

store new data blocks into address locations in a storage device based on the preferred one of the different alignment offsets.

11. The apparatus of claim 10 further comprising counters configured to track the number of each of the different alignment offsets for each of the different read sizes.

12. The apparatus according to claim 10 wherein the processor is configured to align the new data blocks in the storage device according to one of the different alignment offsets associated with a highest number of the read operations.

13. The apparatus according to claim 11 wherein different sets of the counters are associated with each of the different alignment offsets for each of the different read sizes.

14. An apparatus, comprising:

at least one processor configured to:

store data blocks in a storage device using a first address block size;

receive storage access requests that use a second address block size;

identify alignment differentials between the first address block size and the second address block size;

use counters to track a number of the storage access requests for each of the alignment differentials, wherein different sets of the counters are associated with different read sizes; and

sum together values in each of the different sets of counters to identify a dominant one of the alignment differentials and map the data blocks into the storage device according to the dominant one of the alignment differentials.

15. An apparatus, comprising:

at least one processor configured to:

store data blocks in a storage device using a first address block size;

receive storage access requests that use a second address block size;

identify alignment differentials between the first address block size and the second address block size;

use sets of counters to identify the alignment differentials for different read sizes that provide a same alignment with the data blocks in the storage device;

sum values in each of the sets of counters;

identify one of the sets of counters having a largest one of the summed values;

use a largest one of the alignment differentials associated with the identified one of the sets of counters as a dominant one of the alignment differentials; and

aligning subsequent data blocks according to the dominant one of the alignment differentials.

16. A storage system, comprising:

a processor configured to:

operate as a storage proxy to store blocks of data from a storage device into a tiering media;

determine if the blocks of data for storage access requests are located in the tiering media;

forward the storage access requests to the storage device for the blocks of data not located in the tiering media;

identify address alignment offsets between the storage access requests and the blocks of data in the tiering media; and

copy new blocks of data from the storage device into the tiering media according to the address alignment offsets; wherein

the storage proxy includes:

an analysis engine configured to identify the address alignment offsets between the storage access requests and the blocks of data in the tiering media; and

maintain a count of each of the address alignment offsets for each of a plurality of different read sizes in the storage access requests.

17. The storage system according to claim 16 wherein the storage proxy includes an analysis engine configured to identify the address alignment offsets between the storage access requests and the blocks of data in the tiering media.

18. The storage system according to claim 17 wherein the storage proxy includes an array of counters that identify the address alignment offsets for different read sizes in the storage access requests.

19. The storage system according to claim 18 wherein the storage proxy includes a block mapping controller configured to copy the new blocks of data from the storage device into the tiering media according to a dominant one of the address alignment offsets.

Assignments (6)
CORRECTIVE ASSIGNMENT TO REMOVE US PATENT NO. 9013874 PREVIOUSLY RECORDED UNDER REEL AND FRAME 064272/0249. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Sep 17, 2024
From: VSIP HOLDINGS LLC (F/K/A VIOLIN SYSTEMS LLC)
To: INNOVATIONS IN MEMORY LLC
Reel/Frame 068998/0780 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 13, 2023
From: VSIP HOLDINGS LLC (F/K/A VIOLIN SYSTEMS LLC)
To: INNOVATIONS IN MEMORY LLC
Reel/Frame 064272/0249 →
RELEASE OF SECURITY INTEREST Recorded Jun 16, 2021
From: SILICON VALLEY BANK
To: VSIP HOLDINGS LLC (F/K/A VIOLIN SYSTEMS LLC (F/K/A VIOLIN MEMORY, INC.))
Reel/Frame 056600/0186 →
CHANGE OF NAME Recorded May 25, 2021
From: VIOLIN SYSTEMS LLC
To: VSIP HOLDINGS LLC
Reel/Frame 056366/0849 →
RELEASE OF SECURITY INTEREST Recorded Feb 22, 2018
From: SILICON VALLEY BANK
To: VIOLIN SYSTEMS LLC
Reel/Frame 045005/0010 →
CHANGE OF NAME Recorded Dec 19, 2017
From: VIOLIN MEMORY, INC.
To: VIOLIN SYSTEMS LLC
Reel/Frame 044908/0680 →