[teiid-issues] [JBoss JIRA] (TEIID-4661) Subsequent queries hang after materialized view TTL expires.

Jan Stastny (JIRA) issues at jboss.org
Tue Mar 21 05:28:00 EDT 2017


     [ https://issues.jboss.org/browse/TEIID-4661?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jan Stastny reopened TEIID-4661:
--------------------------------


The fix in 8.12.x branch doesn't seem to fix the issue.
I use two servers in standalone-ha mode.
When I followed the steps in unit test in the commit, I still observe, that the state is still LOADING.
The one difference compared to the unit test is, that I do the test more times. 5 times instead of 2 which are in the unit test. Sometimes the issue happens on second check, sometimes on third.

{code:java|title="test method in a nutshell"}
    private void loadAndWaitTtlExpires(Connection con, int times) throws SQLException, InterruptedException {
        Statement st = con.createStatement();
        for (int i = 1; i <= times; i++) {
            st.execute("SELECT * FROM View.Data");

            assertLoadStateOfMatView(con, "Data",
                "Loadstate is not changed to loaded, after matview loading no. " + i + ".");

            Thread.sleep(2000); // expire ttl
        }
    }

    private void assertLoadStateOfMatView(Connection con, String matview, String message) throws SQLException {
        Statement st = con.createStatement();
        ResultSet rs2 = st.executeQuery("select * from matviews where name = 'Data'");
        Assert.assertTrue(rs2.next());
        Assert.assertEquals(rs2.getString("loadstate"), "LOADED", message);
    }
{code}
My cache configuration is on both machines following:
{code:xml|title="standalone-ha.xml snippet"}
<cache-container name="teiid-cache" default-cache="resultset">
	<transport/>
	<local-cache name="resultset" batching="true">
	    <locking isolation="READ_COMMITTED"/>
	    <transaction mode="NON_XA"/>
	    <eviction strategy="LIRS" max-entries="1024"/>
	    <expiration lifespan="7200000"/>
	</local-cache>
	<local-cache name="preparedplan" batching="true">
	    <locking isolation="READ_COMMITTED"/>
	    <eviction strategy="LIRS" max-entries="512"/>
	    <expiration lifespan="28800"/>
	</local-cache>
	<replicated-cache name="resultset-repl" mode="SYNC" batching="true">
	    <locking isolation="READ_COMMITTED"/>
	    <transaction mode="NON_XA"/>
	    <eviction strategy="LIRS" max-entries="1024"/>
	    <expiration lifespan="7200000"/>
	</replicated-cache>
</cache-container>
{code}

> Subsequent queries hang after materialized view TTL expires.
> ------------------------------------------------------------
>
>                 Key: TEIID-4661
>                 URL: https://issues.jboss.org/browse/TEIID-4661
>             Project: Teiid
>          Issue Type: Bug
>          Components: Query Engine
>    Affects Versions: 8.12.x
>            Reporter: Colin Mondesir
>            Assignee: Steven Hawkins
>            Priority: Critical
>             Fix For: 9.0.6, 9.1.2, 9.2, 8.12.10.6_3
>
>
> With a VDB using lazy-invalidate in a clustered configuration initially the materialized view is cached correctly but when the TTL expires (10 minutes) and the query is run again the state of the view changes to LOADING and never reverts to "LOADED", so the next query hangs.



--
This message was sent by Atlassian JIRA
(v7.2.3#72005)


More information about the teiid-issues mailing list