You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Alexander Paschenko (JIRA)" <ji...@apache.org> on 2017/07/28 14:31:00 UTC

[jira] [Comment Edited] (IGNITE-5382) SQL: frequent switch between schemas cause severe slowdown

    [ https://issues.apache.org/jira/browse/IGNITE-5382?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16105031#comment-16105031 ] 

Alexander Paschenko edited comment on IGNITE-5382 at 7/28/17 2:30 PM:
----------------------------------------------------------------------

[~skalashnikov]
my comments:

- are we right to pass {{null}} as first arg when calling {{h2.executeSqlQueryWithTimer(null, c, "SELECT PLAN FROM "...}} in {{GridReduceQueryExecutor#explainPlan}}?

- please create an explicit class for new map's key in {{IgniteH2Indexing}}

- in {{IgniteH2Indexing#unregisterCache}}, we don't touch new {{connCache}} map at all, we should traverse all its elements and close/remove everything we don't need. Also we mutate {{conns}} without touching {{connCache}} in {{cancelAllQueries}} and {{stop}}. All in all I believe we should remove {{conns}} ultimately and leave map only - in fact, we don't benefit from that Set in any way now that we have single Map for everything (I don't see any random access cases for which Set semantic would be useful, we either always have a full key <Thread, Schema> or iterate over all collection anyway).







was (Author: al.psc):
[~skalashnikov]
my comments:

- are we right to pass {{null}} as first arg when calling {{h2.executeSqlQueryWithTimer(null, c, "SELECT PLAN FROM "...}} in {{GridReduceQueryExecutor#explainPlan}}?

- please create an explicit class for new map's key in {{IgniteH2Indexing}}

- in {{IgniteH2Indexing#unregisterCache}}, we don't touch new {{connCache}} map at all, we should traverse all its elements and close/remove everything we don't need. Also we mutate {{conns}} without touching {{connCache}} in {{cancelAllQueries}} and {{stop}}. All in all I believe we should remove {{conns}} at all and leave map only - in fact, we don't benefit for it in any way (I don't see any random access cases for which Set semantic would be useful, we either always have a full key <Thread, Schema> or iterate over all collection anyway).






> SQL: frequent switch between schemas cause severe slowdown
> ----------------------------------------------------------
>
>                 Key: IGNITE-5382
>                 URL: https://issues.apache.org/jira/browse/IGNITE-5382
>             Project: Ignite
>          Issue Type: Task
>          Components: cache, sql
>            Reporter: Vladimir Ozerov
>            Assignee: Sergey Kalashnikov
>              Labels: important, performance
>             Fix For: 2.2
>
>
> We have thread-bound cached connection to H2 database which is bound to specific schema. See {{IgniteH2Indexing.connectionForThread}}.
> When query with different schema is executed, we call {{SET SCHEMA}} command, which is rather expensive and may cause slowdown when queries form different caches are executed.
> To avoid this we should maintain thread-local map of such connections. Be careful with concurrency and resource leaks.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)