ivandasch commented on a change in pull request #9817:
URL: https://github.com/apache/ignite/pull/9817#discussion_r805698302



##########
File path: 
modules/platforms/dotnet/Apache.Ignite.Core/Impl/Client/ClientSocket.cs
##########
@@ -170,6 +176,29 @@ internal sealed class ClientSocket : IDisposable
 
             _features = Handshake(clientConfiguration, ServerVersion);
 
+            if (_features.HasFeature(ClientBitmaskFeature.Heartbeat) &&
+                clientConfiguration.HeartbeatInterval > TimeSpan.Zero)
+            {
+                _heartbeatInterval = clientConfiguration.HeartbeatInterval;
+
+                var serverIdleTimeout = TimeSpan.FromMilliseconds(
+                    DoOutInOp(ClientOp.GetIdleTimeout, null, r => 
r.Reader.ReadLong()));
+
+                if (_heartbeatInterval > serverIdleTimeout)

Review comment:
       I suppose that HeartbetInterval should not be greater than one-third of 
IdleTimeout (this is approach from ZookeeperClient).
   So logic is:
   1. If idleTimeout is greater than 0, and heartbeat interval is not set or 
larger than one-third of idle timeout -- set it as one-third of idle timeout. 
If hearbtBeatInterval less that one-third of idleTimeout -- use 
heartbeatInterval as is
   2. If idleTimeout is disabled, use heartbeat interval if it is provided.
   
   Another possible optimization -- do not set ping requests if ordinary 
requests are frequent enough




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to