[JBoss JIRA] Created: (TEIID-913) Refine buffer management
by Steven Hawkins (JIRA)
Refine buffer management
------------------------
Key: TEIID-913
URL: https://jira.jboss.org/jira/browse/TEIID-913
Project: Teiid
Issue Type: Task
Components: Query Engine
Affects Versions: 7.0
Reporter: Steven Hawkins
Assignee: Steven Hawkins
Fix For: 7.0
The current buffermanagement scheme has several limitations that should be resolved:
1. We over use the buffermanager to create temporary results for sub-plans and sort operations where batch streaming would suffice.
2. The blockedonmemory exception is inefficient for resolving resource conflicts.
3. Most of the buffers in the plan (batches stored on nodes and intermeiated node results) are not accounted for in the active batches.
4. Outside of the initial sort phase of the multi-pass sort batch access is highly ephemeral and is inherently limited by the number of process worker threads.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
14 years, 6 months
[JBoss JIRA] Created: (TEIID-911) Prepared Batch Update against a view table fails with "Unable to evaluate $param/pos0: No value was available"
by Larry O'Leary (JIRA)
Prepared Batch Update against a view table fails with "Unable to evaluate $param/pos0: No value was available"
--------------------------------------------------------------------------------------------------------------
Key: TEIID-911
URL: https://jira.jboss.org/jira/browse/TEIID-911
Project: Teiid
Issue Type: Bug
Components: Query Engine
Affects Versions: 7.0
Environment: teiid-engine revision 1662
Reporter: Larry O'Leary
Assignee: Steven Hawkins
Attachments: JBEDSP-1133_Teiid-Rev-1662_UnitTests_200912211050.patch
Attempting to execute a prepared batch update against a view table results in the following stack trace:
[MetaMatrixComponentException] ERR.015.006.0033: Error Code:ERR.015.006.0033 Message:Unable to evaluate $param/pos0: No value was available
at com.metamatrix.query.sql.util.VariableContext.getGlobalValue(VariableContext.java:68)
at com.metamatrix.query.sql.util.VariableContext.getGlobalValue(VariableContext.java:64)
at com.metamatrix.query.eval.Evaluator.internalEvaluate(Evaluator.java:562)
at com.metamatrix.query.eval.Evaluator.evaluate(Evaluator.java:524)
at com.metamatrix.query.processor.proc.ProcedurePlan.evaluateExpression(ProcedurePlan.java:648)
at com.metamatrix.query.processor.proc.ProcedurePlan.open(ProcedurePlan.java:187)
at com.metamatrix.query.processor.relational.PlanExecutionNode.open(PlanExecutionNode.java:74)
at com.metamatrix.query.processor.relational.RelationalNode.open(RelationalNode.java:236)
at com.metamatrix.query.processor.relational.RelationalPlan.open(RelationalPlan.java:101)
at com.metamatrix.query.processor.batch.BatchedUpdatePlan.open(BatchedUpdatePlan.java:114)
at com.metamatrix.query.processor.QueryProcessor.initialize(QueryProcessor.java:112)
at com.metamatrix.query.processor.QueryProcessor.process(QueryProcessor.java:152)
at com.metamatrix.query.processor.QueryProcessor.process(QueryProcessor.java:127)
at com.metamatrix.query.processor.TestProcessor.doProcess(TestProcessor.java:234)
at org.teiid.dqp.internal.process.TestPreparedStatement.helpTestProcessing(TestPreparedStatement.java:121)
at org.teiid.dqp.internal.process.TestPreparedStatementBatchedUpdate.testUpdateSameNumCmds_Virtual(TestPreparedStatementBatchedUpdate.java:246)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.junit.internal.runners.TestMethod.invoke(TestMethod.java:59)
at org.junit.internal.runners.MethodRoadie.runTestMethod(MethodRoadie.java:98)
at org.junit.internal.runners.MethodRoadie$2.run(MethodRoadie.java:79)
at org.junit.internal.runners.MethodRoadie.runBeforesThenTestThenAfters(MethodRoadie.java:87)
at org.junit.internal.runners.MethodRoadie.runTest(MethodRoadie.java:77)
at org.junit.internal.runners.MethodRoadie.run(MethodRoadie.java:42)
at org.junit.internal.runners.JUnit4ClassRunner.invokeTestMethod(JUnit4ClassRunner.java:88)
at org.junit.internal.runners.JUnit4ClassRunner.runMethods(JUnit4ClassRunner.java:51)
at org.junit.internal.runners.JUnit4ClassRunner$1.run(JUnit4ClassRunner.java:44)
at org.junit.internal.runners.ClassRoadie.runUnprotected(ClassRoadie.java:27)
at org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:37)
at org.junit.internal.runners.JUnit4ClassRunner.run(JUnit4ClassRunner.java:42)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:46)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
This was produced using a UnitTest that simply creates a prepared statement similar to:
preparedSql = "UPDATE vm1.g1 SET vm1.g1.e2=? WHERE vm1.g1.e1=?"
values.add(new ArrayList<Object>(Arrays.asList(new Object[] { new Integer(0), "a" })));
values.add(new ArrayList<Object>(Arrays.asList(new Object[] { new Integer(1), "b" })));
Then execute the prepared statement.
Attached unit test patch includes the failing unit tests against a virtual and some refactoring of the existing unit test methods to handle some unit test framework changes from R050503.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
14 years, 6 months
[JBoss JIRA] Created: (TEIID-902) Restructure planning
by Steven Hawkins (JIRA)
Restructure planning
--------------------
Key: TEIID-902
URL: https://jira.jboss.org/jira/browse/TEIID-902
Project: Teiid
Issue Type: Task
Components: Query Engine
Affects Versions: 7.0
Reporter: Steven Hawkins
Assignee: Steven Hawkins
Fix For: 7.0
All transformation queries should be cached - not just views.
All cached queries should already be validated - and not revalidated with every request.
Cached queries should be stored individually - not as full and separate trees as they are now, where the same view command exists can exist multiple times in cache.
The choice about whether to use a materialized view or not should also be moved to planning time - not a resolver activity.
We should remove the concept of non-embedded command from everything except planning logic. It's error-prone and confusing in a resolving/rewrite context.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
14 years, 6 months
[JBoss JIRA] Created: (TEIID-923) Oracle queries with a TimeStamp in the WHERE clause are failing if multiple TimeStamps are used in "AND", "OR', and "IN" situations
by Warren Gibson (JIRA)
Oracle queries with a TimeStamp in the WHERE clause are failing if multiple TimeStamps are used in "AND", "OR', and "IN" situations
-----------------------------------------------------------------------------------------------------------------------------------
Key: TEIID-923
URL: https://jira.jboss.org/jira/browse/TEIID-923
Project: Teiid
Issue Type: Bug
Components: JDBC Connector
Affects Versions: 7.0
Environment: CTC Query Suite running Teiid 7.0 with ojdbc6 driver
Reporter: Warren Gibson
Assignee: Steven Hawkins
The following queries are failing in CTC with an ORCL errors "invalid characters" or "missing right parenthesis". The ojdbc6 driver is being used.
SELECT BQT1.SmallA.IntKey FROM BQT1.SmallA WHERE BQT1.SmallA.TimeStampValue IN (convert('2000-01-01 00:00:12.0', timestamp), convert('2000-01-01 00:00:45.0', timestamp)) ORDER BY IntKey
SELECT BQT1.SmallA.IntKey FROM BQT1.SmallA WHERE BQT1.SmallA.TimestampValue > '2000-01-01 00:00:25.0' AND BQT1.SmallA.TimeStampValue < '2000-01-01 00:00:30.0' ORDER BY IntKey
SELECT IntKey, TimestampValue FROM BQT1.SmallA WHERE TimestampValue > '2000-01-01 00:00:47.0' OR TimestampValue < '2000-01-01 00:00:02.0' ORDER BY IntKey
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
14 years, 6 months
[JBoss JIRA] Created: (TEIID-919) Planner created incomplete identifiers when GROUP BY of inline view with UNION ALL
by Paul Nittel (JIRA)
Planner created incomplete identifiers when GROUP BY of inline view with UNION ALL
----------------------------------------------------------------------------------
Key: TEIID-919
URL: https://jira.jboss.org/jira/browse/TEIID-919
Project: Teiid
Issue Type: Bug
Components: Query Engine
Affects Versions: 7.0
Environment: Fedora 12, Teiid from 01/04
Reporter: Paul Nittel
Assignee: Steven Hawkins
Attachments: teiid.log, TPCRperf.vdb
Using the performance test suite VDB which uses TPCR, there were questions of the number of rows which should be returned for a specific query. To determine the correct nummber of rows to be returned, This query was executed through AdminShell:
SELECT count(*) from ( select P_PARTKEY, P_NAME, P_MFGR, P_BRAND, P_TYPE, P_SIZE, P_CONTAINER, P_RETAILPRICE FROM TPCR01_SqlServerVirt.TPCR01.PART WHERE (P_RETAILPRICE > 911) AND (P_RETAILPRICE < 1400) UNION all SELECT CONVERT(P_PARTKEY,integer), P_NAME, P_MFGR, P_BRAND, P_TYPE, CONVERT(P_SIZE,integer), P_CONTAINER, P_RETAILPRICE FROM TPCR01_OracleVirt.PART WHERE (P_RETAILPRICE > 1200) AND (P_RETAILPRICE < 1500)) as x group by P_PARTKEY, P_NAME, P_MFGR, P_BRAND, P_TYPE, P_SIZE, P_CONTAINER, P_RETAILPRICE;
The result was this:
org.teiid.connector.jdbc.JDBCExecutionException: Error Code:904 Message:ORA-00904: "V_0"."P_SIZE": invalid identifier
Executing statement:
[SQL: SELECT v_0.P_PARTKEY, v_0.c_7, v_0.c_0, v_0.c_1, v_0.c_3, v_0.P_SIZE, v_0.c_2, v_0.c_5, COUNT(*) FROM (SELECT g_0.P_MFGR AS c_0, g_0.P_BRAND AS c_1, g_0.P_CONTAINER AS c_2, g_0.P_TYPE AS c_3, g_0.P_PARTKEY AS c_4, g_0.P_RETAILPRICE AS c_5, g_0.P_SIZE AS c_6, g_0.P_NAME AS c_7 FROM PART g_0 WHERE (g_0.P_RETAILPRICE > 1200) AND (g_0.P_RETAILPRICE < 1500)) v_0 GROUP BY v_0.c_0, v_0.c_1, v_0.c_2, v_0.c_3, v_0.P_PARTKEY, v_0.c_5, v_0.P_SIZE, v_0.c_7]
at org.teiid.connector.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:98)
at org.teiid.dqp.internal.datamgr.impl.ConnectorWorkItem.processNewRequest(ConnectorWorkItem.java:293)
at org.teiid.dqp.internal.datamgr.impl.ConnectorWorkItem.process(ConnectorWorkItem.java:163)
at org.teiid.dqp.internal.process.AbstractWorkItem.run(AbstractWorkItem.java:44)
at org.teiid.dqp.internal.datamgr.impl.SynchConnectorWorkItem.run(SynchConnectorWorkItem.java:60)
at com.metamatrix.common.queue.WorkerPoolFactory$StatsCapturingSharedThreadPoolExecutor$1.run(WorkerPoolFactory.java:211)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:636)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
14 years, 6 months