IP Library Granted Patent US 9,459,970
Granted Patent B2
US 9,459,970 · App. 14/281,774 · Granted Oct 4, 2016

Performance during playback of logged data storage operations

Inventors: Dennis Dalessandro (Hartfield, PA); Ellard Roush (Burlingame, CA); Joseph A. Brown (Sunnyvale, CA)
Assignee: NetApp, Inc.
G06F11/1471G06F11/1441G06F2201/81G06F2201/82G06F2201/88
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,459,970
App. No.
14/281,774
Granted
Oct 4, 2016
Kind
B2
Abstract

Technology is disclosed for improving performance during playback of logged data storage operations. The technology can monitor a log to which data storage operations are written before data is committed to a data storage device or a volume; determine counts of various types of data storage operations; and when the counts exceed a specified threshold, cause the data storage operations to be committed to the data storage device or the volume. Some data storage operations can be coalesced during playback to further improve performance.

Claims (29)

1. A method comprising:

monitoring, by a storage server, a log to which data storage operations are written before data is committed to a data storage device or a volume;

determining, by the storage server, when, for a subsequently received one of the data storage operations, there is logged an adjacent prior one of the data storage operations;

determining, by the storage server, counts of various types of data storage operations; and when the counts exceed a specified threshold, causing, by the storage server, the data storage operations to be committed to the data storage device or the volume.

2. The method of claim 1 , further comprising specifying, by the storage server, a threshold such that committing the logged data storage operations will not exceed a specified period of time.

3. The method of claim 1 , further comprising modifying, by the storage server, during replay the adjacent data storage operation to include data in the subsequently received data storage operation.

4. The method of claim 1 , wherein the modifying comprises coalescing, by the storage server, two or more data storage operations.

5. The method of claim 1 , further comprising not modifying, by the storage server, during replay the adjacent data storage operation if there is more sequential data to be written than a message of a data communication protocol is capable of carrying.

6. The method of claim 5 , wherein the data communication protocol is a part of a write anywhere file system specification.

7. A server, comprising:

a memory containing machine readable medium comprising machine executable code having stored thereon instructions for performing a method of improving performance during playback of logged data storage operations;

a processor coupled to the memory, the processor configured to execute the machine executable code to cause the processor to;

receive a first data storage operation and a second data storage operation, and to store the received data storage operations in a log before committing the data storage operations to a volume; and

determine when the second data storage operation, when replayed with the first data storage operation during a replay operation, would cause the replay operation to exceed a specified time duration; and

combine during the replay operation the first and second data storage operations, when the determining indicates that the second data storage operation, when replayed with the first data storage operation, would not cause the replay operation to exceed the specified time duration, wherein the first and second data storage operations affect adjacent storage areas.

8. The server of claim 7 , wherein the processor is further configured to be capable of executing programmed instructions, which comprise the programmed instructions stored in the memory to: store the second data storage operation in a different log than the first data storage operation when the replay operation would exceed the specified time duration.

9. The server of claim 7 , further comprising at least two storage areas in the nonvolatile random access memory, wherein a first storage area is locked for writing but a second storage area is unlocked for writing when data storage operations stored in the first storage area are committed to a volume.

10. The server of claim 7 , further comprising multiple counters to count various types of data storage operations.

11. The server of claim 7 , further comprising a component configured to separate data storage operations that would otherwise cause a data storage message to be created that is larger than a maximum size for data storage messages.

12. The server of claim 7 , wherein the processor is further configured to be capable of executing programmed instructions, which comprise the programmed instructions stored in the memory to: separate data storage operations that are stored in different logs.

13. A non-transitory machine readable medium having stored thereon instructions for performing a method comprising machine executable code which when executed by at least one machine, causes the machine to:

monitor a log to which data storage operations are written before data is committed to a data storage device or a volume;

determine counts of various types of data storage operations;

cause the data storage operations to be committed to the data storage device or the volume when the counts exceed a specified threshold; and

employ a dependency hash to determine when to coalesce data storage operations.

14. The medium of claim 13 , further having stored thereon instructions for performing a method comprising machine executable code which when executed by at least one machine, causes the machine to: coalesce data storage operations.

15. The medium of claim 13 , wherein two data storage operations at a same level of the dependency hash can be coalesced when they store data to adjacent file block numbers unless the data storage operations are in a collision chain.

16. The medium of claim 13 , further having stored thereon instructions for performing a method comprising machine executable code which when executed by at least one machine, causes the machine to: store file block number ranges associated with logged data storage operations.

17. The medium of claim 16 , wherein the file block number ranges are stored in one or more dependency hashes.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 24, 2015
From: DALESSANDRO, DENNIS; ROUSH, ELLARD; BROWN, JOSEPH A.
To: NETAPP, INC.
Reel/Frame 036650/0090 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 18, 2014
From: DALESSANDRO, DENNIS; ROUSH, ELLARD; BROWN, JOSEPH A.
To: NETAPP, INC.
Reel/Frame 033133/0514 →
Continuity (1)
Related Publication 20150331760A1 · Nov 19, 2015