[JBoss JIRA] Commented: (TEIID-168) Remove resultset caching
by Steven Hawkins (JIRA)
[ https://jira.jboss.org/jira/browse/TEIID-168?page=com.atlassian.jira.plug... ]
Steven Hawkins commented on TEIID-168:
--------------------------------------
Per VM is an initial design restriction based upon re-using the buffer manager logic. It is another line of work to re-implement the caching mechanisms of the buffer manager through jboss cache.
I think you are overstating the case of limiting the usefulness. Caching relations (with scope determined by level of determinism) should have roughly the same performance curve with or without distribution. You would tend to just populate the caches faster with distribution.
Along similar lines of thought, the case could be made for moving end user result set caching to the client vm. This defect should really only cover connector result set caching.
> Remove resultset caching
> ------------------------
>
> Key: TEIID-168
> URL: https://jira.jboss.org/jira/browse/TEIID-168
> Project: Teiid
> Issue Type: Feature Request
> Components: JDBC Connector, Query Engine
> Affects Versions: 6.x
> Reporter: Steven Hawkins
> Assignee: Steven Hawkins
> Fix For: 6.1.0
>
>
> Resultset caching should be replaced with relation and procedure caching. This would initially be backed by the buffermanager, based upon hints/costing, and be utilized by the planner rather than the resolver. It would be good if we also detected the level of determinism.
--
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
15 years, 10 months
[JBoss JIRA] Commented: (TEIID-168) Remove resultset caching
by Greg Haber (JIRA)
[ https://jira.jboss.org/jira/browse/TEIID-168?page=com.atlassian.jira.plug... ]
Greg Haber commented on TEIID-168:
----------------------------------
Thanks for the info. I think we are completely on the right track here by caching intermediate results rather than the end user result sets, but unfortunately I think that if the caching is done per-VM only that will greatly limit its usefulness (especially if the caching scope is the current session, rather than all sessions by that user to that VDB).
Why? Because typically end users are not connecting directly to Teiid, but instead are connecting to it via a connection pool in their app server. And often these apps will release these connections back to the pool after completing each query (it would be expensive to hold on to pooled connections in a web-based app where it is not always possible to reliably detect user logout).
So there is no guarantee that the same logical user will get the same connection from the pool, and since our connection logic randomly distributes connections among all the MMProcesses, this means that they are as likely to get a connection to a different JVM than they used for their previous query.
A similar problem exists with apps that connect straight to MetaMatrix but that close connections after queries (or that only pool for a short time), such as connections coming in over ODBC via an ODBC-JDBC gateway mechanism as in the commerical JBEDSP product.
So the usefulness of this caching mechanism will be limited to apps that use a legacy client-server type design where the client holds the connection open for an extended period of time - it won't help that much with modern multitier apps where the same logical user is likely to use several different sessions to MetaMatrix (potentially to different JVMs) in an application session.
> Remove resultset caching
> ------------------------
>
> Key: TEIID-168
> URL: https://jira.jboss.org/jira/browse/TEIID-168
> Project: Teiid
> Issue Type: Feature Request
> Components: JDBC Connector, Query Engine
> Affects Versions: 6.x
> Reporter: Steven Hawkins
> Assignee: Steven Hawkins
> Fix For: 6.1.0
>
>
> Resultset caching should be replaced with relation and procedure caching. This would initially be backed by the buffermanager, based upon hints/costing, and be utilized by the planner rather than the resolver. It would be good if we also detected the level of determinism.
--
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
15 years, 10 months
[JBoss JIRA] Commented: (TEIID-168) Remove resultset caching
by Ramesh Reddy (JIRA)
[ https://jira.jboss.org/jira/browse/TEIID-168?page=com.atlassian.jira.plug... ]
Ramesh Reddy commented on TEIID-168:
------------------------------------
As the description noted this will based upon the buffer manager, not on JBoss Cache. It will be be per VM, not distributed. The idea here is not to cache the end user result sets, but cache the intermediate results that are based on the source results based on design time hints. Thus effectively reproducing the user result set faster even in the case user has a modified query. Much like dynamic staging tables.
> Remove resultset caching
> ------------------------
>
> Key: TEIID-168
> URL: https://jira.jboss.org/jira/browse/TEIID-168
> Project: Teiid
> Issue Type: Feature Request
> Components: JDBC Connector, Query Engine
> Affects Versions: 6.x
> Reporter: Steven Hawkins
> Assignee: Steven Hawkins
> Fix For: 6.1.0
>
>
> Resultset caching should be replaced with relation and procedure caching. This would initially be backed by the buffermanager, based upon hints/costing, and be utilized by the planner rather than the resolver. It would be good if we also detected the level of determinism.
--
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
15 years, 10 months