You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Vyacheslav Koptilin (Jira)" <ji...@apache.org> on 2024/10/15 10:41:00 UTC

[jira] [Assigned] (IGNITE-23245) Placement returns assignments only in MS nodes

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

Vyacheslav Koptilin reassigned IGNITE-23245:
--------------------------------------------

    Assignee: Alexander Lapin

> Placement returns assignments only in MS nodes
> ----------------------------------------------
>
>                 Key: IGNITE-23245
>                 URL: https://issues.apache.org/jira/browse/IGNITE-23245
>             Project: Ignite
>          Issue Type: Improvement
>            Reporter: Vladislav Pyatkov
>            Assignee: Alexander Lapin
>            Priority: Major
>              Labels: ignite-3
>
> h3. Motivation
> The placement driver may be used from any nodes, but part of their method (they are declared in AssignmentsPlacementDriver interface) returns the correct value only in Meta storage nodes. It is just because the assignments are tracked only in MS nodes:
> {code:java}
> placementDriverNodesNamesProvider.get()
>     .thenCompose(placementDriverNodes -> {
>         String thisNodeName = clusterService.topologyService().localMember().name();
>         if (!placementDriverNodes.contains(thisNodeName)) {
>             return nullCompletedFuture();
>         }
>         try {
>             leaseUpdater.init();
>             return raftManager.startRaftGroupService(
>                     replicationGroupId,
>                     PeersAndLearners.fromConsistentIds(placementDriverNodes),
>                     topologyAwareRaftGroupServiceFactory,
>                     null // Use default commands marshaller.
>             ).thenCompose(client -> client.subscribeLeader(this::onLeaderChange).thenApply(v -> client));
>         } catch (NodeStoppingException e) {
>             return failedFuture(e);
>         }
>     })
> {code}
> {code:java}
> public void init() {
>   topologyTracker.startTrack();
>   assignmentsTracker.startTrack();
> }
> {code}
> h3. Implementation notesĀ 
> I assume we could get rid of using a primary replica instead of assignment in the SQL module (ExecutionTargetProviderImpl#allReplicas) right after the fix would have been completed.
> It would be great to fix it in this patch and prove it by the green viza.
> h3. Definition of done
> We ought to start the assignment tracker in all nodes to make all methods available in any cluster node.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)