You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@phoenix.apache.org by "Thomas D'Silva (JIRA)" <ji...@apache.org> on 2015/08/18 20:30:47 UTC

[jira] [Comment Edited] (PHOENIX-1812) Only sync table metadata when necessary

    [ https://issues.apache.org/jira/browse/PHOENIX-1812?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14701737#comment-14701737 ] 

Thomas D'Silva edited comment on PHOENIX-1812 at 8/18/15 6:30 PM:
------------------------------------------------------------------

[~jamestaylor]

Previously in PhoenixConnection.updateResolvedTimestamp we didn't call ConnectionQueryServices.updateResolvedTimestamp, because this is shared across connections. 

{code}
    @Override
    public PMetaData updateResolvedTimestamp(PTable table, long resolvedTime) throws SQLException {
    	metaData = metaData.updateResolvedTimestamp(table, resolvedTime);
        return metaData;
    }
{code}


ConnectionQueryServicesImpl does not currently implement updateResolvedTimestamp.

{code}
    public PMetaData updateResolvedTimestamp(PTable table, long resolvedTimestamp) throws SQLException {
    	throw new UnsupportedOperationException();
    }
{code}

Should I implement the above method and call it from PhoenixConnection.updateResolvedTimestamp ?

I have attached a WIP patch.


was (Author: tdsilva):
[~jamestaylor]

Previously in PhoenixConnection.updateResolvedTimestamp we didn't call ConnectionQueryServices.updateResolvedTimestamp, because this is shared across connections. 

{code}
    @Override
    public PMetaData updateResolvedTimestamp(PTable table, long resolvedTime) throws SQLException {
    	metaData = metaData.updateResolvedTimestamp(table, resolvedTime);
        return metaData;
    }
{code}


ConnectionQueryServicesImpl does not currently implement updateResolvedTimestamp.

{code}
    public PMetaData updateResolvedTimestamp(PTable table, long resolvedTimestamp) throws SQLException {
    	throw new UnsupportedOperationException();
    }
{code}

Should I implement the above method and call it from PhoenixConnection.updateResolvedTimestamp ?

> Only sync table metadata when necessary
> ---------------------------------------
>
>                 Key: PHOENIX-1812
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-1812
>             Project: Phoenix
>          Issue Type: Sub-task
>            Reporter: James Taylor
>            Assignee: Thomas D'Silva
>         Attachments: PHOENIX-1812-v2.patch, PHOENIX-1812-v3.patch, PHOENIX-1812-v4-WIP.patch, PHOENIX-1812.patch, PHOENIX-1812.patch, PHOENIX-1812.patch
>
>
> With transactions, we hold the timestamp at the point when the transaction was opened. We can prevent the MetaDataEndpoint getTable RPC in MetaDataClient.updateCache() to check that the client has the latest table if we've already checked at the current transaction ID timestamp. We can keep track of which tables we've already updated in PhoenixConnection.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)