IP Library Granted Patent US 8,909,894
Granted Patent B1
US 8,909,894 · App. 13/421,712 · Granted Dec 9, 2014

Automatically aligning virtual blocks to physical blocks

Inventors: Pratap V. Singh (Mountain View, CA); Vyacheslav V. Malyugin (Los Gatos, CA); Mark G. Gritter (Eagan, MN); Edward K. Lee (San Jose, CA)
Assignee: Tintri Inc.
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,909,894
App. No.
13/421,712
Granted
Dec 9, 2014
Kind
B1
Abstract

Automatically aligning virtual blocks of partitions to blocks of underlying physical storage is disclosed. In some embodiments, a starting offset of a first partition included in a logical container is detected. In some embodiments, a misalignment correction amount for a first partition included in a logical container is detected. In some embodiments, a misalignment associated with a first partition included in a logical container is corrected.

Claims (47)

1. A method of correcting a misalignment associated with a first partition included in a logical container, comprising:

detecting one or more regions corresponding to one or more partitions included in the logical container;

collecting statistical information associated with a plurality of potential misalignment correction amounts for a first region of the one or more regions, wherein the first region corresponds to the first partition, wherein collecting statistical information associated with the plurality of potential misalignment correction amounts for the first region includes:

building a histogram associated with the plurality of potential misalignment correction amounts for the first region; and

determining an amount of misalignment correction between a starting offset of the first partition and a physical storage block boundary of a storage system based at least in part on selecting a misalignment correction amount from the plurality of potential misalignment correction amounts for the first region based at least in part on the histogram;

receiving a request associated with the first partition included in the logical container; and

automatically translating an offset associated with the request by an amount determined based at least in part on the amount of misalignment correction between the starting offset of the first partition and the physical storage block boundary of the storage system.

2. The method of claim 1 , wherein translating the offset associated with the request is performed transparent to an associated hypervisor.

3. The method of claim 1 , further comprising determining an amount of misalignment correction for a second partition included in the logical container based at least in part on the amount of misalignment correction determined for the first partition.

4. The method of claim 1 , further comprising performing the request at an offset determined based at least in part on the translation of the offset of the request by at least the amount of misalignment correction determined for the first partition.

5. The method of claim 1 , further comprising:

determining whether the request is associated with a configured amount of storage associated with an end of the first partition; and

in the event that the request is associated with the configured amount of storage associated with the end of the first partition, applying wrapping back of the request to an offset associated with a gap of the first partition.

6. The method of claim 1 , further comprising determining the amount of misalignment correction between the starting offset of the first partition and the physical storage block boundary of the storage system based at least in part on comparing the starting offset with a size associated with a physical block of the storage system.

7. The method of claim 1 , wherein detecting the one or more regions corresponding to one or more partitions included in the logical container is determined based at least in part on known data patterns associated with a beginning and an end of a partition or based at least in part on preconfigured rules.

8. A system for correcting a misalignment associated with a first partition included in a logical container, comprising:

one or more processors configured to:

detect one or more regions corresponding to one or more partitions included in the logical container;

collect statistical information associated with a plurality of potential misalignment correction amounts for a first region of the one or more regions, wherein the first region corresponds to the first partition, wherein collecting statistical information associated with the plurality of potential misalignment correction amounts for the first region includes:

building a histogram associated with the plurality of potential misalignment correction amounts for the first region; and

determining an amount of misalignment correction between a starting offset of the first partition and a physical storage block boundary of a storage system based at least in part on selecting a misalignment correction amount from the plurality of potential misalignment correction amounts for the first region based at least in part on the histogram;

receive a request associated with the first partition included in the logical container; and

automatically translate an offset associated with the request by an amount determined based at least in part on the amount of misalignment correction between the starting offset of the first partition and the physical storage block boundary of the storage system; and

a memory coupled to the one or more processors and configured to provide the one or more processors with instructions.

9. The system of claim 8 , wherein the one or more processors are further configured to perform the request at an offset determined based at least in part on the translation of the offset of the request by at least the amount of misalignment correction determined for the first partition.

10. The system of claim 8 , wherein the one or more processors are further configured to:

determine whether the request is associated with a configured amount of storage associated with an end of the first partition; and

in the event that the request is associated with the configured amount of storage associated with the end of the first partition, apply wrapping back of the request to an offset associated with a gap of the first partition.

11. The system of claim 8 , wherein the one or more processors are further configured to determine the amount of misalignment correction between the starting offset of the first partition and the physical storage block boundary of the storage system based at least in part on comparing the starting offset with a size associated with a physical block of the storage system.

12. The system of claim 8 , wherein detecting the one or more regions corresponding to one or more partitions included in the logical container is determined based at least in part on known data patterns associated with a beginning and an end of a partition or based at least in part on preconfigured rules.

13. The system of claim 8 , wherein translating the offset associated with the request is performed transparent to an associated hypervisor.

14. The system of claim 8 , wherein the one or more processors are further configured to determine an amount of misalignment correction for a second partition included in the logical container based at least in part on the amount of misalignment correction determined for the first partition.

15. A computer program product for correcting a misalignment associated with a first partition included in a logical container, the computer program product being embodied in a computer readable storage medium and comprising computer instructions for:

detecting one or more regions corresponding to one or more partitions included in the logical container;

collecting statistical information associated with a plurality of potential misalignment correction amounts for a first region of the one or more regions, wherein the first region corresponds to the first partition, wherein collecting statistical information associated with the plurality of potential misalignment correction amounts for the first region includes:

building a histogram associated with the plurality of potential misalignment correction amounts for the first region; and

determining an amount of misalignment correction between a starting offset of the first partition and a physical storage block boundary of a storage system based at least in part on selecting a misalignment correction amount from the plurality of potential misalignment correction amounts for the first region based at least in part on the histogram;

receiving a request associated with the first partition included in the logical container; and

automatically translating an offset associated with the request by an amount determined based at least in part on the amount of misalignment correction between the starting offset of the first partition and the physical storage block boundary of the storage system.

16. The computer program product of claim 15 , wherein translating the offset associated with the request is performed transparent to an associated hypervisor.

17. The computer program product of claim 15 , further comprising determining an amount of misalignment correction for a second partition included in the logical container based at least in part on the amount of misalignment correction determined for the first partition.

18. The computer program product of claim 15 , further comprising performing the request at an offset determined based at least in part on the translation of the offset of the request by at least the amount of misalignment correction determined for the first partition.

19. The computer program product of claim 15 , further comprising determining the amount of misalignment correction between the starting offset of the first partition and the physical storage block boundary of the storage system based at least in part on comparing the starting offset with a size associated with a physical block of the storage system.

20. The computer program product of claim 15 , wherein detecting the one or more regions corresponding to one or more partitions included in the logical container is determined based at least in part on known data patterns associated with a beginning and an end of a partition or based at least in part on preconfigured rules.

21. The computer program product of claim 15 , further comprising:

determining whether the request is associated with a configured amount of storage associated with an end of the first partition; and

in the event that the request is associated with the configured amount of storage associated with the end of the first partition, applying wrapping back of the request to an offset associated with a gap of the first partition.

Assignments (7)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 31, 2019
From: TINTRI INC.
To: TI ACQUISITION CORP.
Reel/Frame 048201/0666 →
CHANGE OF NAME Recorded Jan 31, 2019
From: TI ACQUISITION CORP.
To: TINTRI BY DDN, INC.
Reel/Frame 048211/0685 →
SECURITY INTEREST Recorded Oct 13, 2018
From: TI ACQUISITION CORP.
To: TRIPLEPOINT CAPITAL LLC
Reel/Frame 047229/0463 →
SECURITY INTEREST Recorded May 16, 2016
From: TINTRI, INC.
To: SILICON VALLEY BANK
Reel/Frame 038711/0505 →
SECURITY INTEREST Recorded Mar 5, 2015
From: TINTRI, INC.
To: TRIPLEPOINT CAPITAL LLC
Reel/Frame 035097/0801 →
SECURITY INTEREST Recorded Dec 29, 2014
From: TINTRI, INC.
To: SILICON VALLEY BANK
Reel/Frame 034590/0653 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 19, 2012
From: SINGH, PRATAP V.; MALYUGIN, VYACHESLAV V.; GRITTER, MARK G.; LEE, EDWARD K.
To: TINTRI INC.
Reel/Frame 028078/0082 →
Continuity (1)
Provisional Application 61453356 · Mar 16, 2011