Support for multiple temporal snapshots of same volume
First Claim
1. A computer-readable medium having computer-executable instructions, comprising:
- retaining a plurality of ordered snapshots associated with a base volume, wherein each snapshot includes an associated differential file; and
providing access to a region of a selected snapshot in the plurality of ordered snapshots, by determining whether data associated with at least part of the region exists in the differential file associated with the selected snapshot;
if the data exists in the differential file associated with the selected snapshot, associating the data with the at least part of the region; and
if the data does not exist in the differential file associated with the selected snapshot, determining if the data exists in a second differential file associated with a second snapshot in the plurality of ordered snapshots, wherein the second snapshot is later than the selected snapshot; and
if the data exists in the second differential file associated with the second snapshot, associating the data with the at least part of the region.
2 Assignments
0 Petitions
Accused Products
Abstract
A system and method for more efficiently maintaining multiple temporal snapshots of a common base volume. When the base volume is modified, such as when existing data is overwritten with new data, that modification may affect two or more of the snapshots. Before the modification, the existing data is copied only to the differential file associated with the latest snapshot. When a region of a selected snapshot is read, the region is read from the selected snapshot'"'"'s associated differential file. If the existing data is in the differential file, that data is returned to the reading process. If later snapshots have been taken, data associated with other parts of the region may be stored in one or more of the later differential files. If the differential file of the selected snapshot does not have data for each portion of the requested region, the mechanism continues by accessing each differential file associated with subsequent snapshots in temporal order from the earliest following the selected snapshot to the latest until either the region is complete or no later snapshots remain. Finally, if any part of the region was not filled in with data from one of the differential files, then that part of the region is read from the base volume.
260 Citations
14 Claims
-
1. A computer-readable medium having computer-executable instructions, comprising:
-
retaining a plurality of ordered snapshots associated with a base volume, wherein each snapshot includes an associated differential file; and
providing access to a region of a selected snapshot in the plurality of ordered snapshots, by determining whether data associated with at least part of the region exists in the differential file associated with the selected snapshot;
if the data exists in the differential file associated with the selected snapshot, associating the data with the at least part of the region; and
if the data does not exist in the differential file associated with the selected snapshot, determining if the data exists in a second differential file associated with a second snapshot in the plurality of ordered snapshots, wherein the second snapshot is later than the selected snapshot; and
if the data exists in the second differential file associated with the second snapshot, associating the data with the at least part of the region. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. In a computing environment, a method comprising:
-
receiving a request to read information from a selected snapshot in a plurality of snapshots of a base volume, the selected snapshot being operative to identify a set of data stored on the base volume at a given instant, each snapshot having an associated differential file;
decomposing the request into a plurality of requests, each request corresponding to at least one allocation unit;
selecting a differential file corresponding to the selected snapshot as a current differential file;
for each request in the plurality of requests;
(a) determining whether the current differential file contains data that satisfies the request, and;
(1) if so, reading the data to satisfy the request, and (2) if not, determining whether a next most recent snapshot having an associated differential file exists, and (i) if a next most recent snapshot exists, selecting the differential file corresponding to the next most recent snapshot as the current differential file and returning to step (a);
(ii) if a next most recent snapshot does not exist, reading the data from the base volume to satisfy the request. - View Dependent Claims (9, 10, 11, 12)
-
-
13. In a computing environment, a method comprising:
-
receiving a request to read information from a selected snapshot in a plurality of snapshots of a base volume, the selected snapshot being operative to identify a set of data stored on the base volume at a given instant, each snapshot having a corresponding differential file;
decomposing the request into a plurality of requests, each request corresponding to at least one allocation unit;
for each differential file, starting with the differential file corresponding to the selected snapshot and moving to each more recent differential file until the request is satisfied or no more recent differential file exists, reading data from the differential file for each request of the plurality that has data in the differential file; and
if no more recent differential file exists and the request is not fully satisfied, reading data from the base volume to fully satisfy the request. - View Dependent Claims (14)
-
Specification