You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@geode.apache.org by Vahram Aharonyan <va...@vmware.com> on 2017/06/29 12:18:25 UTC

Questions on ConnectionTable

Hi All,

We have few questions about org.apache.geode.internal.tcp.ConnectionTable.

1. Is it a common/global table that keeps all connections to all other nodes and whoever tries to open a connection to a different node just picks it from this table?
2. Which flow is responsible for closing a connection and removing it from the ConnectionTable?
3. We see that there are high amount of connections in the table and they are all marked as closed. We would like to understand what exactly is holding those to be removed from the table?

Thanks,
Vahram.

Re: Questions on ConnectionTable

Posted by Bruce Schuchardt <bs...@pivotal.io>.
Outbound connections held by ConnectionTable may be thread-owned or 
shared.  Thread-owned connections are held in a map in a ThreadLocal for 
exclusive use by a thread.  These are created if you set 
"conserve-sockets=false" when creating your cache.  Shared connections 
are in common tables used by all threads.

There are also "receiver" connections that are not in these tables. 
These are created when another process connects to the server-port in 
TCPConduit and are tracked in a different collection in ConnectionTable.

Outbound connections are removed from the table if they are found to be 
closed when some thread goes to use them.  Inbound "receiver" 
connections are removed from their collection in ConnectionTable when 
the inbound socket closes.

Connections are also removed from the table if the process they are 
connected to leaves the distributed system.  This is done by 
GMSMembershipManager.

Connections are also shutdown and removed from ConnectionTable if you 
set a non-zero "socket-lease-time".  The default for this setting is 
60,000 milliseconds.

Finally, all connections are shutdown and removed from ConnectionTable 
when the cache closes.



On 6/29/17 5:18 AM, Vahram Aharonyan wrote:
>
> Hi All,
>
> We have few questions about 
> org.apache.geode.internal.tcp.ConnectionTable.
>
> 1. Is it a common/global table that keeps all connections to all other 
> nodes and whoever tries to open a connection to a different node just 
> picks it from this table?
>
> 2. Which flow is responsible for closing a connection and removing it 
> from the ConnectionTable?
>
> 3. We see that there are high amount of connections in the table and 
> they are all marked as closed. We would like to understand what 
> exactly is holding those to be removed from the table?
>
> Thanks,
>
> Vahram.
>