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



##########
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:
       > If idleTimeout is greater than 0, and heartbeat interval is not set -- 
set it as one-third of idle timeout
   
   This will break potentially desirable behavior: don't enable heartbeats and 
actually drop thin clients that become idle.
   
   > Another possible optimization -- do not set ping requests if ordinary 
requests are frequent enough
   
   We reset the timer on each write, see 
[ClientSocket.cs:854](https://github.com/apache/ignite/pull/9817/files#diff-81a8959836fbee45664e37261770ee4a215e2111c0eddd3535160ef7332232ecR854).




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