[
https://issues.apache.org/jira/browse/PHOENIX-3174?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15480168#comment-15480168
]
James Taylor commented on PHOENIX-3174:
---------------------------------------
Thanks, [~samarthjain]. Another thought that might be an improvement. What if
we had a new SQL command called EXECUTE UPGRADE or just UPGRADE? Internally,
this would create a new connection (using our PhoenixConnection copy
constructor) passing the no upgrade property through.
One issue perhaps - it's very dangerous to allow any SQL to be run if the
client is new and upgrade hasn't been performed. This is different than an old
client connecting to a new server because the old client is of course using the
old code. We do that in a few places on the server side, but we run native
HBase code (we just happen to need a PhoenixConnection). But generally running
SQL commands won't work. I think we'd need a guard for this at the Phoenix
statement level. The UPGRADE statement would be the only whitelisted command.
Thoughts?
> Make minor upgrade a manual step
> --------------------------------
>
> Key: PHOENIX-3174
> URL: https://issues.apache.org/jira/browse/PHOENIX-3174
> Project: Phoenix
> Issue Type: Bug
> Reporter: James Taylor
> Assignee: Samarth Jain
> Attachments: PHOENIX-3174.patch, PHOENIX-3174_v2.patch
>
>
> Instead of automatically performing minor release upgrades to system tables
> in an automated manner (on first connection), we should make upgrade a
> separate manual step. If a newer client attempts to connect to a newer server
> without the upgrade step having occurred, we'd fail the connection.
> Though not as automated, this would give users more control and visibility
> into when an upgrade over system tables occurs.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)