Techniques are described for storing portions of files on different
storage devices based on the devices' respective storage class. For
example, different extents from a large file within a system,
application, or database may be stored on different storage devices. The
storage devices may be part of a single storage system that includes some
storage devices that have different performance capabilities. The
decision of where, within the storage classes, to store data may be based
on the access patterns of the data. Access patterns regarding file
extents are tracked using respective access bits, which are set when a
memory block associated with an extent is accessed via an I/O operation.
In one embodiment, an access bitmap is modified to account for cached
blocks of file extents.