[
https://issues.apache.org/jira/browse/PHOENIX-2026?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
James Taylor updated PHOENIX-2026:
----------------------------------
Description:
At CREATE TABLE time, we should define a new boolean property (UNMODIFYABLE or
DISALLOW_DDL) which prevents any ALTER TABLE calls that would modify the
Phoenix table definition. The advantage of this would be that under some
circumstances, we would not need to ping the server to find out if we have the
latest metadata.
Note that we still need to ping the server most of the time to get the server
timestamp used as the upper bound on our scans. For transactional tables, we
don't need to do this (as we do a similar RPC when a transaction starts to get
a timestamp in the form of a transaction ID). It's possible for non
transactional tables that we could not set this upper bound for queries, but I
think for UPSERT SELECT we'd still want to set it as otherwise different rows
on different region servers would have different timestamps for the same
commit. It'd prevent the RPC done at commit time for UPSERT VALUES, though.
was:
At CREATE TABLE time, we should define a new boolean property (UNMODIFYABLE or
DISALLOW_DDL) which prevents any ALTER TABLE calls that would modify the
Phoenix table definition. The advantage of this would be that under some
circumstances, we would not need to ping the server to find out if we have the
latest metadata.
Note that we still need to ping the server most of the time to get the server
timestamp used as the upper bound on our scans. For transactional tables, we
don't need to do this (as we do a similar RPC when a transaction starts to get
a timestamp in the form of a transaction ID). It's possible for non
transactional tables that we could not set this upper bound for queries, but I
think for DML we'd still want to set it as otherwise different rows on
different region servers would have different timestamps for the same commit.
> Allow table to be declared its schema as un-modifyable
> -------------------------------------------------------
>
> Key: PHOENIX-2026
> URL: https://issues.apache.org/jira/browse/PHOENIX-2026
> Project: Phoenix
> Issue Type: Bug
> Reporter: James Taylor
> Labels: YARN-TLS
>
> At CREATE TABLE time, we should define a new boolean property (UNMODIFYABLE
> or DISALLOW_DDL) which prevents any ALTER TABLE calls that would modify the
> Phoenix table definition. The advantage of this would be that under some
> circumstances, we would not need to ping the server to find out if we have
> the latest metadata.
> Note that we still need to ping the server most of the time to get the server
> timestamp used as the upper bound on our scans. For transactional tables, we
> don't need to do this (as we do a similar RPC when a transaction starts to
> get a timestamp in the form of a transaction ID). It's possible for non
> transactional tables that we could not set this upper bound for queries, but
> I think for UPSERT SELECT we'd still want to set it as otherwise different
> rows on different region servers would have different timestamps for the same
> commit. It'd prevent the RPC done at commit time for UPSERT VALUES, though.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)