You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Vladimir Ozerov (JIRA)" <ji...@apache.org> on 2019/03/18 11:58:00 UTC

[jira] [Updated] (IGNITE-9876) .NET: Thin Client: Implement Best Effort Affinity

     [ https://issues.apache.org/jira/browse/IGNITE-9876?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Vladimir Ozerov updated IGNITE-9876:
------------------------------------
    Component/s: thin client

> .NET: Thin Client: Implement Best Effort Affinity
> -------------------------------------------------
>
>                 Key: IGNITE-9876
>                 URL: https://issues.apache.org/jira/browse/IGNITE-9876
>             Project: Ignite
>          Issue Type: New Feature
>          Components: platforms, thin client
>            Reporter: Pavel Tupitsyn
>            Assignee: Pavel Tupitsyn
>            Priority: Major
>              Labels: .NET, iep-23
>
> Currently we connect to a random node, so when the primary node for the given key is different from that random node, there is an additional network hop.
> For single-key operations (scope of this ticket) we should strive to determine primary node and connect there directly.
> To determine primary node for a given key:
> 1. Retrieve partition map from server node (partition -> primaryNodeId)
> 2. Connect to all known server nodes (all endpoints from IgniteClientConfiguration) and get their Node Ids, build a map from endpoint (IP or host) to Node Id
> 3. Implement RendezvousAffinityFunction in C#
> Efficient automatic partition map retrieval:
> 1. When a partition map is needed, send a separate asynchronous operation (new server op type is required)
> 2. Do not block current user operation. If partition map is not present, just skip affinity step and use current connection
> 3. When response arrives with the partition map, save it with a timestamp
> 4. On every partition map access check the timestamp. Request new map if current map is older than N minutes.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)