FIELD

This disclosure relates to computing systems and related devices and methods, and, more particularly, to method and apparatus for enabling consistent IO performance on undefined target devices in a cascaded snapshot environment.

SUMMARY

The following Summary and the Abstract set forth at the end of this application are provided herein to introduce some concepts discussed in the Detailed Description below. The Summary and Abstract sections are not comprehensive and are not intended to delineate the scope of protectable subject matter, which is set forth by the claims presented below.

All examples and features mentioned below can be combined in any technically possible way.

A snapshot for use in a cascaded snapshot environment includes a device level source sequence number and a direct image lookup data structure. The device level source sequence number indicates the level of the snapshot in the cascade, and the direct image lookup data structure indicates the location of the data within the cascade where the tracks of data are located. A target device for use in the cascaded snapshot environment includes a device level target sequence number, a track level sequence data structure, and a direct image lookup data structure. When the target device is linked to a snapshot, the device level target sequence number is incremented, which invalidates all tracks of the target device. The direct image lookup of the snapshot is copied from the snapshot to the target device, but a define process is not run on the target device such that the tracks of the target device remain undefined.

Read and write operations on the cascaded target device use the track level sequence numbers to validate the current data on the target. If a previous write has occurred on a track, the track level sequence number will indicate that the track is defined on the target device. Otherwise, once it is known that the track is undefined, the current DIL is used to locate the source data for the undefined target. The DIL provides consistent predictable direct lookup of the target location of backend allocations or source data at any depth in the snapshot target chain.

