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.
Un sistema y un método para más eficientemente mantener fotos temporales múltiples de un volumen de la base común. Cuando se modifica el volumen bajo, por ejemplo cuando los datos existentes se sobreescriben con los nuevos datos, que la modificación puede afectar dos o más de las fotos. Antes de la modificación, los datos existentes se copian solamente al archivo diferenciado asociado a la foto más última. Cuando una región de una foto seleccionada se lee, la región se lee en el archivo diferenciado asociado de la foto seleccionada. Si los datos existentes están en el archivo diferenciado, esos datos se vuelven al proceso de la lectura. Si se han tomado fotos más últimas, los datos asociados a otras partes de la región se pueden almacenar en uno o más de los archivos diferenciados más últimos. Si el archivo diferenciado de la foto seleccionada no tiene datos para cada porción de la región solicitada, el mecanismo continúa teniendo acceso a cada archivo diferenciado asociado a fotos subsecuentes en orden temporal del más temprano siguiendo la foto seleccionada al más último hasta que o la región es completa o sigue habiendo ningunas fotos más últimas. Finalmente, si cualquier parte de la región no fue completada de datos a partir del uno de los archivos diferenciados, después esa parte de la región se lee en el volumen bajo.