Hi Maksim,

> half-state is a possible situation when an Ignite node goes down or
somehow removes connection to a thin client

Half-open state is also possible when, for example, an intermediate router
is rebooted [1].

This is what we seem to have encountered with one of our customers - they
have a stable cluster, and long-living (multiple days) thin client
connections which can be idle for some time.
And only when we send some data on such an idle connection do we discover
that it is broken.


> But with enabled (true by default) partitionAwareness feature clients can
be notified about topology changes

Partition awareness is a "lazy" notification in a form of a response
message flag [2].
You won't get one on an idle connection.


> the connections are removed on the server side by client idle timeout

Idle timeout is disabled by default.


> is it OK to keep such connections alive for a long time

I think it is up to the user.


> in the case of partition awareness features it can lead to wasting TCP
sockets on Ignite nodes, can't it

Can you please elaborate?


[1]
https://blog.stephencleary.com/2009/05/detection-of-half-open-dropped.html
[2]
https://cwiki.apache.org/confluence/display/IGNITE/IEP-23%3A+Best+Effort+Affinity+for+Thin+Clients

On Fri, Feb 4, 2022 at 4:01 PM Maksim Timonin <timoninma...@apache.org>
wrote:

> Hi Pavel,
>
> Thanks for starting this thread! Can I ask some questions here to get the
> feature more clearly?
>
> As I understand it correctly, half-state is a possible situation when an
> Ignite node goes down or somehow removes connection to a thin client. But
> with enabled (true by default) partitionAwareness feature clients can be
> notified about topology changes. So, there are possible cases:
> 1. ThinClient connects to a single node.
> 2. Ignite node removes connection from itself.
>
> I like the idea for the case with a single node, as it helps fail fast.
> But is it OK to connect a client to a single node only?
>
> For the second one: you mention that a case for the second option is
> "Long-living and mostly idle connections are especially susceptible to this
> behavior". If I understand correctly the connections are removed on the
> server side by client idle timeout. Can we just configure the idle timeout
> for cases where we really need keeping alive idle connections? Are there
> any other cases with unexpectedly dropped connections?
>
> I'm wondering is it OK to keep such connections alive for a long time?
> Also in the case of partition awareness features it can lead to wasting TCP
> sockets on Ignite nodes, can't it?
>
> Thanks!
>
>
>
>
>
>
> On Thu, Feb 3, 2022 at 2:24 PM Pavel Tupitsyn <ptupit...@apache.org>
> wrote:
>
>> Igniters,
>>
>> Please review the proposal to add heartbeat messages to the thin client
>> protocol (both 2.x and 3.x) and let me know your thoughts:
>>
>>
>> https://cwiki.apache.org/confluence/display/IGNITE/IEP-83+Thin+Client+Keepalive
>>
>

Reply via email to