Previous Topic: Change the Maximum Queue Size

Next Topic: Set the Retry Interval

Limit the Size of Queues Between Groups

When replicating between multiwrite groups, a DSA might receive more updates than it can send over the slow link between the groups. This might happen during a bulk update. If this continues, the multiwrite queue for the asynchronous peer will slowly build up, because updates are being added more quickly then they are being removed.

As the queue builds up it consumes more memory, which can cause machine memory limitations or exceed the multiwrite queue size.

To avoid this problem, you can use the set multi-write group-credit command to set an acceptable number of updates for the multiwrite queue.

When the number of queued updates exceeds the limit you have set, the DSA switches to synchronous multiwrite. In this mode, the DSA sends confirmation to the client after its peers have sent confirmation to it, which slows the rate at which updates are accepted, giving the queue time to empty. When the queue is smaller than the limit you set, the DSA switches back to asynchronous multiwrite.

Client updates are serial.

Responses from the multi-write peer will be less than the number of serial clients. Setting multi-write-outstanding-ops larger than the amount of concurrent clients should ensure this.

To limit the size of queues between groups

  1. Add the set multi-write-group-credit command to the limits file.
  2. Stop and restart the DSA.

More information:

set multi-write-group-credit Command