HP StorageWorks Storage Mirroring for Linux User's Guide (T2558-96078, February 2008)

6 - 4
Queuing
Queuing to disk allows Storage Mirroring to accommodate high volume processing that might otherwise fill up system
memory. For example, on the source, this may occur if the data is changing faster than it can be transmitted to the target or
on the target, a locked file might cause processing to backup.
The following diagram will help you understand how queuing works. Each numbered step is described after the diagram.
1. If data cannot immediately be transmitted to the target, it is stored, or queued, in system memory. You can configure
how much system memory you want to use for queuing, but, 128 MB of memory is used by default.
2. When the allocated amount of system memory is full, new changed data bypasses the full system memory and is queued
directly to disk. Data queued to disk is written to a transaction log. Each transaction log can store 5 MB worth of data.
Once the limit has been reached, a new transaction log is created. The logs can be distinguished by the file name which
includes the target IP address, the Storage Mirroring port, the connection ID, and an incrementing sequence number.
3. When system memory is full, the most recent changed data is added to the disk queue, as described in step 2. This
means that system memory contains the oldest data. Therefore, when data is transmitted to the target, Storage
Mirroring pulls the data from system memory and sends it. This ensures that the data is transmitted to the target in the
same order it was changed on the source. Storage Mirroring automatically reads operations from the oldest transaction
log file into system memory. As a transaction log is depleted, it is deleted. When all of the transaction log files are
deleted, data is again written directly to system memory (step 1).
4. To ensure the integrity of the data on the target, the information must be applied in the same order as it was on the
source. If there are any delays in processing, for example because of a locked file, a similar queuing process occurs on the
target. Data that cannot immediately be applied is queued to system memory. By default, 128 MB of system memory is
also used on the target.
5. When the allocated amount of system memory on the target is full, new incoming data bypasses the full system memory
and is queued directly to disk. Data queued to disk is written to a transaction log. On the target, the transaction logs are
identified with the source IP address, the Storage Mirroring port, the connection ID, and an incrementing sequence
number.
6. Like the source, system memory on the target contains the oldest data so when data is applied to the target, Storage
Mirroring pulls the data from system memory. Storage Mirroring automatically moves operations from the oldest
transaction log file to system memory. As a transaction log is depleted, it is deleted. When all of the transaction log files
are deleted, data is again written directly to system memory (step 4).
NOTE: You may notice transaction log files that are not the defined size limit. This is because data operations are
not split. For example, if a transaction log has 10 KB left until the limit and the next operation to be applied
to that file is greater than 10 KB, a new transaction log file will be created to store that next operation.
Also, if one operation is larger than the defined size limit, the entire operation will be written to one
transaction log.
2
System Memory
100.10.10.9_1500_1_1.xlog
100.10.10.9_1500_1_4.xlog
100.10.10.9_1500_1_2.xlog
100.10.10.9_1500_1_3.xlog
System Memory
Source Server Target Server
3
5
216.234.244.47_1500_1_1.xlog
216.234.244.47_1500_1_4.xlog
216.234.244.47_1500_1_2.xlog
216.234.244.47_1500_1_3.xlog
File Change
1
File Change
6
4
Applied