Description
Need to revise all usages of org.apache.ignite.internal.sql.engine.exec.ExecutionContext#execute and check whether spawning a new task is legit in every particular case or it's better to do the work right now.
For example, lets take a look at org.apache.ignite.internal.sql.engine.exec.rel.ScanNode#request:
@Override public void request(int rowsCnt) throws Exception { assert rowsCnt > 0 && requested == 0 : "rowsCnt=" + rowsCnt + ", requested=" + requested; checkState(); requested = rowsCnt; if (!inLoop) { context().execute(this::push, this::onError); } }
in case of the very first request we will spawn a new task, but it would be better to drain the first batch of rows as well.
Attachments
Attachments
Issue Links
- relates to
-
IGNITE-20808 Sql. Poor performance of INSERT
- Resolved
- links to