[ https://issues.apache.org/jira/browse/PHOENIX-2520?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15104858#comment-15104858 ]
Hudson commented on PHOENIX-2520: --------------------------------- SUCCESS: Integrated in Phoenix-master #1086 (See [https://builds.apache.org/job/Phoenix-master/1086/]) PHOENIX-2520 Create DDL property for metadata update frequency (jtaylor: rev 59b336ec84b7cf5189bb2e67f07f9ef20da898d9) * phoenix-core/src/main/java/org/apache/phoenix/query/MetaDataMutated.java * phoenix-core/src/test/java/org/apache/phoenix/schema/PMetaDataImplTest.java * phoenix-core/src/main/java/org/apache/phoenix/schema/PMetaData.java * phoenix-core/src/main/java/org/apache/phoenix/coprocessor/MetaDataProtocol.java * phoenix-core/src/main/java/org/apache/phoenix/schema/TableProperty.java * phoenix-core/src/it/java/org/apache/phoenix/rpc/UpdateCacheWithScnIT.java * phoenix-core/src/main/java/org/apache/phoenix/query/ConnectionlessQueryServicesImpl.java * phoenix-core/src/main/java/org/apache/phoenix/coprocessor/generated/PTableProtos.java * phoenix-core/src/main/java/org/apache/phoenix/compile/FromCompiler.java * phoenix-core/src/main/java/org/apache/phoenix/schema/PTableRef.java * phoenix-core/src/main/java/org/apache/phoenix/compile/TupleProjectionCompiler.java * phoenix-core/src/main/java/org/apache/phoenix/query/ConnectionQueryServicesImpl.java * phoenix-core/src/main/java/org/apache/phoenix/query/QueryConstants.java * phoenix-core/src/main/java/org/apache/phoenix/schema/PTableImpl.java * phoenix-core/src/main/java/org/apache/phoenix/compile/UnionCompiler.java * phoenix-core/src/main/java/org/apache/phoenix/coprocessor/MetaDataEndpointImpl.java * phoenix-core/src/main/java/org/apache/phoenix/query/DelegateConnectionQueryServices.java * phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixDatabaseMetaData.java * phoenix-core/src/main/antlr3/PhoenixSQL.g * phoenix-core/src/main/java/org/apache/phoenix/jdbc/PhoenixConnection.java * phoenix-core/src/main/java/org/apache/phoenix/schema/DelegateTable.java * phoenix-core/src/main/java/org/apache/phoenix/schema/PTable.java * phoenix-protocol/src/main/PTable.proto * phoenix-core/src/it/java/org/apache/phoenix/rpc/UpdateCacheIT.java * phoenix-core/src/main/java/org/apache/phoenix/schema/MetaDataClient.java * phoenix-core/src/main/java/org/apache/phoenix/schema/PMetaDataImpl.java * phoenix-core/src/test/java/org/apache/phoenix/execute/CorrelatePlanTest.java * phoenix-core/src/main/java/org/apache/phoenix/compile/JoinCompiler.java > Create DDL property for metadata update frequency > ------------------------------------------------- > > Key: PHOENIX-2520 > URL: https://issues.apache.org/jira/browse/PHOENIX-2520 > Project: Phoenix > Issue Type: Improvement > Reporter: James Taylor > Assignee: James Taylor > Fix For: 4.7.0 > > Attachments: PHOENIX-2520.patch, PHOENIX-2520_v2.patch, > PHOENIX-2520_wip.patch, preferMetaCache.patch > > > On the client-side, Phoenix pings the server when a query is compiled to > confirm that the client has the most up-to-date metadata for the table being > queried. For some tables that are known to not change, this RPC is wasteful. > We can allow a property such as {{UPDATE_METADATA_CACHE_FREQUENCY_MS}} to be > specified a time to wait before checking with the server to see if the > metadata has changed. This could be specified in the CREATE TABLE call and > stored in the SYSTEM.CATALOG table header row. By default the value could be > 0 which would keep the current behavior. Tables that never change could use > Long.MAX_VALUE. Potentially we could allow 'ALWAYS' and 'NEVER' values for > convenience. > Proposed implementation: > - add {{public long getAge()}} method to {{PTableRef}}. > - when setting lastAccessTime, also store System.currentMillis() to new > {{setAccessTime}} private member variable > - the getAge() would return {{System.currentMillis() - setAccessTime}} > - code in MetaDataClient would prevent call to server if age < > {{UPDATE_METADATA_CACHE_FREQUENCY_MS}} -- This message was sent by Atlassian JIRA (v6.3.4#6332)