[
https://issues.apache.org/jira/browse/IGNITE-17699?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Yury Gerzhedovich updated IGNITE-17699:
---------------------------------------
Epic Link: IGNITE-19479
> Improve implementation of QueryTaskExecuter
> -------------------------------------------
>
> Key: IGNITE-17699
> URL: https://issues.apache.org/jira/browse/IGNITE-17699
> Project: Ignite
> Issue Type: Improvement
> Components: sql
> Reporter: Yury Gerzhedovich
> Priority: Major
> Labels: calcite2-required, calcite3-required, ignite-3, tech-debt
>
> Current implementation is based on StrippedThreadExecutor which has major
> downside: long-living task prevents others task from the same stripe from
> being executed. This means that the sql engine can be blocked by any query
> that will take a thread for a long time (most simple example is UDF invoking
> a {{Thread.sleep()}}).
> Let's think about how we can improve this.
> Every implementation of QueryTaskExecuter must meet following requirements:
> # tasks with the same (queryId, fragmentId) can't be reordered
> # tasks with the same (queryId, fragmentId) can't be executed in parallel: if
> T1 and T2 are tasks, submit_time(T1) < submit_time(T2), then end_time(T1) <
> start_time(T2)
> # there must be 'happens-before' relation between execution of task with the
> same (queryId, fragmentId)
--
This message was sent by Atlassian Jira
(v8.20.10#820010)