You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@phoenix.apache.org by "Thomas D'Silva (JIRA)" <ji...@apache.org> on 2019/07/15 02:48:00 UTC
[jira] [Updated] (PHOENIX-4861) While adding a view column make a
single RPC to update the encoded column qualifier counter and remove the
table from the cache of the physical table
[ https://issues.apache.org/jira/browse/PHOENIX-4861?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Thomas D'Silva updated PHOENIX-4861:
------------------------------------
Description:
For tables that use column encoding when we add a column to a view we need to update the encoded column qualifier counter on the base table. Currently we do this in two rpcs:
{code}
// there should only be remote mutations if we are creating a view that uses
// encoded column qualifiers (the remote mutations are to update the encoded
// column qualifier counter on the parent table)
if (parentTable != null && tableType == PTableType.VIEW && parentTable
.getEncodingScheme() != QualifierEncodingScheme.NON_ENCODED_QUALIFIERS) {
response =
processRemoteRegionMutations(
PhoenixDatabaseMetaData.SYSTEM_CATALOG_NAME_BYTES,
remoteMutations, MetaDataProtos.MutationCode.UNABLE_TO_UPDATE_PARENT_TABLE);
clearParentTableFromCache(clientTimeStamp,
parentTable.getSchemaName() != null
? parentTable.getSchemaName().getBytes()
: ByteUtil.EMPTY_BYTE_ARRAY,
parentTable.getName().getBytes());
if (response != null) {
done.run(response);
return;
}
}
{code}
Move this code to MetadataClient
was:
For tables that use column encoding when we add a column to a view we need to update the encoded column qualifier counter on the base table. Currently we do this in two rpcs:
{code}
// there should only be remote mutations if we are creating a view that uses
// encoded column qualifiers (the remote mutations are to update the encoded
// column qualifier counter on the parent table)
if (parentTable != null && tableType == PTableType.VIEW && parentTable
.getEncodingScheme() != QualifierEncodingScheme.NON_ENCODED_QUALIFIERS) {
response =
processRemoteRegionMutations(
PhoenixDatabaseMetaData.SYSTEM_CATALOG_NAME_BYTES,
remoteMutations, MetaDataProtos.MutationCode.UNABLE_TO_UPDATE_PARENT_TABLE);
clearParentTableFromCache(clientTimeStamp,
parentTable.getSchemaName() != null
? parentTable.getSchemaName().getBytes()
: ByteUtil.EMPTY_BYTE_ARRAY,
parentTable.getName().getBytes());
if (response != null) {
done.run(response);
return;
}
}
{code}
> While adding a view column make a single RPC to update the encoded column qualifier counter and remove the table from the cache of the physical table
> ------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: PHOENIX-4861
> URL: https://issues.apache.org/jira/browse/PHOENIX-4861
> Project: Phoenix
> Issue Type: Sub-task
> Reporter: Thomas D'Silva
> Priority: Major
>
> For tables that use column encoding when we add a column to a view we need to update the encoded column qualifier counter on the base table. Currently we do this in two rpcs:
> {code}
> // there should only be remote mutations if we are creating a view that uses
> // encoded column qualifiers (the remote mutations are to update the encoded
> // column qualifier counter on the parent table)
> if (parentTable != null && tableType == PTableType.VIEW && parentTable
> .getEncodingScheme() != QualifierEncodingScheme.NON_ENCODED_QUALIFIERS) {
> response =
> processRemoteRegionMutations(
> PhoenixDatabaseMetaData.SYSTEM_CATALOG_NAME_BYTES,
> remoteMutations, MetaDataProtos.MutationCode.UNABLE_TO_UPDATE_PARENT_TABLE);
> clearParentTableFromCache(clientTimeStamp,
> parentTable.getSchemaName() != null
> ? parentTable.getSchemaName().getBytes()
> : ByteUtil.EMPTY_BYTE_ARRAY,
> parentTable.getName().getBytes());
> if (response != null) {
> done.run(response);
> return;
> }
> }
> {code}
> Move this code to MetadataClient
--
This message was sent by Atlassian JIRA
(v7.6.14#76016)