phoenix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "James Taylor (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (PHOENIX-4684) Creation of SYSTEM tables should not depend on client-side properties
Date Mon, 02 Apr 2018 23:01:00 GMT

    [ https://issues.apache.org/jira/browse/PHOENIX-4684?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16423262#comment-16423262
] 

James Taylor commented on PHOENIX-4684:
---------------------------------------

Seems there's a bootstrapping problem, as the client needs to first create (or test for the
existence) of the system catalog, so something needs to drive this. This must be done before
we make our first API call with getVersion since we need to know the table. We can (and I
believe we already do), check that the client and server are in agreement wrt namespace mapping.
If we don't, though, we should, and if client and server don't agree, we should fail the client
connection.

> Creation of SYSTEM tables should not depend on client-side properties
> ---------------------------------------------------------------------
>
>                 Key: PHOENIX-4684
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-4684
>             Project: Phoenix
>          Issue Type: Bug
>            Reporter: Chinmay Kulkarni
>            Priority: Major
>
> Currently, when the server receives its first connection, SYSTEM.CATALOG or SYSTEM:CATALOG
(and other system tables) are created depending on whether namespace mapping is enabled or
not on the connecting client. This can lead to potential bugs and unexpected behavior. For
example:
> Let's say *namespace mapping is disabled on the server*, but the first connection the
server gets is from a *client where namespace mapping is enabled*. In this case, we will create
the HBase physical table SYSTEM:CATALOG and then this client fails with an _SQLException_
for "Inconsistent namespace mapping properties".
> Now, when a client that has consistent namespace mapping properties with this server
i.e. ns-mapping disabled, tries to connect to this server, that client will get the same exception
from the CQSI._init_ method since SYSTEM:CATALOG exists already. This client will thus never
be able to get a connection to the server even though it is potentially compatible with the
server.
> Thus, system table creation should be purely driven by server-side properties and not
be dependent on the properties of the first client that connects to the server.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Mime
View raw message