alievmirza commented on code in PR #5477: URL: https://github.com/apache/ignite-3/pull/5477#discussion_r2014085610
########## modules/raft/src/integrationTest/java/org/apache/ignite/internal/raft/ItRaftGroupServiceTest.java: ########## @@ -206,10 +216,73 @@ public void testChangePeersAndLearnersAsync(TestInfo testInfo) throws Interrupte } } + @Test + public void testSystemRaftGroupHeartbeat() throws InterruptedException { Review Comment: please write a comment describing scenario and how it differs from testRaftGroupHeartbeat ########## modules/raft/src/main/java/org/apache/ignite/raft/jraft/core/NodeImpl.java: ########## @@ -1327,29 +1313,31 @@ private void initPools(final NodeOptions opts) { opts.setRaftMetrics(new RaftMetricSource(opts.getStripes(), opts.getLogStripesCount())); } - if (opts.getfSMCallerExecutorDisruptor() == null) { - opts.setfSMCallerExecutorDisruptor(new StripedDisruptor<FSMCallerImpl.ApplyTask>( - opts.getServerName(), - "JRaft-FSMCaller-Disruptor", - (nodeName, stripeName) -> IgniteThreadFactory.create(nodeName, stripeName, true, LOG, STORAGE_READ, STORAGE_WRITE), - opts.getRaftOptions().getDisruptorBufferSize(), - () -> new FSMCallerImpl.ApplyTask(), - opts.getStripes(), - false, - false, - opts.getRaftMetrics().disruptorMetrics("raft.fsmcaller.disruptor") - )); - } else if (ownFsmCallerExecutorDisruptorConfig != null) { + if (opts.isSystemGroup()) { opts.setfSMCallerExecutorDisruptor(new StripedDisruptor<FSMCallerImpl.ApplyTask>( opts.getServerName(), - "JRaft-FSMCaller-Disruptor-" + ownFsmCallerExecutorDisruptorConfig.getThreadPostfix(), + "JRaft-FSMCaller-Disruptor-" + groupId, opts.getRaftOptions().getDisruptorBufferSize(), () -> new FSMCallerImpl.ApplyTask(), - ownFsmCallerExecutorDisruptorConfig.getStripes(), + 1, Review Comment: let's use opts here as well, and set 1 on the level above, somewhere in `Loza` for example ########## modules/raft/src/main/java/org/apache/ignite/raft/jraft/option/NodeOptions.java: ########## @@ -296,10 +296,28 @@ public class NodeOptions extends RpcOptions implements Copiable<NodeOptions> { */ private @Nullable Long externallyEnforcedConfigIndex; + /** + * If the group is declared as a system group, significant threads are dedicated specifically for that one. Review Comment: Im not sure that significant is a correct word here. did you mean "certain"? -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: notifications-unsubscr...@ignite.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org