You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Alexander Lapin (Jira)" <ji...@apache.org> on 2021/08/02 07:58:00 UTC

[jira] [Commented] (IGNITE-14841) Use shared distruptor pool for multiple raft group nodes.

    [ https://issues.apache.org/jira/browse/IGNITE-14841?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17391416#comment-17391416 ] 

Alexander Lapin commented on IGNITE-14841:
------------------------------------------

I don't like an idea of making different raft groups dependent of one another. Within the proposed approach with striped disruptor if some group keeps one of disruptor threads all other groups that share given thread will wait. Assuming that both partitions A and B share same disruptor thread, are you sure that there won't be any deadlocks, for example, in case of two concurrent transactions touching partitions A and B and B and A respectively?

Also pay attention that after merging [node stop logic|https://issues.apache.org/jira/browse/IGNITE-15148] to master additional maintenance is expected - splitting constructors and proper component.stop()  implementation.

All in all, if we still follow the concept of cross partition shared *striped* threads, patch looks good to me except one minor related to JRaftUtils.bootstrap
{code:java}
Am I right that JRaftUtils isn't a part of test package? If true it's strange to see "unittest" and "new PeerId("127.0.0.1", 0)" here. Is there any sense in bootstrap method in non-test environment? If not, did you consider moving bootstrap to test env?
{code}


> Use shared distruptor pool for multiple raft group nodes.
> ---------------------------------------------------------
>
>                 Key: IGNITE-14841
>                 URL: https://issues.apache.org/jira/browse/IGNITE-14841
>             Project: Ignite
>          Issue Type: Task
>            Reporter: Alexey Scherbakov
>            Assignee: Vladislav Pyatkov
>            Priority: Major
>              Labels: ignite-3
>             Fix For: 3.0.0-alpha3
>
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> Currently raft uses a thread per raft group per server bound to several distuptor instances.
> It doesn't scale well if the number of groups started on a single server is significant.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)