[ https://issues.apache.org/jira/browse/PHOENIX-4579?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16356224#comment-16356224 ]
James Taylor commented on PHOENIX-4579: --------------------------------------- I think having this be purely driven from a property is a bit dangerous. If that property was set to false and a new client and server jar were deployed which required some upgrade, it wouldn't be performed, but instead stuff would just start to break. In addition to that (though less important), Phoenix already has a lot of configuration properties so if we can get away without adding another one, that'd be best. Instead, I'd recommend we do the following: - In ConnectionQueryServicesImpl.checkClientServerCompatibility(), add a new piece of information that gets returned from the getVersion RPC. In that call, we can (on the RS side) query the SYSTEM.CATALOG for the version information and return that back to the client. - In ConnectionQueryServicesImpl.init(), if the actual system catalog version (i.e. the one from the server) is equal to MetaDataProtocol.MIN_SYSTEM_TABLE_TIMESTAMP, then we know no upgrade is required and we can skip the create table call for system catalog. We should think about the other system tables - maybe they each need their own MIN_SYSTEM_TABLE_TIMESTAMP value too? Maybe that could be follow on work. - If we do change the hbase metadata of system catalog, then we'd have to make sure to increment MIN_SYSTEM_TABLE_TIMESTAMP, so that'd be kind of a new case. The empty key value of the SYSTEM.CATALOG row in the SYSTEM.CATALOG table could be updated in this case - orthogonal to this change, it'd be good if we turned off {{phoenix.autoupgrade.enabled}} and required an EXECUTE UPGRADE to be run manually. If we do the above, then we'd still catch the case where we have a new client against a new server where an upgrade is required. > Add a config to conditionally create Phoenix meta tables on first client > connection > ----------------------------------------------------------------------------------- > > Key: PHOENIX-4579 > URL: https://issues.apache.org/jira/browse/PHOENIX-4579 > Project: Phoenix > Issue Type: New Feature > Reporter: Mujtaba Chohan > Assignee: Mujtaba Chohan > Priority: Major > Attachments: PHOENIX-4579.patch > > > Currently we create/modify Phoenix meta tables on first client connection. > Adding a property to make it configurable (with default true as it is > currently implemented). > With this property set to false, it will avoid lockstep upgrade requirement > for all clients when changing meta properties using PHOENIX-4575 as this > property can be flipped back on once all the clients are upgraded. -- This message was sent by Atlassian JIRA (v7.6.3#76005)