phoenix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ankit Singhal (JIRA)" <>
Subject [jira] [Commented] (PHOENIX-2862) Do client server compatibility checks before upgrading system tables
Date Tue, 03 May 2016 19:59:12 GMT


Ankit Singhal commented on PHOENIX-2862:

bq. It seems like users need to have a config now on the server side to enable system table
upgrade to namespace
Yes , as system tables are accessed directly with the absolute name so if they are migrated
to namespace and client/server doesn't know about it, then they cannot access them by using
table name SYSTEM\[.\](as they should use SYSTEM\[:\])

bq.  Why can't older clients connect to cluster running new phoenix jars if the config is
enabled? What problem would we run into if the system tables are name space mapped and then
an older client tries to connect to it? 
Config at server is the indication that SYSTEM tables are migrated to namespace by newer client
. so , old client can not know(even if it has that config enable) that the system tables are
now exists in SYSTEM namespace and they will never able to access them. so this config needs
to be used only when you are running only new clients in the cluster.

bq. What about user tables? Wouldn't we run into same problems for them too?
No, we will not run into the same problem for user tables, as User tables mapped or unmapped
can be easily resolved by looking at isNamespaceFlag in meta table. Old client can also easily
resolve the *unmapped* tables by ignoring the flag.

> Do client server compatibility checks before upgrading system tables
> --------------------------------------------------------------------
>                 Key: PHOENIX-2862
>                 URL:
>             Project: Phoenix
>          Issue Type: Sub-task
>            Reporter: Ankit Singhal
>            Assignee: Ankit Singhal
>             Fix For: 4.8.0
>         Attachments: PHOENIX-2862.patch
> currently , we allow upgrade of system tables to map to system namespace by enabling
"phoenix.schema.mapSystemTablesToNamespace" config (conjuction with "phoenix.connection.isNamespaceMappingEnabled")

> but we need to ensure following things whenever client connects with above config:-
> 1. Server should be upgraded and check consistency of these properties between client
and server.
> 2. If above property does not exists but system:catalog exists, we should not start creating
> 3. if old client connects, it should not create system.catalog again ignoring the upgrade
and start using it.

This message was sent by Atlassian JIRA

View raw message