IP Library Granted Patent US 9,798,473
Granted Patent B2
US 9,798,473 · App. 14/927,383 · Granted Oct 24, 2017

Storage volume device and method for increasing write speed for data streams while providing data protection

Inventor: Timothy Standing (Mill Valley, CA)
Assignee: OWC Holdings, Inc.
G06F3/061G06F3/064G06F3/0619G06F3/0653G06F3/0689
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,798,473
App. No.
14/927,383
Granted
Oct 24, 2017
Kind
B2
Abstract

The present disclosure describes a method for increasing the write speed for data streams on storage volumes, such as RAID volumes, by delaying the extra operations associated with data protection when one or more data streams are written to the storage volume. Specifically, in response to a storage volume receiving a data block for writing to the volume, the storage volume determines whether the data block is part of a larger data stream. If the data block is part of a larger data stream, the data block is written to the volume, but the steps of creating volume recovery data is delaying until a period of low activity on the storage volume in order to maximize write speed for the data stream. When a low period of activity (e.g., below a threshold level) is detected, volume recovery data is created for the data block and written to the volume.

Claims (47)

1. A method for increasing write speed, while providing data protection, on a storage volume comprising multiple drives, the method comprising:

receiving a data block for writing to the storage volume;

determining whether the data block is part of a larger data stream;

in response to determining that the data block is not part of a larger data stream and irrespective of the level of activity on the storage volume, writing the data block to one or more of the drives, and creating and writing volume recovery data for the data block at substantially the same time or immediately afterwards; and

in response to determining that the data block is part of a larger data stream, performing the following:

writing the data block to one or more of the drives and delaying creating volume recovery data for the data block until a low period of activity on the storage volume in order to maximize write speed for the data stream;

monitoring the storage volume for activity below a threshold level; and

in response to the storage volume activity being below the threshold level, creating volume recovery data for the data block and writing the volume recovery data to one or more of the drives.

2. The method of claim 1 , wherein creating volume recovery data comprises calculating and storing parity information for the data block.

3. The method of claim 1 , wherein creating volume recovery data comprises storing a redundant copy of the data block on another set of drives within the storage volume than the drives on which the original data data block is written.

4. The method of claim 1 , further comprising:

maintaining a volume-recovery-data state that indicates data blocks for which volume recovery data needs to be created.

5. The method of claim 1 , wherein the monitored activity is read and write operations.

6. The method of claim 1 , wherein determining whether the data block is part of a larger data stream comprises determining whether the data block (1) exceeds a threshold size and (2) is contiguous with a data block recently written to the storage volume.

7. The method of claim 1 , wherein determining whether the data block is part of a larger data stream comprises determining whether the data block exceeds a threshold size.

8. A storage volume device comprising:

a plurality of drives;

one or more processors for writing data to the drives; and

one or more memory units coupled to the one or more processors, wherein the one or more memory units store instructions that, when executed by the one or more processors, cause the system to perform the operations of:

receiving a data block for writing to the storage volume;

determining whether the data block is part of a larger data stream;

in response to determining that the data block is not part of a larger data stream and irrespective of the level of activity on the storage volume, writing the data block to one or more of the drives and creating and writing volume recovery data for the data block at substantially the same time or immediately afterwards; and

in response to determining that the data block is part of a larger data stream, performing the following:

writing the data block to one or more of the drives and delaying creating volume recovery data for the data block until a low period of activity on the storage volume device in order to maximize write speed for the data stream;

monitoring the storage volume device for activity below a threshold level; and

in response to the activity being below the threshold level, creating volume recovery data for the data block and writing the volume recovery data to one or more of the drives.

9. The storage volume device of claim 8 , wherein creating volume recovery data comprises calculating and storing parity information for the data block.

10. The storage volume device of claim 8 , wherein creating volume recovery data comprises storing a redundant copy of the data block on another set of drives within the storage volume than the drives on which the original data data block is written.

11. The storage volume device of claim 8 , wherein the storage volume maintains a volume-recovery-data state that indicates data blocks for which volume recovery data needs to be created.

12. The storage volume device of claim 8 , wherein the monitored activity is read and write operations.

13. The storage volume device of claim 8 , wherein determining whether the data block is part of a larger data stream comprises determining whether the data block (1) exceeds a threshold size and (2) is contiguous with a data block recently written to the storage volume.

14. The storage volume device of claim 8 , wherein determining whether the data block is part of a larger data stream comprises determining whether the data block exceeds a threshold size.

15. A non-transitory, computer-readable medium comprising a computer program, that, when executed by a processor on a storage volume device comprising multiple drives, enables the storage volume device to perform the following method for increasing write speed for data streams while providing data protection, the method comprising:

receiving a data block for writing to the storage volume;

determining whether the data block is part of a larger data stream;

in response to determining that the data block is not part of a larger data stream and irrespective of the level of activity on the storage volume, writing the data block to one or more of the drives, and creating and writing volume recovery data for the data block at substantially the same time or immediately afterwards; and

in response to determining that the data block is part of a larger data stream, performing the following:

writing the data block to one or more of the drives and delaying creating volume recovery data for the data block until a low period of activity on the storage volume in order to maximize write speed for the data stream;

monitoring the storage volume for activity below a threshold level; and

in response to the storage volume activity being below the threshold level, creating volume recovery data for the data block and writing the volume recovery data to one or more of the drives.

16. The non-transitory, computer-readable medium of claim 15 , wherein creating volume recovery data comprises calculating and storing parity information for the data block.

17. The non-transitory, computer-readable medium of claim 15 , wherein creating volume recovery data comprises storing a redundant copy of the data block on another set of drives within the storage volume than the drives on which the original data data block is written.

18. The non-transitory, computer-readable medium of claim 15 , further comprising:

maintaining a volume-recovery-data state that indicates data blocks for which volume recovery data needs to be created.

19. The non-transitory, computer-readable medium of claim 15 , wherein the monitored activity is read and write operations.

20. The non-transitory, computer-readable medium of claim 15 , wherein determining whether the data block is part of a larger data stream comprises determining whether the data block (1) exceeds a threshold size and (2) is contiguous with a data block recently written to the storage volume.

21. The non-transitory, computer-readable medium of claim 1 , wherein determining whether the data block is part of a larger data stream comprises determining whether the data block exceeds a threshold size.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 7, 2019
From: OWC HOLDINGS, INC.
To: NEW CONCEPTS DEVELOPMENT CORPORATION
Reel/Frame 050952/0084 →
MERGER Recorded Aug 30, 2018
From: OWC HOLDINGS, INC.
To: NEW CONCEPTS DEVELOPMENT CORPORATION
Reel/Frame 046759/0017 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 29, 2015
From: STANDING, TIMOTHY
To: OWC HOLDINGS, INC.
Reel/Frame 036918/0449 →
Continuity (1)
Related Publication 20170123654A1 · May 4, 2017