You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ignite.apache.org by "kcheng.mvp" <kc...@gmail.com> on 2019/04/25 03:48:00 UTC

Failover in thin client mode

From the document
https://apacheignite.readme.io/docs/java-thin-client-initialization-and-configuration

knows that ignite **thin** client mode failover is achieved by specified
multiple hosts(endpoints).



But I know there is a new feature called  IEP-23: Best Effort Affinity for
thin clients
<https://cwiki.apache.org/confluence/display/IGNITE/IEP-23%3A+Best+Effort+Affinity+for+thin+clients>  

my understanding is that this new feature by sending  the cache commands to
the primary node of the key to improve the performance.

saying there is a cluster with 4 server nodes(a,b,c,d)

in the old fashion(without IEP-23), the service is available if there is at
least **One** server node is reachable.(for example: configure node-a,
node-b)

but the same case with IEP-23, how does the client knows the remained server
node in the cluster(ip address and port)? from java ignite thin client I
know a **Node ID** introduced, not I can not find the corresponding IP,
Port. from the document
https://apacheignite.readme.io/docs/java-thin-client-initialization-and-configuration
i can't find information about this.

As right now I am trying to implement an ignite go thin client, that's why I
ask the detail information.



 






--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/

Re: Failover in thin client mode

Posted by Ken Cheng <kc...@gmail.com>.
with  IEP-23

there is a change


   1. Tries to establish connection to hosts, which is not yet connected.
   This is required as changes of the topology may be caused by the new node
   joining the cluster.



Thanks,
Ken Cheng


On Thu, Apr 25, 2019 at 10:02 PM Igor Sapego <is...@apache.org> wrote:

> Hello,
>
> Are you developing a Go thin client? Can you share a link?
>
> There is already one go client I'm aware of [1], is yours related somehow?
>
> As for your question, thin client is given list of IPs and ports by a
> user. During the start,
> or in background thin client tries to establish connection to all of them.
> Upon connection,
> during handshake, it find outs node ID and associates it with given
> IP:port pair. Thin client
> should not try to establish connection with any address, which is not
> given by a user.
>
> Does it helps?
>
> [1] - https://github.com/amsokol/ignite-go-client
>
> Best Regards,
> Igor
>
>
> On Thu, Apr 25, 2019 at 12:17 PM kcheng.mvp <kc...@gmail.com> wrote:
>
>> Thank your information very much!
>>
>>
>>
>> --
>> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>>
>

Re: Failover in thin client mode

Posted by Igor Sapego <is...@apache.org>.
That's right. This IEP has been only implemented for C++ thin for now.

Best Regards,
Igor


On Fri, Apr 26, 2019 at 2:05 PM kcheng.mvp <kc...@gmail.com> wrote:

> Hi Igor,
>
> I just checked the jiras and found this IPE has not been implemented for
> *java thin client* yet ?
>
>
>
>
> https://issues.apache.org/jira/issues/?jql=project%20%3D%20Ignite%20AND%20labels%20IN%20(iep-23)%20ORDER%20BY%20status%20%20%20%20%20%20%20
>
>
>
>
>
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>

Re: Failover in thin client mode

Posted by "kcheng.mvp" <kc...@gmail.com>.
Hi Igor,

I just checked the jiras and found this IPE has not been implemented for
*java thin client* yet ?



https://issues.apache.org/jira/issues/?jql=project%20%3D%20Ignite%20AND%20labels%20IN%20(iep-23)%20ORDER%20BY%20status%20%20%20%20%20%20%20





--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/

Re: Failover in thin client mode

Posted by Ken Cheng <kc...@gmail.com>.
Thank your information very much!

Thanks,
Ken Cheng


On Fri, Apr 26, 2019 at 12:32 AM Igor Sapego <is...@apache.org> wrote:

> The point of "Best effort" is that we do not guarantee every requested
> to be routed to the optimal node, we only apply our best effort to make
> this happen.
>
> No, cluster will NOT return a address list to the client upon handshake
> because.
>
> 1. It may be not secure to connect to nodes, which user did not specified
> in the connection list.
> 2. It is not always possible, as client may be in a different network than
> server nodes, so cluster nodes do not necessary know IPs of nodes, which
> are valid for the client.
>
> Best Regards,
> Igor
>
>
> On Thu, Apr 25, 2019 at 7:25 PM Ken Cheng <kc...@gmail.com> wrote:
>
>> I am still on the design phrase of go thin client. once it's ready I will
>> share the link. thanks.
>> Thanks,
>> Ken Cheng
>>
>>
>> On Thu, Apr 25, 2019 at 10:02 PM Igor Sapego <is...@apache.org> wrote:
>>
>>> Hello,
>>>
>>> Are you developing a Go thin client? Can you share a link?
>>>
>>> There is already one go client I'm aware of [1], is yours related
>>> somehow?
>>>
>>> As for your question, thin client is given list of IPs and ports by a
>>> user. During the start,
>>> or in background thin client tries to establish connection to all of
>>> them. Upon connection,
>>> during handshake, it find outs node ID and associates it with given
>>> IP:port pair. Thin client
>>> should not try to establish connection with any address, which is not
>>> given by a user.
>>>
>>> Does it helps?
>>>
>>> [1] - https://github.com/amsokol/ignite-go-client
>>>
>>> Best Regards,
>>> Igor
>>>
>>>
>>> On Thu, Apr 25, 2019 at 12:17 PM kcheng.mvp <kc...@gmail.com>
>>> wrote:
>>>
>>>> Thank your information very much!
>>>>
>>>>
>>>>
>>>> --
>>>> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>>>>
>>>

Re: Failover in thin client mode

Posted by Igor Sapego <is...@apache.org>.
The point of "Best effort" is that we do not guarantee every requested
to be routed to the optimal node, we only apply our best effort to make
this happen.

No, cluster will NOT return a address list to the client upon handshake
because.

1. It may be not secure to connect to nodes, which user did not specified
in the connection list.
2. It is not always possible, as client may be in a different network than
server nodes, so cluster nodes do not necessary know IPs of nodes, which
are valid for the client.

Best Regards,
Igor


On Thu, Apr 25, 2019 at 7:25 PM Ken Cheng <kc...@gmail.com> wrote:

> I am still on the design phrase of go thin client. once it's ready I will
> share the link. thanks.
> Thanks,
> Ken Cheng
>
>
> On Thu, Apr 25, 2019 at 10:02 PM Igor Sapego <is...@apache.org> wrote:
>
>> Hello,
>>
>> Are you developing a Go thin client? Can you share a link?
>>
>> There is already one go client I'm aware of [1], is yours related somehow?
>>
>> As for your question, thin client is given list of IPs and ports by a
>> user. During the start,
>> or in background thin client tries to establish connection to all of
>> them. Upon connection,
>> during handshake, it find outs node ID and associates it with given
>> IP:port pair. Thin client
>> should not try to establish connection with any address, which is not
>> given by a user.
>>
>> Does it helps?
>>
>> [1] - https://github.com/amsokol/ignite-go-client
>>
>> Best Regards,
>> Igor
>>
>>
>> On Thu, Apr 25, 2019 at 12:17 PM kcheng.mvp <kc...@gmail.com> wrote:
>>
>>> Thank your information very much!
>>>
>>>
>>>
>>> --
>>> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>>>
>>

Re: Failover in thin client mode

Posted by Ken Cheng <kc...@gmail.com>.
I am still on the design phrase of go thin client. once it's ready I will
share the link. thanks.
Thanks,
Ken Cheng


On Thu, Apr 25, 2019 at 10:02 PM Igor Sapego <is...@apache.org> wrote:

> Hello,
>
> Are you developing a Go thin client? Can you share a link?
>
> There is already one go client I'm aware of [1], is yours related somehow?
>
> As for your question, thin client is given list of IPs and ports by a
> user. During the start,
> or in background thin client tries to establish connection to all of them.
> Upon connection,
> during handshake, it find outs node ID and associates it with given
> IP:port pair. Thin client
> should not try to establish connection with any address, which is not
> given by a user.
>
> Does it helps?
>
> [1] - https://github.com/amsokol/ignite-go-client
>
> Best Regards,
> Igor
>
>
> On Thu, Apr 25, 2019 at 12:17 PM kcheng.mvp <kc...@gmail.com> wrote:
>
>> Thank your information very much!
>>
>>
>>
>> --
>> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>>
>

Re: Failover in thin client mode

Posted by "kcheng.mvp" <kc...@gmail.com>.
Not sure my understanding is correct or not.
 There is the case when a new node join a cluster, if it's just as your said
then some key can not get directly from *the new added node*

I suppose it would work as below.

1: 5 node cluster(a,b,c,d,e)
2: even I just set two nodes/endpoints in the client configuration. upon the
first successfully hand-shark, the response should return all the nodes with
IP in the cluster. 
3: clients try to connect other server node.


if the client just connect to the specified nodes/endpoints then for the
other un-specified nodes. it still need 
an additional net hop.







--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/

Re: Failover in thin client mode

Posted by Igor Sapego <is...@apache.org>.
Hello,

Are you developing a Go thin client? Can you share a link?

There is already one go client I'm aware of [1], is yours related somehow?

As for your question, thin client is given list of IPs and ports by a user.
During the start,
or in background thin client tries to establish connection to all of them.
Upon connection,
during handshake, it find outs node ID and associates it with given IP:port
pair. Thin client
should not try to establish connection with any address, which is not given
by a user.

Does it helps?

[1] - https://github.com/amsokol/ignite-go-client

Best Regards,
Igor


On Thu, Apr 25, 2019 at 12:17 PM kcheng.mvp <kc...@gmail.com> wrote:

> Thank your information very much!
>
>
>
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>

Re: Failover in thin client mode

Posted by "kcheng.mvp" <kc...@gmail.com>.
Thank your information very much!



--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/

Re: Failover in thin client mode

Posted by Evgenii Zhuravlev <e....@gmail.com>.
Hi,

I believe that this paragraph describes what you want to see:
Updating partition mapping

It is important for client to keep partition mapping updated. To ensure
this, the following changes are proposed:

   1. Changes in Standard Message Response header. It is proposed to add
   flag to every response, that shows whether the Affinity Topology Version of
   the cluster has changed since the last request from the client.
   2. If the Affinity Topology Version of the cluster has changed since the
   last request from the client, new Affinity Topology Version is also
   included in the response.

Once client detects changes in the Affinity Topology, it does the following:

   1. Updates *distributionMap *and *partitionMap* (preferably
   asynchronously) for all active caches. It also may be done "on demand" - on
   the first call to the Cache instance;
   2. Tries to establish connection to hosts, which is not yet connected.
   This is required as changes of the topology may be caused by the new node
   joining the cluster.


More information is available on the wiki page.

Evgenii


чт, 25 апр. 2019 г. в 06:48, kcheng.mvp <kc...@gmail.com>:

> From the document
>
> https://apacheignite.readme.io/docs/java-thin-client-initialization-and-configuration
>
> knows that ignite **thin** client mode failover is achieved by specified
> multiple hosts(endpoints).
>
>
>
> But I know there is a new feature called  IEP-23: Best Effort Affinity for
> thin clients
> <
> https://cwiki.apache.org/confluence/display/IGNITE/IEP-23%3A+Best+Effort+Affinity+for+thin+clients>
>
>
> my understanding is that this new feature by sending  the cache commands to
> the primary node of the key to improve the performance.
>
> saying there is a cluster with 4 server nodes(a,b,c,d)
>
> in the old fashion(without IEP-23), the service is available if there is at
> least **One** server node is reachable.(for example: configure node-a,
> node-b)
>
> but the same case with IEP-23, how does the client knows the remained
> server
> node in the cluster(ip address and port)? from java ignite thin client I
> know a **Node ID** introduced, not I can not find the corresponding IP,
> Port. from the document
>
> https://apacheignite.readme.io/docs/java-thin-client-initialization-and-configuration
> i can't find information about this.
>
> As right now I am trying to implement an ignite go thin client, that's why
> I
> ask the detail information.
>
>
>
>
>
>
>
>
>
>
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>