Methods for allocating memory for logging data written by a host computer
to a source virtual disk and for managing memory allocated to a data log, in a
data storage system adapted to maintain redundant data storage sets at a destination
location(s) are disclosed. The data storage system maintains a data log that may
be activated when a destination volume is inaccessible. During the logging process
the system implements an adaptive memory allocation algorithm that adjusts the
log memory allocation increment as a function of the velocity of logging data written
by the host computer(s). Similarly, during a merge process the system implements
an adaptive memory deallocation algorithm that deallocates log memory in response
to the velocity of logging data written by the host computer(s) and the velocity
of merge data transmitted to the remote system. An amount of memory allocated to
logging data may be compared with an amount of memory allocated to corresponding
user data and, if greater, the data log terminated.