[teiid-issues] [JBoss JIRA] (TEIID-2795) TTL Snapshot Refresh doesn't fully reload Internal MV if the user query contains LIMIT

Steven Hawkins (JIRA) issues at jboss.org
Wed Jan 8 12:44:33 EST 2014


    [ https://issues.jboss.org/browse/TEIID-2795?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12934534#comment-12934534 ] 

Steven Hawkins commented on TEIID-2795:
---------------------------------------

What I can infer from the sequence of events is that this highlights a design issue with the implicit refresh that is in 7.7.  The refresh task is kicked of asynchly (since the data has not been invalidated the current request is allowed to continue) and also runs as a child of the current request.  So that early termination of the calling session will effectively kill the refresh task.  Only blocking refreshes will not suffer from this problem in 7.7, such as issuing a refreshMatView procedure call.

This was addressed as part of TEIID-2467 such that the refresh runs in it's own session/request.  A more targeted change would be needed for 7.7.x, although I'm not sure about the level of effort.
                
> TTL Snapshot Refresh doesn't fully reload Internal MV if the user query contains LIMIT
> --------------------------------------------------------------------------------------
>
>                 Key: TEIID-2795
>                 URL: https://issues.jboss.org/browse/TEIID-2795
>             Project: Teiid
>          Issue Type: Bug
>          Components: Query Engine
>    Affects Versions: 7.7.8
>            Reporter: Debbie Steigner
>            Assignee: Steven Hawkins
>
> using the cache hint to automatically trigger a full snapshot refresh after a specified time to live (TTL)[1]. The TTL works but if the user query that is run contains a LIMIT clause the refresh load uses the LIMIT and doesn't completely load the internal MV and fails load.
> Sequence of events
> 1) Execute the query to initiate the internal MV load
> 2) After caching, issue the same query but with limit of 10,000 to test it is hitting the cache
> 3) Wait for 5 minutes for TTL to expire
> 4) Re-issue the same query with limit of 10,000 and i can see the state change to reloading but once the query has finished fetching 10,000 from data source it terminates and the MV state changed to failed_load. I would have expected the MV to continue to load to rehydrate the cache and the query should be fetching the data from the stale cache. But this is not the case ... 
> [1]https://access.redhat.com/site/documentation/en-US/JBoss_Enterprise_Data_Services/5/html/Data_Services_Caching_Guide/matviews.html#idp7629936

--
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


More information about the teiid-issues mailing list