You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by db...@apache.org on 2021/05/26 13:29:58 UTC

[geode] branch support/1.14 updated: GEODE-9308: Update "Controlling Socket Use" to reflect new default (#6516)

This is an automated email from the ASF dual-hosted git repository.

dbarnes pushed a commit to branch support/1.14
in repository https://gitbox.apache.org/repos/asf/geode.git


The following commit(s) were added to refs/heads/support/1.14 by this push:
     new 3c48815  GEODE-9308: Update "Controlling Socket Use" to reflect new default (#6516)
3c48815 is described below

commit 3c48815b6bb0e3724ac0db0fdf96d1f46f9c97a7
Author: Dave Barnes <db...@apache.org>
AuthorDate: Wed May 26 06:25:48 2021 -0700

    GEODE-9308: Update "Controlling Socket Use" to reflect new default (#6516)
    
    * GEODE-9308: Update "Controlling Socket Use" to reflect new default
---
 ...ance_controls_controlling_socket_use.html.md.erb | 21 ++++++++++++++++++---
 1 file changed, 18 insertions(+), 3 deletions(-)

diff --git a/geode-docs/managing/monitor_tune/performance_controls_controlling_socket_use.html.md.erb b/geode-docs/managing/monitor_tune/performance_controls_controlling_socket_use.html.md.erb
index 81c685f..79ee6cd 100644
--- a/geode-docs/managing/monitor_tune/performance_controls_controlling_socket_use.html.md.erb
+++ b/geode-docs/managing/monitor_tune/performance_controls_controlling_socket_use.html.md.erb
@@ -25,17 +25,32 @@ The conserve-sockets setting indicates whether application threads share sockets
 
 You configure conserve-sockets for the member as a whole in `gemfire.properties`. Additionally, you can change the sockets conservation policy for the individual thread through the API.
 
-When conserve-sockets is set to false, each application thread uses a dedicated thread to send to each of its peers and a dedicated thread to receive from each peer. Disabling socket conservation requires more system resources, but can potentially improve performance by removing socket contention between threads and optimizing distributed ACK operations. For distributed regions, the put operation, and destroy and invalidate for regions and entries, can all be optimized with conserve-sock [...]
+By default, conserve-sockets is set to false: each application thread uses a dedicated thread to send to each of its peers and a dedicated thread to receive from each peer.
+This default setting optimizes system performance, but does incur significant overhead in terms of sockets, socket buffers, and related system resources.
+
+Keeping conserve-sockets set to false:
+
+- alleviates socket contention between threads
+- optimizes distributed ACK operations
+- for distributed regions, optimizes the put operation
+- for distributed regions, optimizes destroy and invalidate operations for regions and entries
+- for partitioned regions, enhances general throughput
+
+Setting conserve-sockets set to true:
+
+- reduces demands on system resources
+- slows system performance
+- increases risk of distributed deadlocks
 
 **Note:**
 When you have transactions operating on EMPTY, NORMAL or PARTITION regions, make sure that `conserve-sockets` is set to false to avoid distributed deadlocks.
 
 You can override the `conserve-sockets` setting for individual threads. These methods are in `org.apache.geode.distributed.DistributedSystem`:
 
--   `setThreadsSocketPolicy`. Sets the calling thread’s individual socket policy, overriding the policy set for the application as a whole. If set to true, the calling thread shares socket connections with other threads. If false, the calling thread has its own sockets.
+-   `setThreadsSocketPolicy`. Sets the calling thread’s individual socket policy, overriding the policy set for the application as a whole. If false, the calling thread has its own sockets. If true, the calling thread shares socket connections with other threads.
 -   `releaseThreadsSockets`. Frees any sockets held by the calling thread. Threads hold their own sockets only when conserve-sockets is false. Threads holding their own sockets can call this method to avoid holding the sockets until the socket-lease-time has expired.
 
-A typical implementation might set conserve-sockets to true at the application level and then override the setting for the specific application threads that perform the bulk of the distributed operations. The example below shows an implementation of the two API calls in a thread that performs benchmark tests. The example assumes the class implements Runnable. Note that the invocation, setThreadsSocketPolicy(false), is only meaningful if conserve-sockets is set to true at the application level.
+The example below shows an implementation of the two API calls in a thread that performs benchmark tests. The example assumes the class implements Runnable. Note that the invocation `setThreadsSocketPolicy(false)` is meaningful only if conserve-sockets is set to true at the application level.
 
 ``` pre
 public void run() {