IP Library Granted Patent US 9,087,004
Granted Patent B2
US 9,087,004 · App. 11/426,640 · Granted Jul 21, 2015

Maintaining a change map of a block level storage device

Inventor: Pavan Kumar Korlepara (Hyderabad, IN)
Assignee: CA, Inc.
G06F11/1435G06F3/064G06F3/0605G06F3/0689G06F11/1451G06F11/1456G06F11/2071G06F11/2074G06F11/2082
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,087,004
App. No.
11/426,640
Granted
Jul 21, 2015
Kind
B2
Abstract

Maintaining a change map of a block storage device includes intercepting a change message from an application. The change message is intercepted by a change tracking engine. The change message requests a change to a logical block of the block storage device. The change is recorded in a first copy of the change map. The change is recorded the change in a second copy of the change map.

Claims (129)

1. A method for maintaining a change map of a block storage device, comprising:

intercepting a change message from an application, the change message intercepted by a change tracking engine, the change message requesting a change to a logical block of a plurality of logical blocks of a block storage device;

recording the change in a first copy of a plurality of copies of a change map by adding a node corresponding to and recording the change of the logical block to a linked list, the added node linked to a previous node also corresponding to the logical block and added to the linked list to record a previous change of the logical block, the change recorded using a first message comprising a first header indicating whether the first copy provides an accurate change map of the block storage device;

removing the previous node from the linked list; and

recording the change in a second copy of the plurality of copies of the change map, the change recorded using a second message comprising a second header indicating whether the second copy provides an accurate change map of the block storage device.

2. The method of claim 1 , wherein:

recording the change in the first copy of the plurality of copies of the change map further comprises:

recording the change in the first copy; and

recording the change in the second copy of the plurality of copies of the change map further comprises:

copying the change from the first copy to the second copy.

3. The method of claim 1 , further comprising:

receiving a request for the change map from the application; and

providing the second copy of the change map to the application in response to the request for the change map.

4. The method of claim 1 , wherein:

recording the change in the first copy of the plurality of copies of the change map further comprises:

stamping the first copy with a first counter value; and

recording the change in the second copy of the plurality of copies of the change map further comprises:

stamping the second copy with a second counter value, the difference between the first counter value and the second counter value being a unit value.

5. The method of claim 4 , further comprising:

detecting a system stoppage;

selecting at least one of the first copy or the second copy in accordance with the first count value and the second count value; and

providing the selected copy to the application.

6. The method of claim 1 , wherein:

recording the change in the first copy of the plurality of copies of the change map further comprises:

recording the change using the first message comprising a first footer; and

recording the change in the second copy of the plurality of copies of the change map further comprises:

recording the change in the second copy using the second message comprising a second footer.

7. The method of claim 6 , further comprising:

detecting a system stoppage; and

selecting at least one of the first copy or the second copy in accordance with the first header, the first footer, the second header, and the second footer; and

providing the selected copy to the application.

8. The method of claim 1 , wherein the change map comprises at least one of the following:

a partial change map, a bit of the partial change map corresponding to a changed logical block of the plurality of logical blocks; and

a full change map, a bit of the full change map corresponding to a logical block of the plurality of logical blocks.

9. A change tracking engine for maintaining a change map of a block storage device, comprising:

an interface operable to:

intercept a change message from an application, the change message requesting a change to a logical block of a plurality of logical blocks of a block storage device; and

a processor coupled to the interface and operable to:

record the change in a first copy of a plurality of copies of a change map by adding a node corresponding to and recording the change of the logical block to a linked list, the added node linked to a previous node also corresponding to the logical block and added to the linked list to record a previous change of the logical block, the change recorded using a first message comprising a first header indicating whether the first copy provides an accurate change map of the block storage device;

remove the previous node from the linked list; and

record the change in a second copy of the plurality of copies of the change map, the change recorded using a second message comprising a second header indicating whether the second copy provides an accurate change map of the block storage device.

10. The change tracking engine of claim 9 , wherein the processor is further operable to:

record the change in the first copy of the plurality of copies of the change map by:

recording the change in the first copy; and

record the change in the second copy of the plurality of copies of the change map by:

copying the change from the first copy to the second copy.

11. The change tracking engine of claim 9 , wherein:

the interface is further operable to:

receive a request for the change map from the application; and

the processor is further operable to:

provide the second copy of the change map to the application in response to the request for the change map.

12. The change tracking engine of claim 9 , wherein the processor is further operable to:

record the change in the first copy of the plurality of copies of the change map by:

stamping the first copy with a first counter value; and

record the change in the second copy of the plurality of copies of the change map by:

stamping the second copy with a second counter value, the difference between the first counter value and the second counter value being a unit value.

13. The change tracking engine of claim 12 , wherein the processor is further operable to:

detect a system stoppage;

select at least one of the first copy or the second copy in accordance with the first count value and the second count value; and

provide the selected copy to the application.

14. The change tracking engine of claim 9 , wherein the processor is further operable to:

record the change in the first copy of the plurality of copies of the change map by:

recording the change using the first message comprising a first footer; and

record the change in the second copy of the plurality of copies of the change map by:

recording the change in the second copy using the second message comprising a second footer.

15. The change tracking engine of claim 14 , wherein the processor is further operable to:

detect a system stoppage; and

select at least one of the first copy or the second copy in accordance with the first header, the first footer, the second header, and the second footer; and

provide the selected copy to the application.

16. The change tracking engine of claim 9 , wherein the change map comprises at least one of the following:

a partial change map, a bit of the partial change map corresponding to a changed logical block of the plurality of logical blocks; and

a full change map, a bit of the full change map corresponding to a logical block of the plurality of logical blocks.

17. Logic for maintaining a change map of a block storage device, the logic embodied in a data storage medium and operable to:

intercept a change message from an application, the change message intercepted by a change tracking engine, the change message requesting a change to a logical block of a plurality of logical blocks of a block storage device;

record the change in a first copy of a plurality of copies of a change map by adding a node corresponding to and recording the change of the logical block to a linked list, the added node linked to a previous node also corresponding to the logical block and added to the linked list to record a previous change of the logical block, the change recorded using a first message comprising a first header indicating whether the first copy provides an accurate change map of the block storage device;

remove the previous node from the linked list; and

record the change in a second copy of the plurality of copies of the change map, the change recorded using a second message comprising a second header indicating whether the second copy provides an accurate change map of the block storage device.

18. The logic of claim 17 , further operable to:

record the change in the first copy of the plurality of copies of the change map by:

recording the change in the first copy; and

record the change in the second copy of the plurality of copies of the change map by:

copying the change from the first copy to the second copy.

19. The logic of claim 17 , further operable to:

receive a request for the change map from the application; and

provide the second copy of the change map to the application in response to the request for the change map.

20. The logic of claim 17 , further operable to:

record the change in the first copy of the plurality of copies of the change map by:

stamping the first copy with a first counter value; and

record the change in the second copy of the plurality of copies of the change map by:

stamping the second copy with a second counter value, the difference between the first counter value and the second counter value being a unit value.

21. The logic of claim 20 , further operable to:

detect a system stoppage;

select at least one of the first copy or the second copy in accordance with the first count value and the second count value; and

provide the selected copy to the application.

22. The logic of claim 17 , further operable to:

record the change in the first copy of the plurality of copies of the change map by:

recording the change using the first message comprising a first footer; and

record the change in the second copy of the plurality of copies of the change map by:

recording the change in the second copy using the second message comprising a second footer.

23. The logic of claim 22 , further operable to:

detect a system stoppage; and

select at least one of the first copy or the second copy in accordance with the first header, the first footer, the second header, and the second footer; and

provide the selected copy to the application.

24. The logic of claim 17 , wherein the change map comprises at least one of the following:

a partial change map, a bit of the partial change map corresponding to a changed logical block of the plurality of logical blocks; and

a full change map, a bit of the full change map corresponding to a logical block of the plurality of logical blocks.

25. A system for maintaining a change map of a block storage device, comprising a processor configured for:

intercepting a change message from an application, the change message intercepted by a change tracking engine, the change message requesting a change to a logical block of a plurality of logical blocks of a block storage device;

recording the change in a first copy of a plurality of copies of a change map by adding a node corresponding to and recording the change of the logical block to a linked list, the added node linked to a previous node also corresponding to the logical block and added to the linked list to record a previous change of the logical block, the change recorded using a first message comprising a first header indicating whether the first copy provides an accurate change map of the block storage device;

removing the previous node from the linked list; and

recording the change in a second copy of the plurality of copies of the change map, the change recorded using a second message comprising a second header indicating whether the second copy provides an accurate change map of the block storage device.

26. A method for maintaining a change map of a block storage device, comprising:

intercepting a change message from an application, the change message intercepted by a change tracking engine, the change message requesting a change to a logical block of a plurality of logical blocks of a block storage device;

recording the change in a first copy of a plurality of copies of a change map, the change recorded in the first copy by:

adding a node corresponding to and recording the change of the logical block to a linked list, the added node linked to a previous node also corresponding to the logical block and added to the linked list to record a previous change of the logical block;

recording the change in the first copy using a first message comprising a first header indicating whether the first copy provides an accurate change map of the block storage device and a first footer;

removing the previous node from the linked list; and

stamping the first copy with a first counter value;

recording the change in a second copy of the plurality of copies of the change map, the change recorded in the second copy by:

copying the change from the first copy to the second copy;

recording the change in the second copy using a second message comprising a second header indicating whether the second copy provides an accurate change map of the block storage device and a second footer; and

stamping the second copy with a second counter value, the difference between the first counter value and the second counter value being a unit value;

receiving a request for the change map from the application;

providing the second copy of the change map to the application in response to the request for the change map;

detecting a system stoppage;

selecting at least one of the first copy or the second copy in accordance with the first count value, the second count value, the first header, the first footer, the second header, and the second footer; and

providing the selected copy to the application, the change map comprising at least one of the following:

a partial change map, a bit of the partial change map corresponding to a changed logical block of the plurality of logical blocks; and

a full change map, a bit of the full change map corresponding to a logical block of the plurality of logical blocks.

Assignments (2)
MERGER Recorded Apr 8, 2015
From: COMPUTER ASSOCIATES THINK, INC.
To: CA, INC.
Reel/Frame 035362/0854 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 27, 2006
From: KORLEPARA, PAVAN KUMAR
To: COMPUTER ASSOCIATES THINK, INC.
Reel/Frame 017849/0041 →
Continuity (1)
Related Publication 20070300025A1 · Dec 27, 2007