A storage server provides a set of client devices with access to a set of
mass storage devices. The storage server receives requests from the
client devices, each request representing a storage operation to be
performed by the storage server on the set of mass storage devices. The
storage server maintains a log of write requests received from the client
devices, the log including a separate log entry for each of the write
requests, and a separate checksum in each of the log entries. Each
checksum is for use by a checksum algorithm in determining data integrity
of the corresponding log entry. The checksum algorithm is selected, from
among a number of selectable a checksum algorithms, based on one or more
predetermined criteria, such as a desired balance between performance and
checksum strength.