Pivotal Knowledge Base

Follow

Detailed explanation of the remove-unresponsive-client property

Environment

  • remove-unresponsive-client property in gemfire.properties file
  • maximum-message-count in cache.xml file

Background

As stated in the User's Guide, the "remove-unresponsive-client" property does the following:

When this property is set to true, the primary server drops unresponsive clients from itself, as well as, all secondaries. Clients are deemed unresponsive when their messaging queues become full on the server. While a client's queue is full, puts that would add to the queue block on the server.

This articles provides a more detailed description of how GemFire behaves with respect to this property, when maximum-message-count is configured in the cache.xml (for instance, to deal with very slow or unresponsive clients).

Description

In the default case, where remove-unresponsive-client=false, all the region operations that produce messages to clients (such as put) are blocked until additional space for the new message becomes available in the client queue. Hence, messages are not lost, but the performance of region operations may be negatively affected by slow or unresponsive clients.

In the case where remove-unresponsive-client=true, the client queues (CacheClientProxy) of problem clients are cleared and removed, and region operations are not blocked. Additionally, these clients lose their connections to the servers, so healthy clients should begin failover and try to reconnect. Queued messages are lost, but a healthy client can reconnect and resume receiving any new messages.

Conclusion

The remove-unresponsive-client property works in conjunction with the maximum-message-count cache.xml attribute to manage the trade-off between reliability and performance in the presence of slow or unresponsive clients.

An alternate approach, where unsent messages are overflowed to disks, is discussed in the following document: Limit the Server's Subscription Queue Memory Use .

Comments

Powered by Zendesk