Time and space efficient technique for creating virtual volume copies
First Claim
Patent Images
1. A non-transitory computer-readable storage medium encoded with an executable program for generating skip-pointers in a chain of snapshots descending from a parent, wherein the program causes a processor to perform the following:
- receiving a write request to a data block in the parent;
determining if the write request is a first write request to the data block in the parent;
when the write request is the first write request to the data block in the parent;
copying the data block from the parent to a most recent snapshot in the chain of snapshots;
writing a skip-pointer in at least one of the other snapshots in the chain of snapshots, the skip-pointer leading to the data block in the most recent snapshot;
writing the data block in the parent;
when the write request is not the first write request to the data block, only writing the data block in the parent.
2 Assignments
0 Petitions
Accused Products
Abstract
A chain of snapshots includes a more recent snapshot with a data block copied from a base volume, a less recent snapshot with a skip-pointer that leads to the data block in said more recent snapshot, and one or more intermediate snapshots between the more recent snapshot and the less recent snapshot in the chain of snapshots.
-
Citations
32 Claims
-
1. A non-transitory computer-readable storage medium encoded with an executable program for generating skip-pointers in a chain of snapshots descending from a parent, wherein the program causes a processor to perform the following:
-
receiving a write request to a data block in the parent; determining if the write request is a first write request to the data block in the parent; when the write request is the first write request to the data block in the parent; copying the data block from the parent to a most recent snapshot in the chain of snapshots; writing a skip-pointer in at least one of the other snapshots in the chain of snapshots, the skip-pointer leading to the data block in the most recent snapshot; writing the data block in the parent; when the write request is not the first write request to the data block, only writing the data block in the parent. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A non-transitory computer-readable storage medium encoded with an executable program for generating skip-pointers in a chain of snapshots, wherein the program causes a processor to perform the following:
-
searching for a data block in a selected snapshot in the chain of snapshots; when the data block is not found in the selected snapshot, searching for the data block in more recent snapshots in the chain of snapshots; when the data block is found in one of the more recent snapshots, writing a skip-pointer in the selected snapshot that leads to the data block in the one of the more recent snapshots, wherein one or more intermediate snapshots are between the selected snapshot and the one of the more recent snapshots; and reading the data block from the one of the more recent snapshots. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A method for generating skip-pointers in a chain of snapshots descending from a parent, comprising:
-
receiving a write request to a data block in the parent; determining, using a programmed processor, if the write request is a first write request to the data block in the parent; when the write request is the first write request to the data block in the parent; copying, using the programmed processor, the data block from the parent to a most recent snapshot in the chain of snapshots; writing, using the programmed processor, a skip-pointer in at least one of the other snapshots in the chain of snapshots, the skip-pointer leading to the data block in the most recent snapshot; writing, using the programmed processor, the data block in the parent; when the write request is not the first write request to the data block, only writing, using the programmed processor, the data block in the parent. - View Dependent Claims (18, 19, 20, 21, 22, 23)
-
-
24. A method for generating skip-pointers in a chain of snapshots, comprising:
-
searching, using a programmed processor, for a data block in a selected snapshot in the chain of snapshots; when the data block is not found in the selected snapshot, searching, using the programmed processor, for the data block in more recent snapshots in the chain of snapshots; when the data block is found in one of the more recent snapshots, writing, using the programmed processor, a skip-pointer in the selected snapshot that leads to the data block in the one of the more recent snapshots, wherein one or more intermediate snapshots are between the selected snapshot and the one of the more recent snapshots; and reading, using the programmed processor, the data block from the one of the more recent snapshots. - View Dependent Claims (25, 26, 27, 28, 29, 30, 31, 32)
-
Specification