You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Roman Puchkovskiy (Jira)" <ji...@apache.org> on 2024/02/26 07:12:00 UTC
[jira] [Updated] (IGNITE-20373) Fix IO threading model
[ https://issues.apache.org/jira/browse/IGNITE-20373?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Roman Puchkovskiy updated IGNITE-20373:
---------------------------------------
Ignite Flags: (was: Docs Required,Release Notes Required)
> Fix IO threading model
> ----------------------
>
> Key: IGNITE-20373
> URL: https://issues.apache.org/jira/browse/IGNITE-20373
> Project: Ignite
> Issue Type: Improvement
> Affects Versions: 3.0
> Reporter: Alexey Scherbakov
> Assignee: Roman Puchkovskiy
> Priority: Major
> Labels: ignite-3, ignite3_performance, threading
> Fix For: 3.0
>
>
> Currently IO is resubmitted to inboundExecutor for further processing (even there are corner cases then a message handler called in IO thread)
> It makes message processing essentially single threaded and introduces additional lag due to message transition to additional queue.
> addMessageHandler should be extended with a 3-d argument: a pool for submitting a callback for execution, or an executorSelector like in jraft.
> inboundExecutor should be changed to striped, use more than one thread, and serve messages without explicit executor. Delivery guaranties should be preserved: if a message A is send before B, B can't be processed on a receiver before A. A stripe is defined by sender-receiver pair (or can be user defined - TBD)
> outboundExecutor also looks like a contention point - need to be addressed as well
--
This message was sent by Atlassian Jira
(v8.20.10#820010)