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.
>