[jira] [Created] (IGNITE-14374) Optimize SQL inline indexes format for Ignite 3.0
Yury Gerzhedovich created IGNITE-14374: -- Summary: Optimize SQL inline indexes format for Ignite 3.0 Key: IGNITE-14374 URL: https://issues.apache.org/jira/browse/IGNITE-14374 Project: Ignite Issue Type: Improvement Components: sql Reporter: Yury Gerzhedovich As of now, we always use 1 extra byte per column to keep type. It adds significant effort to index size. We should rethink the format of store for Ignite 3.0. At first glance, it could be a separate single byte to keep the null value for nullable types. In this case, we could inline not more than 8 columns that see as reasonable. May be index record format should be the same as we use for the data records. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-14307) Calcite. Use statistics in cost model.
Yury Gerzhedovich created IGNITE-14307: -- Summary: Calcite. Use statistics in cost model. Key: IGNITE-14307 URL: https://issues.apache.org/jira/browse/IGNITE-14307 Project: Ignite Issue Type: Improvement Components: sql Reporter: Yury Gerzhedovich Currently, we use only table size for the cost model, however as [IEP-58|https://cwiki.apache.org/confluence/display/IGNITE/IEP-58%3A+Statistics+for+SQL+query+optimization] will be implemented we could use it to improve our cost model, -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-14306) Calcite. Hints support
Yury Gerzhedovich created IGNITE-14306: -- Summary: Calcite. Hints support Key: IGNITE-14306 URL: https://issues.apache.org/jira/browse/IGNITE-14306 Project: Ignite Issue Type: Improvement Components: sql Reporter: Yury Gerzhedovich We need to introduce hints for the new SQL engine. At least it could be planner hints, like an ENFORCE JOIN ORDER, Algorithm of join, switch on/off some planer rules. Maybe we could pass as a hint the whole execution plan, or modify some parameters, like costs. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-14275) SQL. Calcite: MapReduce aggregates for hash distribution
Yury Gerzhedovich created IGNITE-14275: -- Summary: SQL. Calcite: MapReduce aggregates for hash distribution Key: IGNITE-14275 URL: https://issues.apache.org/jira/browse/IGNITE-14275 Project: Ignite Issue Type: Improvement Components: sql Reporter: Yury Gerzhedovich Assignee: Yury Gerzhedovich Currently, we don't choice map-reduce aggregates algorithm for hash distribution, also the same issue there is for aggregates which could used with no GROUP BY clouse like a COUNT function. Need to implement this possibility. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-14229) Calcite bug. Engine can hangs
Yury Gerzhedovich created IGNITE-14229: -- Summary: Calcite bug. Engine can hangs Key: IGNITE-14229 URL: https://issues.apache.org/jira/browse/IGNITE-14229 Project: Ignite Issue Type: Bug Components: sql Reporter: Yury Gerzhedovich The Calcite SQL engine can hang during query execution due to some Exception which not properly handled. For example, try to execute query 'select reverse('NAME') from person'. As result will be following exception and hangs execution. {code:java} java.lang.NullPointerException at org.apache.calcite.rex.RexBuilder.deriveReturnType(RexBuilder.java:283) at org.apache.ignite.internal.processors.query.calcite.externalize.RelJson.toRex(RelJson.java:444) at org.apache.ignite.internal.processors.query.calcite.externalize.RelJsonReader$RelInputImpl.getExpressionList(RelJsonReader.java:239) at org.apache.ignite.internal.processors.query.calcite.trait.TraitUtils$1.getExpressionList(TraitUtils.java:308) at org.apache.ignite.internal.processors.query.calcite.rel.ProjectableFilterableTableScan.(ProjectableFilterableTableScan.java:85) at org.apache.ignite.internal.processors.query.calcite.rel.IgniteTableScan.(IgniteTableScan.java:46) at SC.apply(Unknown Source) at org.apache.ignite.internal.processors.query.calcite.externalize.RelJson$RelFactory.apply(RelJson.java:115) at org.apache.ignite.internal.processors.query.calcite.externalize.RelJsonReader.readRel(RelJsonReader.java:112) at org.apache.ignite.internal.processors.query.calcite.externalize.RelJsonReader.readRels(RelJsonReader.java:104) at org.apache.ignite.internal.processors.query.calcite.externalize.RelJsonReader.read(RelJsonReader.java:93) at org.apache.ignite.internal.processors.query.calcite.externalize.RelJsonReader.fromJson(RelJsonReader.java:78) at org.apache.ignite.internal.processors.query.calcite.exec.ExecutionServiceImpl.prepareFragment(ExecutionServiceImpl.java:528) at org.apache.ignite.internal.processors.query.calcite.prepare.QueryPlanCacheImpl.queryPlan(QueryPlanCacheImpl.java:84) at org.apache.ignite.internal.processors.query.calcite.exec.ExecutionServiceImpl.onMessage(ExecutionServiceImpl.java:847) at org.apache.ignite.internal.processors.query.calcite.exec.ExecutionServiceImpl.lambda$init$1(ExecutionServiceImpl.java:440) at org.apache.ignite.internal.processors.query.calcite.message.MessageServiceImpl.onMessageInternal(MessageServiceImpl.java:276) at org.apache.ignite.internal.processors.query.calcite.message.MessageServiceImpl.lambda$onMessage$0(MessageServiceImpl.java:256) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) [2021-02-24 17:04:40,816][ERROR][calciteQry-#265%calcite.AggregatesIntegrationTest1%][IgniteTestResources] Critical system error detected. Will be handled accordingly to configured handler [hnd=NoOpFailureHandler [super=AbstractFailureHandler [ignoredFailureTypes=UnmodifiableSet [SYSTEM_WORKER_BLOCKED, SYSTEM_CRITICAL_OPERATION_TIMEOUT]]], failureCtx=FailureContext [type=CRITICAL_ERROR, err=java.lang.NullPointerException]] java.lang.NullPointerException at org.apache.calcite.rex.RexBuilder.deriveReturnType(RexBuilder.java:283) at org.apache.ignite.internal.processors.query.calcite.externalize.RelJson.toRex(RelJson.java:444) at org.apache.ignite.internal.processors.query.calcite.externalize.RelJsonReader$RelInputImpl.getExpressionList(RelJsonReader.java:239) at org.apache.ignite.internal.processors.query.calcite.trait.TraitUtils$1.getExpressionList(TraitUtils.java:308) at org.apache.ignite.internal.processors.query.calcite.rel.ProjectableFilterableTableScan.(ProjectableFilterableTableScan.java:85) at org.apache.ignite.internal.processors.query.calcite.rel.IgniteTableScan.(IgniteTableScan.java:46) at SC.apply(Unknown Source) at org.apache.ignite.internal.processors.query.calcite.externalize.RelJson$RelFactory.apply(RelJson.java:115) at org.apache.ignite.internal.processors.query.calcite.externalize.RelJsonReader.readRel(RelJsonReader.java:112) at org.apache.ignite.internal.processors.query.calcite.externalize.RelJsonReader.readRels(RelJsonReader.java:104) at org.apache.ignite.internal.processors.query.calcite.externalize.RelJsonReader.read(RelJsonReader.java:93) at org.apache.ignite.internal.processors.query.calcite.externalize.RelJsonReader.fromJson(RelJsonReader.java:78) at org.apache.ignite.internal.processors.query.calcite.exec.ExecutionServiceImpl.prepareFragment(ExecutionServiceImpl.java:528)
[jira] [Created] (IGNITE-14203) IEP-54 Live schema for tables. Phase 2
Yury Gerzhedovich created IGNITE-14203: -- Summary: IEP-54 Live schema for tables. Phase 2 Key: IGNITE-14203 URL: https://issues.apache.org/jira/browse/IGNITE-14203 Project: Ignite Issue Type: Improvement Components: sql Reporter: Yury Gerzhedovich -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-14201) Calcite Phase 1
Yury Gerzhedovich created IGNITE-14201: -- Summary: Calcite Phase 1 Key: IGNITE-14201 URL: https://issues.apache.org/jira/browse/IGNITE-14201 Project: Ignite Issue Type: Improvement Components: sql Reporter: Yury Gerzhedovich -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-14196) SQL Calcite: prepare examples for documentation
Yury Gerzhedovich created IGNITE-14196: -- Summary: SQL Calcite: prepare examples for documentation Key: IGNITE-14196 URL: https://issues.apache.org/jira/browse/IGNITE-14196 Project: Ignite Issue Type: Task Components: sql Environment: SQL Reporter: Yury Gerzhedovich Seems the first pre-alpha version of the Calcite engine will be released together with the next version of Apache Ignite (2.11). So it required to start preparing documentation. The first step is preparing examples with explanation comments. Let's do it. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-14195) SQL Calcite: ease of use of new Calcite engine
Yury Gerzhedovich created IGNITE-14195: -- Summary: SQL Calcite: ease of use of new Calcite engine Key: IGNITE-14195 URL: https://issues.apache.org/jira/browse/IGNITE-14195 Project: Ignite Issue Type: Task Components: sql Reporter: Yury Gerzhedovich As of now, we don't have an easy way to use the Calcite engine. The proposal is following, add some 'hint' or preffix for SQL query which will force to use the new engine. For example: /*+ CALCITE_ENGINE */ SELECT * FROM table; -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-13971) Merge Calcite SQL engine to master
Yury Gerzhedovich created IGNITE-13971: -- Summary: Merge Calcite SQL engine to master Key: IGNITE-13971 URL: https://issues.apache.org/jira/browse/IGNITE-13971 Project: Ignite Issue Type: Improvement Components: sql Reporter: Yury Gerzhedovich The main goal is start development on a ticket-based approach when we could merge each new ticket to master separately, instead of integration branch approach. Also the new engine will be available to users to start using and testing it. We need to ensure the new SQL engine based on Calcite is not affect the current implementation, discuss it on a dev list and merge it to master branch. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-13691) Calcite Integration. Support of EXCEPT operator
Yury Gerzhedovich created IGNITE-13691: -- Summary: Calcite Integration. Support of EXCEPT operator Key: IGNITE-13691 URL: https://issues.apache.org/jira/browse/IGNITE-13691 Project: Ignite Issue Type: Improvement Components: sql Reporter: Yury Gerzhedovich Assignee: Taras Ledkov As of now new Calcite based SQL engine doesn't support opearator EXCEPT. We need to implement it. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-13580) Calcite integration. Perform of JOIN 2 partitioned tables to a replicated.
Yury Gerzhedovich created IGNITE-13580: -- Summary: Calcite integration. Perform of JOIN 2 partitioned tables to a replicated. Key: IGNITE-13580 URL: https://issues.apache.org/jira/browse/IGNITE-13580 Project: Ignite Issue Type: Improvement Components: sql Reporter: Yury Gerzhedovich As of now H2 based engine has a performance issue for case joining 2 partitioned tables to a replicated table. Calcite engine should choose a more optimal plan and perform such query faster As example: We have 3 tables: P1 (PARTITIONED) - 100M rows P2 (PARTITIONED) - 200K rows R (REPLICATED) - 80 rows SELECT count(*) FROM P1, P2, R WHERE P1.BATCHKEY = R.BATCHKEY AND P1.TIDENTIFIER = P2.TIDENTIFIER AND P1.TVER = P2.TVER AND P2.BOOK = 'CONST' AND R.ISLATEST = TRUE -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-13568) Calcite integration. Decrease bounds of index scan
Yury Gerzhedovich created IGNITE-13568: -- Summary: Calcite integration. Decrease bounds of index scan Key: IGNITE-13568 URL: https://issues.apache.org/jira/browse/IGNITE-13568 Project: Ignite Issue Type: Improvement Components: sql Reporter: Yury Gerzhedovich As of now, we analyze just the first column from predicate to detemine lower and upper bounds for complex indexes. It decreasing search space, however for particular cases, it could be not so effective, for example, the selectivity of the first column is very low. We need to take into account all columns from predicate and suitable index. Need to keep in mind that each column at the index could be sorted in a different manner. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-13566) Calcite integration. Table size statistics for cost planer
Yury Gerzhedovich created IGNITE-13566: -- Summary: Calcite integration. Table size statistics for cost planer Key: IGNITE-13566 URL: https://issues.apache.org/jira/browse/IGNITE-13566 Project: Ignite Issue Type: New Feature Components: sql Reporter: Yury Gerzhedovich Calcite planner doesn't know about the size of the tables and could make the wrong decision about join order. Need to add such knowledge. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-13549) Calcite integration. CREATE/DROP INDEX support
Yury Gerzhedovich created IGNITE-13549: -- Summary: Calcite integration. CREATE/DROP INDEX support Key: IGNITE-13549 URL: https://issues.apache.org/jira/browse/IGNITE-13549 Project: Ignite Issue Type: New Feature Components: sql Reporter: Yury Gerzhedovich We need to support DDL commands. The task about the support of CREATE/DROP INDEX. Potentially with syntaxis as we already have in the H2 engine. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-13548) Calcite integration. DROP TABLE support
Yury Gerzhedovich created IGNITE-13548: -- Summary: Calcite integration. DROP TABLE support Key: IGNITE-13548 URL: https://issues.apache.org/jira/browse/IGNITE-13548 Project: Ignite Issue Type: New Feature Components: sql Reporter: Yury Gerzhedovich We need to support DDL commands. The task about the support of DROP TABLE. Potentially with syntaxis as we already have in the H2 engine. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-13547) Calcite integration. CREATE TABLE support
Yury Gerzhedovich created IGNITE-13547: -- Summary: Calcite integration. CREATE TABLE support Key: IGNITE-13547 URL: https://issues.apache.org/jira/browse/IGNITE-13547 Project: Ignite Issue Type: New Feature Components: sql Reporter: Yury Gerzhedovich We need to support DDL commands. The task about the support of CREATE TABLE. Potentially with syntaxis as we already have in the H2 engine. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-13546) Calcite integration. Hash index spoon
Yury Gerzhedovich created IGNITE-13546: -- Summary: Calcite integration. Hash index spoon Key: IGNITE-13546 URL: https://issues.apache.org/jira/browse/IGNITE-13546 Project: Ignite Issue Type: New Feature Components: sql Reporter: Yury Gerzhedovich To have a performance boost need to implement hash index spoons. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-13545) Calcite integration. Index spoon
Yury Gerzhedovich created IGNITE-13545: -- Summary: Calcite integration. Index spoon Key: IGNITE-13545 URL: https://issues.apache.org/jira/browse/IGNITE-13545 Project: Ignite Issue Type: New Feature Components: sql Reporter: Yury Gerzhedovich To have a performance boost need to implement index spoons. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-13544) Calcite integration.
Yury Gerzhedovich created IGNITE-13544: -- Summary: Calcite integration. Key: IGNITE-13544 URL: https://issues.apache.org/jira/browse/IGNITE-13544 Project: Ignite Issue Type: New Feature Components: sql Reporter: Yury Gerzhedovich To have a performance boost need to implement merge joins. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-13543) Calcite integration. Support of merge aggregates
Yury Gerzhedovich created IGNITE-13543: -- Summary: Calcite integration. Support of merge aggregates Key: IGNITE-13543 URL: https://issues.apache.org/jira/browse/IGNITE-13543 Project: Ignite Issue Type: New Feature Components: sql Reporter: Yury Gerzhedovich To have a performance boost need to implement merge aggregates. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-13542) Calcite integration. Type system
Yury Gerzhedovich created IGNITE-13542: -- Summary: Calcite integration. Type system Key: IGNITE-13542 URL: https://issues.apache.org/jira/browse/IGNITE-13542 Project: Ignite Issue Type: New Feature Components: sql Reporter: Yury Gerzhedovich System of types for the new Calcite engine . Just review, seems it may be used as-is + write many tests. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-13541) Calcite integration. Support of Date/Time types
Yury Gerzhedovich created IGNITE-13541: -- Summary: Calcite integration. Support of Date/Time types Key: IGNITE-13541 URL: https://issues.apache.org/jira/browse/IGNITE-13541 Project: Ignite Issue Type: New Feature Components: sql Reporter: Yury Gerzhedovich Seems currently the new Calcite engine doesn't support date/time types. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-12635) Reservation WALRecord for compatibility purposes
Yury Gerzhedovich created IGNITE-12635: -- Summary: Reservation WALRecord for compatibility purposes Key: IGNITE-12635 URL: https://issues.apache.org/jira/browse/IGNITE-12635 Project: Ignite Issue Type: Task Components: persistence Reporter: Yury Gerzhedovich Assignee: Yury Gerzhedovich Fix For: 2.8 We need reserve record with id 59 (org.apache.ignite.internal.pagemem.wal.record.WALRecord.RecordType) for compatibility purposes. -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-12347) Flaky spark tests
Yury Gerzhedovich created IGNITE-12347: -- Summary: Flaky spark tests Key: IGNITE-12347 URL: https://issues.apache.org/jira/browse/IGNITE-12347 Project: Ignite Issue Type: Task Components: spark Reporter: Yury Gerzhedovich Assignee: Alexey Zinoviev There are few flaky spark tests. Need to investigate the reason and fix it. [TC spark flaky tests |https://ci.ignite.apache.org/project.html?projectId=IgniteTests24Java8&testNameId=5554421907791235109&branch=%3Cdefault%3E&tab=testDetails] -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (IGNITE-11674) Cancellation of SQL query request should await cancellation on all nodes
Yury Gerzhedovich created IGNITE-11674: -- Summary: Cancellation of SQL query request should await cancellation on all nodes Key: IGNITE-11674 URL: https://issues.apache.org/jira/browse/IGNITE-11674 Project: Ignite Issue Type: Task Components: sql Affects Versions: 2.8 Reporter: Yury Gerzhedovich Assignee: Yury Gerzhedovich Fix For: 2.8 As of now during cancellation process reduce's node send cancellation requests to map nodes and don't wait answer from them. Need to await answer from all of map nodes. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-11646) failed H2IndexesSystemViewTest.testIndexesView
Yury Gerzhedovich created IGNITE-11646: -- Summary: failed H2IndexesSystemViewTest.testIndexesView Key: IGNITE-11646 URL: https://issues.apache.org/jira/browse/IGNITE-11646 Project: Ignite Issue Type: Bug Components: sql Reporter: Yury Gerzhedovich Assignee: Yury Gerzhedovich Fix For: 2.8 Test related to GEO SPATIAL indexes failed due to refactotred indexes system view. Need to amend test to reflect recent changes in the view. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-11557) flaky test SqlSystemViewsSelfTest.testQueryHistoryMetricsModes
Yury Gerzhedovich created IGNITE-11557: -- Summary: flaky test SqlSystemViewsSelfTest.testQueryHistoryMetricsModes Key: IGNITE-11557 URL: https://issues.apache.org/jira/browse/IGNITE-11557 Project: Ignite Issue Type: Bug Reporter: Yury Gerzhedovich test failed with the following trace _[2019-03-18 08:24:48,268][ERROR][test-runner-#443693%query.SqlSystemViewsSelfTest%][GridMapQueryExecutor] Failed to execute local query. class org.apache.ignite.IgniteCheckedException: Failed to execute SQL query. Exception calling user-defined function: "can_fail(): null"; SQL statement: SELECT "STRING"._KEY, "STRING"._VAL FROM "STRING" WHERE _key=100 AND sleep()>0 AND can_fail()=0 [90105-197] at org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.executeSqlQuery(IgniteH2Indexing.java:846) at org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.executeSqlQueryWithTimer(IgniteH2Indexing.java:923) at org.apache.ignite.internal.processors.query.h2.twostep.GridMapQueryExecutor.onQueryRequest0(GridMapQueryExecutor.java:588) at org.apache.ignite.internal.processors.query.h2.twostep.GridMapQueryExecutor.onQueryRequest(GridMapQueryExecutor.java:388) at org.apache.ignite.internal.processors.query.h2.twostep.GridMapQueryExecutor.onMessage(GridMapQueryExecutor.java:203) at org.apache.ignite.internal.processors.query.h2.twostep.GridReduceQueryExecutor$1.applyx(GridReduceQueryExecutor.java:163) at org.apache.ignite.internal.processors.query.h2.twostep.GridReduceQueryExecutor$1.applyx(GridReduceQueryExecutor.java:161) at org.apache.ignite.internal.util.lang.IgniteInClosure2X.apply(IgniteInClosure2X.java:38) at org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.send(IgniteH2Indexing.java:2057) at org.apache.ignite.internal.processors.query.h2.twostep.GridReduceQueryExecutor.send(GridReduceQueryExecutor.java:1234) at org.apache.ignite.internal.processors.query.h2.twostep.GridReduceQueryExecutor.query(GridReduceQueryExecutor.java:757) at org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing$3.iterator(IgniteH2Indexing.java:1015) at org.apache.ignite.internal.processors.cache.QueryCursorImpl.iter(QueryCursorImpl.java:102) at org.apache.ignite.internal.processors.cache.query.RegisteredQueryCursor.iter(RegisteredQueryCursor.java:64) at org.apache.ignite.internal.processors.cache.QueryCursorImpl.getAll(QueryCursorImpl.java:121) at org.apache.ignite.internal.processors.query.SqlSystemViewsSelfTest.lambda$testQueryHistoryMetricsModes$0(SqlSystemViewsSelfTest.java:349) at org.apache.ignite.testframework.GridTestUtils.assertThrows(GridTestUtils.java:317) at org.apache.ignite.internal.processors.query.SqlSystemViewsSelfTest.testQueryHistoryMetricsModes(SqlSystemViewsSelfTest.java:347) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27) at org.apache.ignite.testframework.junits.GridAbstractTest$7.run(GridAbstractTest.java:2107) at java.lang.Thread.run(Thread.java:748) Caused by: org.h2.jdbc.JdbcSQLException: Exception calling user-defined function: "can_fail(): null"; SQL statement: SELECT "STRING"._KEY, "STRING"._VAL FROM "STRING" WHERE _key=100 AND sleep()>0 AND can_fail()=0 [90105-197] at org.h2.message.DbException.getJdbcSQLException(DbException.java:357) at org.h2.message.DbException.get(DbException.java:168) at org.h2.message.DbException.convertInvocation(DbException.java:324) at org.h2.engine.FunctionAlias$JavaMethod.getValue(FunctionAlias.java:468) at org.h2.expression.JavaFunction.getValue(JavaFunction.java:38) at org.h2.expression.Comparison.getValue(Comparison.java:239) at org.h2.expression.ConditionAndOr.getValue(ConditionAndOr.java:86) at org.h2.expression.Expression.getBooleanValue(Expression.java:178) at org.h2.command.dml.Select.isConditionMet(Select.java:312) at org.h2.command.dml.Select$LazyResultQueryFlat.fetchNextRow(Select.java:1455) at org.h2.result.LazyResult.hasNext(LazyResult.java:79) at org.h2.result.LazyResult.next(LazyResult.java:59) at org.h2.command.dml.Select.queryFlat(Select.java:527) at org.h2.command.dml.Select.queryWithoutCache(Select.java:633) at
[jira] [Created] (IGNITE-11532) Performance trace of executed query
Yury Gerzhedovich created IGNITE-11532: -- Summary: Performance trace of executed query Key: IGNITE-11532 URL: https://issues.apache.org/jira/browse/IGNITE-11532 Project: Ignite Issue Type: Task Reporter: Yury Gerzhedovich Need to add ability to trace and view performance of execution of SQL query with splitting by sql fragments. Additional details will be added after more deep investigate what exists in products another DB vendors. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-11530) SQL Index performance monitoring
Yury Gerzhedovich created IGNITE-11530: -- Summary: SQL Index performance monitoring Key: IGNITE-11530 URL: https://issues.apache.org/jira/browse/IGNITE-11530 Project: Ignite Issue Type: Task Components: sql Reporter: Yury Gerzhedovich Fix For: 2.8 We need to gather performance statistics for SQL indexes. Consider at least BTREE indexes, however may be we can also do it for all other types of indexes. It should be at least number of look up, scans, inline miss. Also need to investigate which statistics can be added here. After the ticket will be done we should expose it through JMX and SQL system view. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-11489) merge IO message listener for GridTopic.TOPIC_QUERY into single listener
Yury Gerzhedovich created IGNITE-11489: -- Summary: merge IO message listener for GridTopic.TOPIC_QUERY into single listener Key: IGNITE-11489 URL: https://issues.apache.org/jira/browse/IGNITE-11489 Project: Ignite Issue Type: Task Components: sql Reporter: Yury Gerzhedovich Fix For: 2.8 As of now we have few IO listeners for GridTopic.TOPIC_QUERY. It lead to spread of logic and we can't check that no any not expected messages received. Need to merge it to single listeners or have different topics. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-11470) Views don't show in Dbeaver
Yury Gerzhedovich created IGNITE-11470: -- Summary: Views don't show in Dbeaver Key: IGNITE-11470 URL: https://issues.apache.org/jira/browse/IGNITE-11470 Project: Ignite Issue Type: Task Components: sql Reporter: Yury Gerzhedovich Assignee: Yury Gerzhedovich Fix For: 2.8 At Database navigator tab we can see no a views. As of now we should see at least SQL system views. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-11456) Use separate pool for KILL QUERY command
Yury Gerzhedovich created IGNITE-11456: -- Summary: Use separate pool for KILL QUERY command Key: IGNITE-11456 URL: https://issues.apache.org/jira/browse/IGNITE-11456 Project: Ignite Issue Type: Task Components: sql Reporter: Yury Gerzhedovich Fix For: 2.8 As of now we use QUERY_POOL to process cancellation requests. It can lead to unable to cancel a queries in case the pool will be overflowed. So, need to use separate pool or MGMT pool + non-blocking processing through futures. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-11451) SQL system view for IO indexes statisitcs
Yury Gerzhedovich created IGNITE-11451: -- Summary: SQL system view for IO indexes statisitcs Key: IGNITE-11451 URL: https://issues.apache.org/jira/browse/IGNITE-11451 Project: Ignite Issue Type: Task Components: sql Reporter: Yury Gerzhedovich Fix For: 1.8 Need to expose system SQL views to be able view IO statistics for SQL indexes. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-11452) KILL QUERY for not cancellable queries should return error
Yury Gerzhedovich created IGNITE-11452: -- Summary: KILL QUERY for not cancellable queries should return error Key: IGNITE-11452 URL: https://issues.apache.org/jira/browse/IGNITE-11452 Project: Ignite Issue Type: Task Components: sql Reporter: Yury Gerzhedovich Fix For: 1.8 User should be aware that a query can't be cancelled and receive Exception with description about it. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-11445) Usability improvements for TABLES system SQL view
Yury Gerzhedovich created IGNITE-11445: -- Summary: Usability improvements for TABLES system SQL view Key: IGNITE-11445 URL: https://issues.apache.org/jira/browse/IGNITE-11445 Project: Ignite Issue Type: Task Components: sql Reporter: Yury Gerzhedovich Need to add CACHE_GROUP_NAME and CACHE_GROUP_ID attributes to TABLES system SQL view -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-11447) Replacements for default values in System SQL views.
Yury Gerzhedovich created IGNITE-11447: -- Summary: Replacements for default values in System SQL views. Key: IGNITE-11447 URL: https://issues.apache.org/jira/browse/IGNITE-11447 Project: Ignite Issue Type: Task Components: sql Reporter: Yury Gerzhedovich Fix For: 2.8 To avoid specific internal values need to change how we show values for some fields. Columns CACHES and CACHE_GROUPS: if there is no node filter (IgniteAllNodesPredicate) we should print NULL Columns CACHE_GROUPS.BACKUPS - show NULL for REPLICATED caches (Integer.MAX_VALUE is shown at the moment) -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-11446) Common prefix for local node system SQL view
Yury Gerzhedovich created IGNITE-11446: -- Summary: Common prefix for local node system SQL view Key: IGNITE-11446 URL: https://issues.apache.org/jira/browse/IGNITE-11446 Project: Ignite Issue Type: Task Components: sql Reporter: Yury Gerzhedovich Fix For: 2.8 All local views should have common prefix. Agreed on "NODE_". Affected view are CACHE_GROUPS_IO and LOCAL_SQL_RUNNING_QUERIES -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-11443) usability improvements for INDEXES system SQL view
Yury Gerzhedovich created IGNITE-11443: -- Summary: usability improvements for INDEXES system SQL view Key: IGNITE-11443 URL: https://issues.apache.org/jira/browse/IGNITE-11443 Project: Ignite Issue Type: Task Components: sql Reporter: Yury Gerzhedovich For all views need to: 1) move cache and cache group attributes to the beginning to form consistent hierarchy: cache group -> cache -> table -> index 2) columns GROUP_ID and GROUP_NAME should be renamed to CACHE_GROUP_ID and CACHE_GROUP_NAME respectively -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-11441) ignite-sys-cache present in SQL schemas
Yury Gerzhedovich created IGNITE-11441: -- Summary: ignite-sys-cache present in SQL schemas Key: IGNITE-11441 URL: https://issues.apache.org/jira/browse/IGNITE-11441 Project: Ignite Issue Type: Task Components: sql Reporter: Yury Gerzhedovich Investigate why ignite-sys-cache (and possible other caches without configured QueryEntity) are displayed in schemas. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-11442) Renaming IGNITE schema to something more clear SYS, SYSTEM, ...
Yury Gerzhedovich created IGNITE-11442: -- Summary: Renaming IGNITE schema to something more clear SYS, SYSTEM, ... Key: IGNITE-11442 URL: https://issues.apache.org/jira/browse/IGNITE-11442 Project: Ignite Issue Type: Task Components: sql Reporter: Yury Gerzhedovich Fix For: 2.8 Consider renaming IGNITE schema to something more clear. E.g. SYS or SYSTEM. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-11440) H2 SHOW commands support
Yury Gerzhedovich created IGNITE-11440: -- Summary: H2 SHOW commands support Key: IGNITE-11440 URL: https://issues.apache.org/jira/browse/IGNITE-11440 Project: Ignite Issue Type: Task Components: sql Reporter: Yury Gerzhedovich SHOW commands should be supported. Current some of them don't work, some of them show invalid info. We should intercept these commands and return our own results. [http://www.h2database.com/html/grammar.html#show] -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-11435) SQL: Create a view with query history
Yury Gerzhedovich created IGNITE-11435: -- Summary: SQL: Create a view with query history Key: IGNITE-11435 URL: https://issues.apache.org/jira/browse/IGNITE-11435 Project: Ignite Issue Type: Task Components: sql Reporter: Yury Gerzhedovich Fix For: 1.8 Need to expose Query History view - NODE_SQL_QUERY_HISTORY see QueryHistoryMetrics class. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-11434) SQL: Create a view with list of existing COLUMNS
Yury Gerzhedovich created IGNITE-11434: -- Summary: SQL: Create a view with list of existing COLUMNS Key: IGNITE-11434 URL: https://issues.apache.org/jira/browse/IGNITE-11434 Project: Ignite Issue Type: Task Components: sql Reporter: Yury Gerzhedovich Need to expose SQL system view with COLUMNS information. Need to investigate more deeper which of information should be there. As start point we can take [https://dev.mysql.com/doc/refman/8.0/en/columns-table.html] -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-11431) SQL: Create a view with list of existing SCHEMAS
Yury Gerzhedovich created IGNITE-11431: -- Summary: SQL: Create a view with list of existing SCHEMAS Key: IGNITE-11431 URL: https://issues.apache.org/jira/browse/IGNITE-11431 Project: Ignite Issue Type: Task Components: sql Reporter: Yury Gerzhedovich Assignee: Yury Gerzhedovich Fix For: 2.8 We need to create a system view of currently available SQL schemas. Minimal required information is Schema name May be considered the follow info: 1) flag system or user schema 2) number of usages a schema. Starting point: {{SqlSystemView}} -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-11429) rror on queryng IGNITE.LOCAL_SQL_RUNNING_QUERIES SQL view
Yury Gerzhedovich created IGNITE-11429: -- Summary: rror on queryng IGNITE.LOCAL_SQL_RUNNING_QUERIES SQL view Key: IGNITE-11429 URL: https://issues.apache.org/jira/browse/IGNITE-11429 Project: Ignite Issue Type: Bug Reporter: Yury Gerzhedovich Need to fix TIMESTAMP_WITH_TIMEZONE issue in the LOCAL_SQL_RUNNING_QUERIES view. SELECT * FROM IGNITE.LOCAL_SQL_RUNNING_QUERIES; [2019-02-27 11:28:24,357][ERROR][client-connector-#56][ClientListenerNioListener] Failed to process client request [req=JdbcQueryExecuteRequest [schemaName=PUBLIC, pageSize=1024, maxRows=200, sqlQry=SELECT * FROM IGNITE.LOCAL_SQL_RUNNING_QUERIES, args=Object[] [], stmtType=ANY_STATEMENT_TYPE, autoCommit=true]] class org.apache.ignite.binary.BinaryObjectException: Custom objects are not supported at org.apache.ignite.internal.processors.odbc.SqlListenerUtils.writeObject(SqlListenerUtils.java:219) at org.apache.ignite.internal.processors.odbc.jdbc.JdbcUtils.writeItems(JdbcUtils.java:44) at org.apache.ignite.internal.processors.odbc.jdbc.JdbcQueryExecuteResult.writeBinary(JdbcQueryExecuteResult.java:128) at org.apache.ignite.internal.processors.odbc.jdbc.JdbcResponse.writeBinary(JdbcResponse.java:88) at org.apache.ignite.internal.processors.odbc.jdbc.JdbcMessageParser.encode(JdbcMessageParser.java:91) at org.apache.ignite.internal.processors.odbc.ClientListenerNioListener.onMessage(ClientListenerNioListener.java:198) at org.apache.ignite.internal.processors.odbc.ClientListenerNioListener.onMessage(ClientListenerNioListener.java:48) at org.apache.ignite.internal.util.nio.GridNioFilterChain$TailFilter.onMessageReceived(GridNioFilterChain.java:279) at org.apache.ignite.internal.util.nio.GridNioFilterAdapter.proceedMessageReceived(GridNioFilterAdapter.java:109) at org.apache.ignite.internal.util.nio.GridNioAsyncNotifyFilter$3.body(GridNioAsyncNotifyFilter.java:97) at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120) at org.apache.ignite.internal.util.worker.GridWorkerPool$1.run(GridWorkerPool.java:70) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-11430) Error on querying IGNITE.LOCAL_SQL_RUNNING_QUERIES SQL view
Yury Gerzhedovich created IGNITE-11430: -- Summary: Error on querying IGNITE.LOCAL_SQL_RUNNING_QUERIES SQL view Key: IGNITE-11430 URL: https://issues.apache.org/jira/browse/IGNITE-11430 Project: Ignite Issue Type: Bug Components: sql Reporter: Yury Gerzhedovich Assignee: Yury Gerzhedovich Fix For: 2.8 Need to fix TIMESTAMP_WITH_TIMEZONE issue in the LOCAL_SQL_RUNNING_QUERIES view. It appears during quering through JSDBC client, like a Dbeaver SELECT * FROM IGNITE.LOCAL_SQL_RUNNING_QUERIES; [2019-02-27 11:28:24,357][ERROR][client-connector-#56][ClientListenerNioListener] Failed to process client request [req=JdbcQueryExecuteRequest [schemaName=PUBLIC, pageSize=1024, maxRows=200, sqlQry=SELECT * FROM IGNITE.LOCAL_SQL_RUNNING_QUERIES, args=Object[] [], stmtType=ANY_STATEMENT_TYPE, autoCommit=true]] class org.apache.ignite.binary.BinaryObjectException: Custom objects are not supported at org.apache.ignite.internal.processors.odbc.SqlListenerUtils.writeObject(SqlListenerUtils.java:219) at org.apache.ignite.internal.processors.odbc.jdbc.JdbcUtils.writeItems(JdbcUtils.java:44) at org.apache.ignite.internal.processors.odbc.jdbc.JdbcQueryExecuteResult.writeBinary(JdbcQueryExecuteResult.java:128) at org.apache.ignite.internal.processors.odbc.jdbc.JdbcResponse.writeBinary(JdbcResponse.java:88) at org.apache.ignite.internal.processors.odbc.jdbc.JdbcMessageParser.encode(JdbcMessageParser.java:91) at org.apache.ignite.internal.processors.odbc.ClientListenerNioListener.onMessage(ClientListenerNioListener.java:198) at org.apache.ignite.internal.processors.odbc.ClientListenerNioListener.onMessage(ClientListenerNioListener.java:48) at org.apache.ignite.internal.util.nio.GridNioFilterChain$TailFilter.onMessageReceived(GridNioFilterChain.java:279) at org.apache.ignite.internal.util.nio.GridNioFilterAdapter.proceedMessageReceived(GridNioFilterAdapter.java:109) at org.apache.ignite.internal.util.nio.GridNioAsyncNotifyFilter$3.body(GridNioAsyncNotifyFilter.java:97) at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120) at org.apache.ignite.internal.util.worker.GridWorkerPool$1.run(GridWorkerPool.java:70) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-11428) schemas don't show in dbeaver
Yury Gerzhedovich created IGNITE-11428: -- Summary: schemas don't show in dbeaver Key: IGNITE-11428 URL: https://issues.apache.org/jira/browse/IGNITE-11428 Project: Ignite Issue Type: Task Components: sql Reporter: Yury Gerzhedovich Fix For: 2.8 At Database navigator tab we can see just single schema PUBLIC. Need to add to jdbc driver support show all schemas except INFORMATIONAL, due to it H2 schema and contains incorrect information. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-11368) use the same information about indexes for ODBC JDBC drivers as for system view INDEXES
Yury Gerzhedovich created IGNITE-11368: -- Summary: use the same information about indexes for ODBC JDBC drivers as for system view INDEXES Key: IGNITE-11368 URL: https://issues.apache.org/jira/browse/IGNITE-11368 Project: Ignite Issue Type: Task Components: jdbc, odbc, sql Reporter: Yury Gerzhedovich Fix For: 2.8 As of now indexes information for ODBC/JDBC drivers get by another way then system SQL view INDEXES. Need to use single source of the information to have consistent picture. So, ODBC/JDBC drivers should use the same source as SQL view INDEXES (org.apache.ignite.internal.processors.query.h2.sys.view.SqlSystemViewIndexes) -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-11260) Document new system view for running queries
Yury Gerzhedovich created IGNITE-11260: -- Summary: Document new system view for running queries Key: IGNITE-11260 URL: https://issues.apache.org/jira/browse/IGNITE-11260 Project: Ignite Issue Type: Task Components: documentation, sql Reporter: Yury Gerzhedovich Assignee: Artem Budnikov Fix For: 2.8 We need to document new SQL system views with running queries - LOCAL_SQL_RUNNING_QUERIES. see org.apache.ignite.internal.processors.query.h2.sys.view.SqlSystemViewRunningQueries -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-11250) create affinity key index only when it required
Yury Gerzhedovich created IGNITE-11250: -- Summary: create affinity key index only when it required Key: IGNITE-11250 URL: https://issues.apache.org/jira/browse/IGNITE-11250 Project: Ignite Issue Type: Task Components: sql Reporter: Yury Gerzhedovich Assignee: Yury Gerzhedovich We shouldn't create AFFINITY_KEY index in case we already have PK INDEX which has first column the same as affinity column. As of now we have similar optimization: check all indexes to start on affinity column, however it doesn't work, due to affinity key index creating during create system indexes and no any indexes exist for a table for the moment. We just have prepared PK indexes, which should be checked. In case first column PK indexes equals to affinity column, then affinity index shouldn't be created see org.apache.ignite.internal.processors.query.h2.H2TableDescriptor#createSystemIndexes The task may be better to do together with IGNITE-11125, due to, seems, both of them required compatibility changes. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-11176) support cancellation for native SQL commands
Yury Gerzhedovich created IGNITE-11176: -- Summary: support cancellation for native SQL commands Key: IGNITE-11176 URL: https://issues.apache.org/jira/browse/IGNITE-11176 Project: Ignite Issue Type: Task Components: sql Reporter: Yury Gerzhedovich Assignee: Yury Gerzhedovich Fix For: 2.8 Currently all native SQL commands don't support cancellation. There are at least commands, COPY, CREATE/DROP INDEX, ALTER TABLE We need to add the ability -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-11125) Use alternative column instead of special _key for indexes.
Yury Gerzhedovich created IGNITE-11125: -- Summary: Use alternative column instead of special _key for indexes. Key: IGNITE-11125 URL: https://issues.apache.org/jira/browse/IGNITE-11125 Project: Ignite Issue Type: Task Components: sql Reporter: Yury Gerzhedovich Assignee: Yury Gerzhedovich Fix For: 2.8 Currently we can have the same columns for inline indexes twice because in part cases use alternative columns for another case special column _key. To avoid duplicate the same columns need to use alternative columns (real columns) always. For example for CREATE TABLE CACHE_SQL (ID INT PRIMARY KEY, MY_VAL VARCHAR) will be used index with two columns ID and _KEY. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-11056) SQL: Create a view with list of existing indexes
Yury Gerzhedovich created IGNITE-11056: -- Summary: SQL: Create a view with list of existing indexes Key: IGNITE-11056 URL: https://issues.apache.org/jira/browse/IGNITE-11056 Project: Ignite Issue Type: Task Components: sql Reporter: Yury Gerzhedovich Assignee: Yury Gerzhedovich Fix For: 2.8 We need to create a SQL system view of currently available SQL indexes. It should contains at least: # Schema name # Table name # Index name # Collation (ASC or DESC) Potential information which could be included into the view: # Owning cache ID # number of columns at the index # query parallelism # inline size # is affinity # is pk # approx recommended inline size List of columns could be as part of the view as columns with sequence of id such columns or exposed as separate view. The ticket will be updated after discussion on dev list. Starting point: {{SqlSystemView}} -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-10827) auto close iterator for query cursor when all data has been read
Yury Gerzhedovich created IGNITE-10827: -- Summary: auto close iterator for query cursor when all data has been read Key: IGNITE-10827 URL: https://issues.apache.org/jira/browse/IGNITE-10827 Project: Ignite Issue Type: Task Components: sql Reporter: Yury Gerzhedovich Assignee: Yury Gerzhedovich There is QueryCursorImpl class which we use as main realization of cursor for H2 iterators. As of now we call close method explicit when we suppose that all data already read. Will be better call close() method when iterator hasNext() method return false or when next() method of iterator throw any Exception. Such realization will be more safely and simple to use. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-10823) Close all open cursors for running queries on Ignite stop
Yury Gerzhedovich created IGNITE-10823: -- Summary: Close all open cursors for running queries on Ignite stop Key: IGNITE-10823 URL: https://issues.apache.org/jira/browse/IGNITE-10823 Project: Ignite Issue Type: Task Components: sql Affects Versions: 2.8 Reporter: Yury Gerzhedovich Assignee: Yury Gerzhedovich Fix For: 2.8 Currently we can have situation when user doesn't close a cursors after use it or don't full read it. In this case we have potential memory leak with opened cursors. Need to close and set as null for all such running queries. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-10754) Query history statistics API
Yury Gerzhedovich created IGNITE-10754: -- Summary: Query history statistics API Key: IGNITE-10754 URL: https://issues.apache.org/jira/browse/IGNITE-10754 Project: Ignite Issue Type: Task Components: sql Reporter: Yury Gerzhedovich Assignee: Yury Gerzhedovich As of now we have query statistics (*_org.apache.ignite.IgniteCache#queryMetrics_*) , but have few issues. 1) Duration execution it just time between start execution and return cursor to client and doesn't include all life time of query. 2) It doesn't know about multistatement queries. Such queries participate in statistics as single query without splitting. 3) API to access the statistics expose as depend on cache, however query don't have such dependency. Need to create parallel similar realization as we already have. Use new infrastructure of tracking running queries developed under IGNITE-10621 and update statistics on unregister phase. Expose API on upper level then it placed now. Right place will be written later. Old API will be marked as deprecated. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-10689) Expose IO statistics for run query
Yury Gerzhedovich created IGNITE-10689: -- Summary: Expose IO statistics for run query Key: IGNITE-10689 URL: https://issues.apache.org/jira/browse/IGNITE-10689 Project: Ignite Issue Type: Task Components: sql Reporter: Yury Gerzhedovich Fix For: 2.8 Need to be able get IO statistics for a query (may be as part of EXPLAIN). Details will be described later. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-10688) Expose SQL views for IO statistics
Yury Gerzhedovich created IGNITE-10688: -- Summary: Expose SQL views for IO statistics Key: IGNITE-10688 URL: https://issues.apache.org/jira/browse/IGNITE-10688 Project: Ignite Issue Type: Task Components: persistence, sql Reporter: Yury Gerzhedovich Fix For: 2.8 As of now no such way to get IO statistics through SQL. Need to expose view(s) to be able view the statistics. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-10687) Document new JMX bean wchih expose IO statistics.
Yury Gerzhedovich created IGNITE-10687: -- Summary: Document new JMX bean wchih expose IO statistics. Key: IGNITE-10687 URL: https://issues.apache.org/jira/browse/IGNITE-10687 Project: Ignite Issue Type: Task Components: documentation, sql Reporter: Yury Gerzhedovich Fix For: 2.8 We need to document a new JMX bean which expose IO statistics. Start point is [https://github.com/apache/ignite/blob/master/modules/core/src/main/java/org/apache/ignite/mxbean/IoStatisticsMetricsMXBean.java] -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-10621) Track all running queries
Yury Gerzhedovich created IGNITE-10621: -- Summary: Track all running queries Key: IGNITE-10621 URL: https://issues.apache.org/jira/browse/IGNITE-10621 Project: Ignite Issue Type: Task Components: sql Reporter: Yury Gerzhedovich Assignee: Yury Gerzhedovich Fix For: 2.8 As of now Ignite track running queries in few places and use GridRunningQueryInfo to keep information about each of running query. Unfortunately we track not all running queries. Need to track all DML and Select queries. Be able to distinguish user initial queries and system auxiliary queries, e.g. map/reduce queries or select for DML operations. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-10534) DDL operations don't work on not started caches
Yury Gerzhedovich created IGNITE-10534: -- Summary: DDL operations don't work on not started caches Key: IGNITE-10534 URL: https://issues.apache.org/jira/browse/IGNITE-10534 Project: Ignite Issue Type: Bug Components: sql Affects Versions: 2.8 Reporter: Yury Gerzhedovich Assignee: Yury Gerzhedovich Fix For: 2.8 Exception trows in case try execute create or drop index operations for not started cache on not affinity node java.lang.AssertionError at org.apache.ignite.internal.processors.query.h2.ddl.DdlStatementsProcessor.isDdlSupported(DdlStatementsProcessor.java:532) -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-10347) Expose system SQL view for running queries
Yury Gerzhedovich created IGNITE-10347: -- Summary: Expose system SQL view for running queries Key: IGNITE-10347 URL: https://issues.apache.org/jira/browse/IGNITE-10347 Project: Ignite Issue Type: Task Reporter: Yury Gerzhedovich Assignee: Yury Gerzhedovich Need to expose system SQL view to provide list of running queries. Proposed name is *running_queries* with following columns: query_id, node_id, sql, schema_name, connection_id, duration. Where, query_id - cluster unique id of query. node_id - id of node where query was started sql - sql command schema_name - SQL schema name connection_id - unique connection id duration - time in ms from start of execution of query The view should contains all running queries on grid. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-10217) Unwrap _KEY for secondary index
Yury Gerzhedovich created IGNITE-10217: -- Summary: Unwrap _KEY for secondary index Key: IGNITE-10217 URL: https://issues.apache.org/jira/browse/IGNITE-10217 Project: Ignite Issue Type: Task Components: sql Reporter: Yury Gerzhedovich Assignee: Yury Gerzhedovich Fix For: 2.8 Currently for all secondary indexes _KEY (PK) use for comparison order due to secondary index can be not unique. We already implemented unwrap _KEY for automatically created PK (https://issues.apache.org/jira/browse/IGNITE-8386). Need to do the same for _KEY in secondary indexes. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-10168) SQL security monitoring
Yury Gerzhedovich created IGNITE-10168: -- Summary: SQL security monitoring Key: IGNITE-10168 URL: https://issues.apache.org/jira/browse/IGNITE-10168 Project: Ignite Issue Type: Task Components: sql Reporter: Yury Gerzhedovich Security monitoring: For each query we should track who started query: subject id, application name/module/label -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-10166) JDBC session level IO stats ON/OFF
Yury Gerzhedovich created IGNITE-10166: -- Summary: JDBC session level IO stats ON/OFF Key: IGNITE-10166 URL: https://issues.apache.org/jira/browse/IGNITE-10166 Project: Ignite Issue Type: Task Components: sql Reporter: Yury Gerzhedovich IO stats could be enabled/disabled for the given session through SQL commands, e.g. *_SET STATISTICS _* -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-10165) Gather query stats and expose interfaces to access it
Yury Gerzhedovich created IGNITE-10165: -- Summary: Gather query stats and expose interfaces to access it Key: IGNITE-10165 URL: https://issues.apache.org/jira/browse/IGNITE-10165 Project: Ignite Issue Type: Task Reporter: Yury Gerzhedovich For all executed queries we should gather statistics. They should be grouped by SQL query and have at least min, max, avg time of execution; min, max, avg of IO operations (when IO stats are enabled); number of executions. Access to the statistics should be provided through both JMX and system SQL view -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-10164) Support query cancel for ODBC and thin clients
Yury Gerzhedovich created IGNITE-10164: -- Summary: Support query cancel for ODBC and thin clients Key: IGNITE-10164 URL: https://issues.apache.org/jira/browse/IGNITE-10164 Project: Ignite Issue Type: Task Components: sql Reporter: Yury Gerzhedovich Need to support query cancel for ODBC and thin clients -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-10163) Support query cancel for JDBC, ODBC and thin clients
Yury Gerzhedovich created IGNITE-10163: -- Summary: Support query cancel for JDBC, ODBC and thin clients Key: IGNITE-10163 URL: https://issues.apache.org/jira/browse/IGNITE-10163 Project: Ignite Issue Type: Task Components: sql Environment: Need to support query cancel for JDBC - Statement.cancel() method Reporter: Yury Gerzhedovich -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-10161) Be able to cancel any query by query id
Yury Gerzhedovich created IGNITE-10161: -- Summary: Be able to cancel any query by query id Key: IGNITE-10161 URL: https://issues.apache.org/jira/browse/IGNITE-10161 Project: Ignite Issue Type: Task Components: sql Reporter: Yury Gerzhedovich Assignee: Yury Gerzhedovich Fix For: 2.8 User should be able to cancel any query by query id through both JMX and SQL command. SQL syntax: *KILL QUERY _ _* Query should be canceled together with its parts on all nodes. Initial cancel query sends to initial node *node_id* which can cancel all related parts of query on other nodes. In case *node_id* node not available cancel query should be sent all nodes. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-10160) Add unique identifier for all SQL queries
Yury Gerzhedovich created IGNITE-10160: -- Summary: Add unique identifier for all SQL queries Key: IGNITE-10160 URL: https://issues.apache.org/jira/browse/IGNITE-10160 Project: Ignite Issue Type: Task Components: sql Reporter: Yury Gerzhedovich Assignee: Yury Gerzhedovich Fix For: 2.8 Each of execution query should have unique identifier for whole cluster. It could be an initial node UUID + sequentially growing number of an executing queries on the node. As example: *b3c0624a-122c-46ea-9d65-67b56df1* and *341*. This query id should be used for all of the query parts executed on other nodes. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-9851) Share local node statistics between all nodes
Yury Gerzhedovich created IGNITE-9851: - Summary: Share local node statistics between all nodes Key: IGNITE-9851 URL: https://issues.apache.org/jira/browse/IGNITE-9851 Project: Ignite Issue Type: Task Components: sql Reporter: Yury Gerzhedovich Assignee: Yury Gerzhedovich Each node contains it's local node statistics. User want to know cluster wide statistics for a caches and indexes. Need to share local node statistics between all nodes and expose interface to derive the statistics. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-9778) Gathering local node statistics on query level
Yury Gerzhedovich created IGNITE-9778: - Summary: Gathering local node statistics on query level Key: IGNITE-9778 URL: https://issues.apache.org/jira/browse/IGNITE-9778 Project: Ignite Issue Type: Task Components: sql Reporter: Yury Gerzhedovich Fix For: 2.8 Should be gathered and exposed IO statistics on query level. It should contains number of physical read/write and logical read operations. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-9777) Gathering local node statistics with cache and index dimensions
Yury Gerzhedovich created IGNITE-9777: - Summary: Gathering local node statistics with cache and index dimensions Key: IGNITE-9777 URL: https://issues.apache.org/jira/browse/IGNITE-9777 Project: Ignite Issue Type: Task Reporter: Yury Gerzhedovich Assignee: Yury Gerzhedovich -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-9547) Document DML operations prohibited inside transaction
Yury Gerzhedovich created IGNITE-9547: - Summary: Document DML operations prohibited inside transaction Key: IGNITE-9547 URL: https://issues.apache.org/jira/browse/IGNITE-9547 Project: Ignite Issue Type: Task Components: documentation, sql Reporter: Yury Gerzhedovich Fix For: 2.7 Docs says: ""Presently, DML supports the atomic mode only meaning that if there is a DML query that is executed as a part of an Ignite transaction then it will not be enlisted in the transaction's writing queue and will be executed right away"" However it's wrong. We need to document that now any DML operations is prohibited and throw Exception in case it will be executed inside a transaction. Also appeared new boolean property IGNITE_ALLOW_DML_INSIDE_TRANSACTION. it is necessary to emulate the old behavior. In case value is true then DML operation is allowed, but it be applied only after transaction will be commited. By default value is false. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-9519) PK as complex type should can be keep at inline index
Yury Gerzhedovich created IGNITE-9519: - Summary: PK as complex type should can be keep at inline index Key: IGNITE-9519 URL: https://issues.apache.org/jira/browse/IGNITE-9519 Project: Ignite Issue Type: Task Components: sql Affects Versions: 2.6 Reporter: Yury Gerzhedovich Assignee: Yury Gerzhedovich Currently in case PK is complex type it can not be keep at inline index. This is critical performance issue due to for any put or get operation it cant' be fully comparable and require read full object from the heap or even disk storage. To mitigate the problem we need add ability keep complex type (java object) at inline indexes. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-9490) Connection.getMetaData.getIndexInfo method doesn't return PK indexes
Yury Gerzhedovich created IGNITE-9490: - Summary: Connection.getMetaData.getIndexInfo method doesn't return PK indexes Key: IGNITE-9490 URL: https://issues.apache.org/jira/browse/IGNITE-9490 Project: Ignite Issue Type: Bug Components: sql Affects Versions: 2.6 Reporter: Yury Gerzhedovich Connection.getMetaData.getIndexInfo method doesn't return PK indexes. Apache Ignite should return all exists indexes include PK one. Also order of result should be correspond Javadoc ('ordered by NON_UNIQUE, TYPE, INDEX_NAME, and ORDINAL_POSITION') - at present it is not so. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Created] (IGNITE-9395) Incorrect link to javadoc
Yury Gerzhedovich created IGNITE-9395: - Summary: Incorrect link to javadoc Key: IGNITE-9395 URL: https://issues.apache.org/jira/browse/IGNITE-9395 Project: Ignite Issue Type: Task Components: documentation Affects Versions: 2.6, 2.5 Reporter: Yury Gerzhedovich Javadoc's links refer to 1.0.0 version of Ignite instead of latest one. For example at page [https://apacheignite.readme.io/docs/events] there is link javadoc to [https://ignite.apache.org/releases/1.0.0/javadoc/] need to fix it to latest version of javadoc - [https://ignite.apache.org/releases/latest/javadoc/] Seems it issue for all other pages - need to recheck and fix it. -- This message was sent by Atlassian JIRA (v7.6.3#76005)