[ https://issues.apache.org/jira/browse/PHOENIX-1812?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14570067#comment-14570067 ]
Thomas D'Silva commented on PHOENIX-1812: ----------------------------------------- I added a new method getTable(PTableKey key, long txnReadPointer) that takes the txnReadPointer. I also modified PhoenixConnection.getTable to use the txnReadPointer of the current txn if there is one. I didn't have to use a separate map. I haven't committed this yet, I have attached a patch with my changes. {code} public PTable getTable(PTableKey key) throws TableNotFoundException { Transaction transaction = mutationState.getTransaction(); long txnReadPointer = transaction == null ? HConstants.LATEST_TIMESTAMP : transaction.getReadPointer(); return metaData.getTable(key, txnReadPointer); } {code} > 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.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)