[JBoss JIRA] (TEIID-2361) The current MAX String size is 4000, add the ability to configure when larger sizes are used
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-2361?page=com.atlassian.jira.plugin... ]
Steven Hawkins commented on TEIID-2361:
---------------------------------------
I should add that the approach here was for us to act like a lowest common denominator so this roughly corresponds to oracle's handling. The 4000 char setting is also roughly in step with the default for lob inlining / memory buffering, which is currently 8KB. Setting the max string size higher should also probably come with an increase in the lob bytes as well.
> The current MAX String size is 4000, add the ability to configure when larger sizes are used
> --------------------------------------------------------------------------------------------
>
> Key: TEIID-2361
> URL: https://issues.jboss.org/browse/TEIID-2361
> Project: Teiid
> Issue Type: Enhancement
> Components: Query Engine
> Reporter: Van Halbert
> Assignee: Steven Hawkins
>
> The MAX String size is currently 4000. After a discussion with Steve, he indicated a more common default might be 16k, and also add the ability to configure the size when a data source is being used that contains large sizes.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
11 years, 10 months
[JBoss JIRA] (TEIID-2362) Add UDF support for procedure in view model with function=true
by Mark Drilling (JIRA)
Mark Drilling created TEIID-2362:
------------------------------------
Summary: Add UDF support for procedure in view model with function=true
Key: TEIID-2362
URL: https://issues.jboss.org/browse/TEIID-2362
Project: Teiid
Issue Type: Feature Request
Components: Query Engine
Affects Versions: 8.2
Reporter: Mark Drilling
Assignee: Steven Hawkins
Fix For: 8.3
Request adding udf support for procedures in view models since Function Models will be deprecated. Per TEIIDDES-1556 discussion from 11 Jan, we will make the following changes in designer:
For procedure in a ViewModel with FUNCTION=TRUE
- relax validation so a transformation is not required
- perform same parameter validation checks currently done with ScalarFunctions
- add Java Class("java-class") and Java Method("java-method") extension properties same as ScalarFunction is handled currently
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
11 years, 10 months
[JBoss JIRA] (TEIID-2359) BufferManager reserved thread local can keep buffermanager references alive
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-2359?page=com.atlassian.jira.plugin... ]
Steven Hawkins commented on TEIID-2359:
---------------------------------------
I need to correct my thoughts above. The reserved by thread ThreadLocal will not keep a BufferManagerImpl reference alive as the ThreadLocal will be weakly held key - the value is just an Integer.
There is a related issue however with the BlockByteBuffer ThreadLocal. There the value will hold a hard reference to the memory buffer and thus may keep the buffer reference around as long as the Thread is alive (or until the Java internal ThreadLocalMap is compacted and tested for gc'ed keys).
I should also add this is only an issue when using local connections that use the calling thread - otherwise all of the relevant threads will be stopped with the DQP pool is shutdown/dereferenced.
> BufferManager reserved thread local can keep buffermanager references alive
> ---------------------------------------------------------------------------
>
> Key: TEIID-2359
> URL: https://issues.jboss.org/browse/TEIID-2359
> Project: Teiid
> Issue Type: Feature Request
> Components: Query Engine
> Affects Versions: 8.0
> Reporter: Steven Hawkins
> Assignee: Steven Hawkins
>
> The most common implementation of ThreadLocal holds does not garbarge collect ThreadLocal values when the ThreadLocal goes out of scope - only when the Thread stops. Thus the BufferManager reserved threadlocal being a non-static inner class is inadvertently keeping a reference alive.
> Marked as starting with Teiid 8.0 as selective Teiid restarts (which is how multiple instances are introduced) are not performed in the 7.x series.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
11 years, 10 months
[JBoss JIRA] (TEIID-2360) Memory buffer sizes over 1GB are not correctly handled
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-2360?page=com.atlassian.jira.plugin... ]
Steven Hawkins updated TEIID-2360:
----------------------------------
Summary: Memory buffer sizes over 1GB are not correctly handled (was: Memory buffer sizes over 1GB that are not multiples of 1GB are not correctly handled)
Priority: Critical (was: Major)
Workaround Description: Use a max memory buffer size under 1 GB. (was: Use a multiple of 1GB (2^30) as the max memory buffer size.)
> Memory buffer sizes over 1GB are not correctly handled
> ------------------------------------------------------
>
> Key: TEIID-2360
> URL: https://issues.jboss.org/browse/TEIID-2360
> Project: Teiid
> Issue Type: Bug
> Components: Query Engine
> Affects Versions: 7.6
> Reporter: Steven Hawkins
> Assignee: Steven Hawkins
> Priority: Critical
> Fix For: 8.3
>
>
> The sizing of full buffer segments (1 GB) is using the partial segment size.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
11 years, 10 months
[JBoss JIRA] (TEIID-2358) NullPointer in EnhancedSortMergeJoinStrategy
by RAKESH BALGURI (JIRA)
[ https://issues.jboss.org/browse/TEIID-2358?page=com.atlassian.jira.plugin... ]
RAKESH BALGURI commented on TEIID-2358:
---------------------------------------
Unfortunately we do not have the steps to reproduce the issue :( We noticed this when we were executing the continuous queries.
> NullPointer in EnhancedSortMergeJoinStrategy
> --------------------------------------------
>
> Key: TEIID-2358
> URL: https://issues.jboss.org/browse/TEIID-2358
> Project: Teiid
> Issue Type: Bug
> Affects Versions: 8.1
> Reporter: RAKESH BALGURI
> Assignee: Steven Hawkins
>
> java.lang.NullPointerException
> at org.teiid.query.processor.relational.EnhancedSortMergeJoinStrategy$SingleTupleSource.get(EnhancedSortMergeJoinStrategy.java:79)
> at org.teiid.query.processor.relational.ListNestedSortComparator.compare(ListNestedSortComparator.java:149)
> at org.teiid.query.processor.relational.ListNestedSortComparator.compare(ListNestedSortComparator.java:59)
> at java.util.Collections.indexedBinarySearch(Collections.java:377)
> at java.util.Collections.binarySearch(Collections.java:365)
> at org.teiid.common.buffer.SPage.search(SPage.java:140)
> at org.teiid.common.buffer.STree.find(STree.java:245)
> at org.teiid.common.buffer.TupleBrowser.setPage(TupleBrowser.java:144)
> at org.teiid.common.buffer.TupleBrowser.nextTuple(TupleBrowser.java:203)
> at org.teiid.query.processor.relational.EnhancedSortMergeJoinStrategy.process(EnhancedSortMergeJoinStrategy.java:377)
> at org.teiid.query.processor.relational.JoinNode.nextBatchDirect(JoinNode.java:202)
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:279)
> at org.teiid.query.processor.BatchIterator.finalRow(BatchIterator.java:70)
> at org.teiid.common.buffer.AbstractTupleSource.getCurrentTuple(AbstractTupleSource.java:69)
> at org.teiid.query.processor.BatchIterator.getCurrentTuple(BatchIterator.java:82)
> at org.teiid.common.buffer.AbstractTupleSource.hasNext(AbstractTupleSource.java:91)
> at org.teiid.query.processor.relational.MergeJoinStrategy.process(MergeJoinStrategy.java:149)
> at org.teiid.query.processor.relational.JoinNode.nextBatchDirect(JoinNode.java:202)
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:279)
> at org.teiid.query.processor.relational.ProjectNode.nextBatchDirect(ProjectNode.java:146)
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:279)
> at org.teiid.query.processor.relational.UnionAllNode.nextBatchDirect(UnionAllNode.java:90)
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:279)
> at org.teiid.query.processor.BatchCollector.collectTuples(BatchCollector.java:153)
> at org.teiid.query.processor.relational.SourceState.getTupleBuffer(SourceState.java:174)
> at org.teiid.query.processor.relational.SourceState.getRowCount(SourceState.java:127)
> at org.teiid.query.processor.relational.EnhancedSortMergeJoinStrategy.shouldIndex(EnhancedSortMergeJoinStrategy.java:306)
> at org.teiid.query.processor.relational.EnhancedSortMergeJoinStrategy.loadRight(EnhancedSortMergeJoinStrategy.java:253)
> at org.teiid.query.processor.relational.JoinNode.nextBatchDirect(JoinNode.java:198)
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:279)
> at org.teiid.query.processor.BatchIterator.finalRow(BatchIterator.java:70)
> at org.teiid.common.buffer.AbstractTupleSource.getCurrentTuple(AbstractTupleSource.java:69)
> at org.teiid.query.processor.BatchIterator.getCurrentTuple(BatchIterator.java:82)
> at org.teiid.common.buffer.AbstractTupleSource.hasNext(AbstractTupleSource.java:91)
> at org.teiid.query.processor.relational.MergeJoinStrategy.process(MergeJoinStrategy.java:149)
> at org.teiid.query.processor.relational.JoinNode.nextBatchDirect(JoinNode.java:202)
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:279)
> at org.teiid.query.processor.relational.ProjectNode.nextBatchDirect(ProjectNode.java:146)
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:279)
> at org.teiid.query.processor.relational.UnionAllNode.nextBatchDirect(UnionAllNode.java:90)
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:279)
> at org.teiid.query.processor.BatchCollector$BatchProducerTupleSource.nextTuple(BatchCollector.java:89)
> at org.teiid.query.processor.relational.GroupingNode.groupPhase(GroupingNode.java:374)
> at org.teiid.query.processor.relational.GroupingNode.nextBatchDirect(GroupingNode.java:318)
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:279)
> at org.teiid.query.processor.relational.ProjectNode.nextBatchDirect(ProjectNode.java:146)
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:279)
> at org.teiid.query.processor.BatchCollector.collectTuples(BatchCollector.java:153)
> at org.teiid.query.processor.relational.SourceState.getTupleBuffer(SourceState.java:174)
> at org.teiid.query.processor.relational.EnhancedSortMergeJoinStrategy.loadLeft(EnhancedSortMergeJoinStrategy.java:229)
> at org.teiid.query.processor.relational.JoinNode.nextBatchDirect(JoinNode.java:186)
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:279)
> at org.teiid.query.processor.relational.ProjectNode.nextBatchDirect(ProjectNode.java:146)
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:279)
> at org.teiid.query.processor.relational.RelationalPlan.nextBatch(RelationalPlan.java:148)
> at org.teiid.query.processor.QueryProcessor.nextBatchDirect(QueryProcessor.java:146)
> at org.teiid.query.processor.QueryProcessor.nextBatch(QueryProcessor.java:112)
> at org.teiid.query.processor.BatchCollector.collectTuples(BatchCollector.java:153)
> at org.teiid.dqp.internal.process.RequestWorkItem.processMore(RequestWorkItem.java:382)
> at org.teiid.dqp.internal.process.RequestWorkItem.process(RequestWorkItem.java:291)
> ... 8 more
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
11 years, 10 months
[JBoss JIRA] (TEIID-2359) BufferManager reserved thread local can keep buffermanager references alive
by Steven Hawkins (JIRA)
Steven Hawkins created TEIID-2359:
-------------------------------------
Summary: BufferManager reserved thread local can keep buffermanager references alive
Key: TEIID-2359
URL: https://issues.jboss.org/browse/TEIID-2359
Project: Teiid
Issue Type: Feature Request
Components: Query Engine
Affects Versions: 8.0
Reporter: Steven Hawkins
Assignee: Steven Hawkins
The most common implementation of ThreadLocal holds does not garbarge collect ThreadLocal values when the ThreadLocal goes out of scope - only when the Thread stops. Thus the BufferManager reserved threadlocal being a non-static inner class is inadvertently keeping a reference alive.
Marked as starting with Teiid 8.0 as selective Teiid restarts (which is how multiple instances are introduced) are not performed in the 7.x series.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
11 years, 10 months
[JBoss JIRA] (TEIID-2358) NullPointer in EnhancedSortMergeJoinStrategy
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-2358?page=com.atlassian.jira.plugin... ]
Steven Hawkins commented on TEIID-2358:
---------------------------------------
Can you provide a reproducible scenario for this? On the face of it, it should not be possible as a non-null index array and current tuple are always set on the tuple source.
> NullPointer in EnhancedSortMergeJoinStrategy
> --------------------------------------------
>
> Key: TEIID-2358
> URL: https://issues.jboss.org/browse/TEIID-2358
> Project: Teiid
> Issue Type: Bug
> Affects Versions: 8.1
> Reporter: RAKESH BALGURI
> Assignee: Steven Hawkins
>
> java.lang.NullPointerException
> at org.teiid.query.processor.relational.EnhancedSortMergeJoinStrategy$SingleTupleSource.get(EnhancedSortMergeJoinStrategy.java:79)
> at org.teiid.query.processor.relational.ListNestedSortComparator.compare(ListNestedSortComparator.java:149)
> at org.teiid.query.processor.relational.ListNestedSortComparator.compare(ListNestedSortComparator.java:59)
> at java.util.Collections.indexedBinarySearch(Collections.java:377)
> at java.util.Collections.binarySearch(Collections.java:365)
> at org.teiid.common.buffer.SPage.search(SPage.java:140)
> at org.teiid.common.buffer.STree.find(STree.java:245)
> at org.teiid.common.buffer.TupleBrowser.setPage(TupleBrowser.java:144)
> at org.teiid.common.buffer.TupleBrowser.nextTuple(TupleBrowser.java:203)
> at org.teiid.query.processor.relational.EnhancedSortMergeJoinStrategy.process(EnhancedSortMergeJoinStrategy.java:377)
> at org.teiid.query.processor.relational.JoinNode.nextBatchDirect(JoinNode.java:202)
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:279)
> at org.teiid.query.processor.BatchIterator.finalRow(BatchIterator.java:70)
> at org.teiid.common.buffer.AbstractTupleSource.getCurrentTuple(AbstractTupleSource.java:69)
> at org.teiid.query.processor.BatchIterator.getCurrentTuple(BatchIterator.java:82)
> at org.teiid.common.buffer.AbstractTupleSource.hasNext(AbstractTupleSource.java:91)
> at org.teiid.query.processor.relational.MergeJoinStrategy.process(MergeJoinStrategy.java:149)
> at org.teiid.query.processor.relational.JoinNode.nextBatchDirect(JoinNode.java:202)
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:279)
> at org.teiid.query.processor.relational.ProjectNode.nextBatchDirect(ProjectNode.java:146)
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:279)
> at org.teiid.query.processor.relational.UnionAllNode.nextBatchDirect(UnionAllNode.java:90)
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:279)
> at org.teiid.query.processor.BatchCollector.collectTuples(BatchCollector.java:153)
> at org.teiid.query.processor.relational.SourceState.getTupleBuffer(SourceState.java:174)
> at org.teiid.query.processor.relational.SourceState.getRowCount(SourceState.java:127)
> at org.teiid.query.processor.relational.EnhancedSortMergeJoinStrategy.shouldIndex(EnhancedSortMergeJoinStrategy.java:306)
> at org.teiid.query.processor.relational.EnhancedSortMergeJoinStrategy.loadRight(EnhancedSortMergeJoinStrategy.java:253)
> at org.teiid.query.processor.relational.JoinNode.nextBatchDirect(JoinNode.java:198)
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:279)
> at org.teiid.query.processor.BatchIterator.finalRow(BatchIterator.java:70)
> at org.teiid.common.buffer.AbstractTupleSource.getCurrentTuple(AbstractTupleSource.java:69)
> at org.teiid.query.processor.BatchIterator.getCurrentTuple(BatchIterator.java:82)
> at org.teiid.common.buffer.AbstractTupleSource.hasNext(AbstractTupleSource.java:91)
> at org.teiid.query.processor.relational.MergeJoinStrategy.process(MergeJoinStrategy.java:149)
> at org.teiid.query.processor.relational.JoinNode.nextBatchDirect(JoinNode.java:202)
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:279)
> at org.teiid.query.processor.relational.ProjectNode.nextBatchDirect(ProjectNode.java:146)
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:279)
> at org.teiid.query.processor.relational.UnionAllNode.nextBatchDirect(UnionAllNode.java:90)
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:279)
> at org.teiid.query.processor.BatchCollector$BatchProducerTupleSource.nextTuple(BatchCollector.java:89)
> at org.teiid.query.processor.relational.GroupingNode.groupPhase(GroupingNode.java:374)
> at org.teiid.query.processor.relational.GroupingNode.nextBatchDirect(GroupingNode.java:318)
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:279)
> at org.teiid.query.processor.relational.ProjectNode.nextBatchDirect(ProjectNode.java:146)
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:279)
> at org.teiid.query.processor.BatchCollector.collectTuples(BatchCollector.java:153)
> at org.teiid.query.processor.relational.SourceState.getTupleBuffer(SourceState.java:174)
> at org.teiid.query.processor.relational.EnhancedSortMergeJoinStrategy.loadLeft(EnhancedSortMergeJoinStrategy.java:229)
> at org.teiid.query.processor.relational.JoinNode.nextBatchDirect(JoinNode.java:186)
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:279)
> at org.teiid.query.processor.relational.ProjectNode.nextBatchDirect(ProjectNode.java:146)
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:279)
> at org.teiid.query.processor.relational.RelationalPlan.nextBatch(RelationalPlan.java:148)
> at org.teiid.query.processor.QueryProcessor.nextBatchDirect(QueryProcessor.java:146)
> at org.teiid.query.processor.QueryProcessor.nextBatch(QueryProcessor.java:112)
> at org.teiid.query.processor.BatchCollector.collectTuples(BatchCollector.java:153)
> at org.teiid.dqp.internal.process.RequestWorkItem.processMore(RequestWorkItem.java:382)
> at org.teiid.dqp.internal.process.RequestWorkItem.process(RequestWorkItem.java:291)
> ... 8 more
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
11 years, 10 months