IP Library Granted Patent US 9,990,263
Granted Patent B1
US 9,990,263 · App. 15/074,501 · Granted Jun 5, 2018

Efficient use of spare device(s) associated with a group of devices

Inventors: Lei Tian (Mountain View, CA); Shobhit Dayal (San Francisco, CA); Edward K. Lee (Dublin, CA)
Assignee: Tintri Inc.
G06F11/2094G06F11/1092G06F2201/805
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,990,263
App. No.
15/074,501
Granted
Jun 5, 2018
Kind
B1
Abstract

Efficient use of spare device(s) associated with a group of devices is disclosed, including: receiving a set of data; storing the set of data across a group of devices according to a protocol; determining a set of additional data units associated with the set of data; and storing the set of additional data units in a spare device associated with the group of devices, wherein the spare device is available to be used in the event of a failure of a device included in the group of devices, including by overwriting the set of additional data units as needed.

Claims (59)

1. A system, comprising:

a communication interface configured to receive a set of data; and

a processor configured to:

store the set of data across a group of devices according to a protocol;

determine a set of additional data units associated with the set of data;

store the set of additional data units in a spare device associated with the group of devices, wherein the spare device is available to be used in the event of a failure of a device included in the group of devices, including by overwriting the set of additional data units as needed and the spare device comprises a previous spare device; and

determine that a new spare device being added during reconstruction is associated with the group of devices;

determine, during the reconstruction, a new additional data unit corresponding to a stripe of data associated with the group of devices;

store, during the reconstruction, the new additional data unit corresponding to the stripe of data in the new spare device; and

update, during the reconstruction, stored metadata to indicate that the new additional data unit corresponding to the stripe of data is stored in the new spare device instead of the previous spare device.

2. The system of claim 1 , wherein the group of devices comprise a redundant array of independent disks (RAID) group.

3. The system of claim 1 , wherein the protocol comprises one of the following: RAID 5 and RAID 6.

4. The system of claim 1 , wherein the set of additional data units comprises data associated with a lower performance storage tier.

5. The system of claim 1 , wherein the set of additional data units comprises metadata associated with one or more stripes of data stored in the group of devices.

6. The system of claim 1 , wherein the set of additional data units comprises a set of parity information that is not included in the protocol.

7. The system of claim 1 , wherein the processor is further configured to:

determine that at least a portion of data associated with a stripe of data of the group of devices has been updated;

in response to the determination that at least a portion of data associated with a stripe of data of the group of devices has been updated, determine an updated additional data unit based at least in part on the at least portion of data associated with the stripe of data; and

store the updated additional data unit in a stripe unit in the spare device.

8. The system of claim 1 , wherein the failed device comprises a first device and wherein the processor is further configured to:

receive a request to a second device included in the group of devices;

determine that the second device is associated with a slow access mode; and

reconstruct data associated with the request from one or more other devices included in the group of devices and at least a portion of the set of additional data units stored in the spare device.

9. The system of claim 1 , wherein in the event of the failure of the device, the processor is further configured to store reconstructed data associated with the device in the spare device by overwriting at least some of the set of additional data units stored in the spare device with the reconstructed data.

10. The system of claim 9 , wherein the processor is further configured to:

receive a request to the device subsequent to storing the reconstructed data associated with the device in the spare device; and

determine a response to the request based at least in part on the reconstructed data stored in the spare device.

11. A method, comprising:

receiving a set of data;

storing the set of data across a group of devices according to a protocol;

determining a set of additional data units associated with the set of data; and

storing the set of additional data units in a spare device associated with the group of devices, wherein the spare device is available to be used in the event of a failure of a device included in the group of devices, including by overwriting the set of additional data units as needed and the spare device comprises a previous spare device; and

determining that a new spare device being added during reconstruction is associated with the group of devices;

determining, during the reconstruction, a new additional data unit corresponding to a stripe of data associated with the group of devices;

storing, during the reconstruction, the new additional data unit corresponding to the stripe of data in the new spare device; and

updating, during the reconstruction, stored metadata to indicate that the new additional data unit corresponding to the stripe of data is stored in the new spare device instead of the previous spare device.

12. The method of claim 11 , wherein the set of additional data units comprises metadata associated with one or more stripes of data stored in the group of devices.

13. The method of claim 11 , wherein the set of additional data units comprises a set of parity information that is not included in the protocol.

14. The method of claim 11 , further comprising:

determining that at least a portion of data associated with a stripe of data of the group of devices has been updated;

in response to the determination, determining an updated additional data unit based at least in part on the at least portion of data associated with the stripe of data; and

storing the updated additional data unit in a stripe unit in the spare device.

15. The method of claim 11 , wherein the device comprises a first device and further comprising:

receiving a request to a second device included in the group of devices;

determining that the second device is associated with a slow access mode; and

reconstructing data associated with the request from one or more other devices included in the group of devices and at least a portion of the set of additional data units stored in the spare device.

16. The method of claim 11 , wherein in the event of the failure of the device, further comprising storing reconstructed data associated with the device in the spare device by overwriting at least some of the set of additional data units stored in the spare device with the reconstructed data.

17. The method of claim 16 , further comprising:

receiving a request to the device subsequent to storing the reconstructed data associated with the device in the spare device; and

determining a response to the request based at least in part on the reconstructed data stored in the spare device.

18. A computer program product, the computer program product being embodied in a non-transitory computer-readable storage medium and comprising computer instructions for:

receiving a set of data;

storing the set of data across a group of devices according to a protocol;

determining a set of additional data units associated with the set of data; and

storing the set of additional data units in a spare device associated with the group of devices, wherein the spare device is available to be used in the event of a failure of a device included in the group of devices, including by overwriting the set of additional data units as needed and the spare device comprises a previous spare device; and

determining that a new spare device being added during reconstruction is associated with the group of devices;

determining, during the reconstruction, a new additional data unit corresponding to a stripe of data associated with the group of devices;

storing, during the reconstruction, the new additional data unit corresponding to the stripe of data in the new spare device; and

updating, during the reconstruction, stored metadata to indicate that the new additional data unit corresponding to the stripe of data is stored in the new spare device instead of the previous spare device.

Assignments (6)
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 →
SECOND AMENDMENT TO SECURITY AGREEMENT Recorded May 1, 2017
From: TINTRI, INC.
To: TRIPLEPOINT CAPITAL LLC
Reel/Frame 042380/0760 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 9, 2016
From: TIAN, LEI; DAYAL, SHOBHIT; LEE, EDWARD K.
To: TINTRI INC.
Reel/Frame 038865/0748 →
SECURITY INTEREST Recorded May 16, 2016
From: TINTRI, INC.
To: SILICON VALLEY BANK
Reel/Frame 038711/0505 →
Continuity (1)
Provisional Application 62136216 · Mar 20, 2015