[
https://issues.apache.org/jira/browse/PHOENIX-4657?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16705313#comment-16705313
]
Geoffrey Jacoby commented on PHOENIX-4657:
------------------------------------------
[~tdsilva] - In an environment with tens of thousands of tenants, any one of
which can permanently leave at any time and need their metadata cleaned up,
needing to "su" into each tenant individually to drop views is at best a huge
pain and at worst impractical.
More importantly, the current behavior leads to actual bugs in Phoenix
processing like PHOENIX-4195. The ability for tenant-owned connections to
create data that global connections can't see, modify or delete leads to lots
of subtle problems, many of which are silent.
PHOENIX-4195 also prevents some very useful features, like a global view with
many children tenant views, and a single global delete process that purges data
according to some broad criteria
> Allow global connections to see tenant-owned objects
> ----------------------------------------------------
>
> Key: PHOENIX-4657
> URL: https://issues.apache.org/jira/browse/PHOENIX-4657
> Project: Phoenix
> Issue Type: New Feature
> Affects Versions: 4.13.0
> Reporter: Geoffrey Jacoby
> Priority: Major
>
> Views and indexes created by tenant connections are invisible to global
> connections. This is problematic in environments where normal users are
> always assigned tenant connections but system-level processes and admin tools
> use globals.
> A user can create a view or index that an administrator using, say, sqlline,
> cannot easily drop.
> In offline conversations, I've learned that one reason for this is
> disambiguation: tenant A and tenant B can both create an object called
> "Test.Foo".
> One straightforward way around this problem is to allow the global connection
> to fully qualify the object name. For example, to drop the views in the above
> example, a user could do the following:
> DROP VIEW IF EXISTS "A".Test.Foo
> DROP VIEW IF EXISTS "B".Test.Foo
> (The quotes are there to disambiguate <tenant_id>.<view name> from
> <schema>.<view_name>)
> If some environments wish to forbid global connections from seeing
> tenant-owned objects (the old behavior), this could perhaps be configurable
> server-side in hbase-site.xml, or alternately, by an enhancement to the GRANT
> functionality.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)