You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Andrey Mashenkov (Jira)" <ji...@apache.org> on 2025/03/10 13:23:00 UTC

[jira] [Updated] (IGNITE-23960) Sql. Execution node should not hold thread for too long

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

Andrey Mashenkov updated IGNITE-23960:
--------------------------------------
    Fix Version/s: 3.1

> Sql. Execution node should not hold thread for too long
> -------------------------------------------------------
>
>                 Key: IGNITE-23960
>                 URL: https://issues.apache.org/jira/browse/IGNITE-23960
>             Project: Ignite
>          Issue Type: Bug
>          Components: sql
>            Reporter: Konstantin Orlov
>            Assignee: Andrey Mashenkov
>            Priority: Major
>              Labels: ignite-3
>             Fix For: 3.1
>
>          Time Spent: 40m
>  Remaining Estimate: 0h
>
> Some execution nodes violates a key principle of cooperative multitasking: "Every job must not occupy a thread for too long." The nodes (at least {{NestedLoopJoinNode}}) are monopolizing threads for extended periods, which negatively impacts overall system responsiveness and throughput.
> Let's check all execution nodes and fix this violation. The common approach to address the issue is to reschedule execution after certain amount of rows has been processed. See {{HashAggregateNode#flush}} for example:
> {code:java}
>                 if (processed >= inBufSize && requested > 0) {
>                     // allow others to do their job
>                     context().execute(this::flush, this::onError);
>                     return;
>                 }
> {code}



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