phoenix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "James Taylor (JIRA)" <>
Subject [jira] [Created] (PHOENIX-1835) Adjust MetaDataEndPointImpl timestamps if table is transactional
Date Fri, 10 Apr 2015 19:41:12 GMT
James Taylor created PHOENIX-1835:

             Summary: Adjust MetaDataEndPointImpl timestamps if table is transactional
                 Key: PHOENIX-1835
             Project: Phoenix
          Issue Type: Sub-task
            Reporter: James Taylor
            Assignee: Thomas D'Silva

Phoenix correlates table metadata with the table data based on timestamp. Since Tephra is
adjusting timestamps for the data, we need to do the same for the metadata operations (which
aren't transactional through Tephra). Take a look at MetaDataEndPointImpl and the MetaDataMutationResult
where we return the server timestamp (i.e. MetaDataMutationResult.getTable() for example).
This timestamp should be run through the TransactionUtil.translateTimestamp() method).

Add a point-in-time test with a table being altered, but your connection being before that
time (with CURRENT_SCN) as a test. We'll need to make sure the Puts to the SYSTEM.CATALOG
get timestamped correctly (but I think the above will cause that).

Also, my other hack in PostDDLCompiler, should not be necessary after this:
                        // FIXME: DDL operations aren't transactional, so we're basing the
timestamp on a server timestamp.
                        // Not sure what the fix should be. We don't need conflict detection
nor filtering of invalid transactions
                        // in this case, so maybe this is ok.
                        if (tableRef.getTable().isTransactional()) {
                            ts = TransactionUtil.translateMillis(ts);

This message was sent by Atlassian JIRA

View raw message