Konstantin Orlov created IGNITE-23960:
-----------------------------------------

             Summary: 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


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)

Reply via email to