Patent ID: 7752173
Filing Date: 2010-07-06
Classification: G06F

Abstract:
1. A method comprising: receiving, by a mirror storage server, ephemeral data from a source storage server; caching, by the mirror storage server, the ephemeral data in temporary storage in the mirror storage server, the ephemeral data to be stored in a spill file if the mirror storage server performs a cache flush; monitoring a utilization of the temporary storage in the mirror storage server; tracking an age of at least one data block in the temporary storage; transmitting a cache flush hint message from the mirror storage server to a source storage server before performing the cache flush, wherein performing the cache flush comprises separating a plurality of data blocks in a block cache into a plurality of groups, one of the plurality of groups to contain the filesystem intent record, and writing the group that contains the filesystem intent record to a storage subsystem after writing a group that does not contain the filesystem intent record to the storage subsystem, wherein the cache flush hint message indicates to the source storage server that the mirror storage server will perform the cache flush and allows the source storage server to predict the cache flush on the mirror storage server, wherein the cache flush hint is transmitted when a utilization of the temporary storage reaches a first predetermined level, and wherein the cache flush commences in response to one of the utilization of the temporary storage exceeding a second predetermined level or the age of a data block in the temporary storage exceeding a third predetermined level; waiting for an event to occur after the caching operation, where the event is one of a local cache flush trigger on the mirror storage server and a remote cache flush notification message, the message received from the source storage server, and wherein the ephemeral data is unnecessary if the remote cache flush notification message is the event, and wherein the remote cache flush notification message is sent by the second source storage server after a remote cache flush has occurred on the source storage server where data corresponding to the ephemeral data is written to a storage subsystem of the source storage server; if the event is a local cache flush trigger, storing the ephemeral data in a storage subsystem of the mirror storage server; and if the event is a remote cache flush notification, discarding the ephemeral data.