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

Pavel Tupitsyn updated IGNITE-9876:
-----------------------------------
    Description: 
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 partition map retrieval:
1. Connect to a random node as usual
2. For all operations involving known cache key: retrieve partition map (only 
if it is not present or stale

> .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
>            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 partition map retrieval:
> 1. Connect to a random node as usual
> 2. For all operations involving known cache key: retrieve partition map (only 
> if it is not present or stale



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

Reply via email to