You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@phoenix.apache.org by "Samarth Jain (JIRA)" <ji...@apache.org> on 2015/01/15 01:52:36 UTC

[jira] [Comment Edited] (PHOENIX-1576) Refactor property-related code to reside in ConnectionQueryServicesImpl

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

Samarth Jain edited comment on PHOENIX-1576 at 1/15/15 12:52 AM:
-----------------------------------------------------------------

The patch does following things:
1) Refactors the properties code out of MetatdataClient to ConnectionQueryServicesImpl#addColumn()
2) Makes sure we do only one RPC call for adding columns/setting column family properties/setting table properties. The previous code used to do a separate RPC for each column family being added as well as a separate RPC for setting table properties. 
3) Added a check to poll for updated table descriptor only if column families are being added/changed.
4) Tweaked the check for making an end-point call to update table metadata only if column families/columns are being added. The end point call is not made if we are only changing hbase level properties. See ConnectionQueryServicesImpl#addColumn()
5) Added checks for the case when we are adding pk columns and setting properties. See AlterTableIT#testAddingPkColAndSettingProperties for the cases covered.

[~jamestaylor] - please review. Thanks! 


was (Author: samarthjain):
The patch does following things:
1) Refactors the properties code out of MetatdataClient to ConnectionQueryServicesImpl#addColumn()
2) Makes sure we do only one RPC call for adding columns/setting column family properties/setting table properties. The previous code used to do a separate RPC for each column family being added as well as a separate RPC for setting table properties. 
3) Added a check to poll for updated table descriptor only if column families are being added/changed.
4) Tweaked the check for making an end-point call to update table metadata only if column families/columns are being added. The end point call is not made if we are only changing hbase level properties. See ConnectionQueryServicesImpl#addColumn()

[~jamestaylor] - please review. Thanks! 

> Refactor property-related code to reside in ConnectionQueryServicesImpl
> -----------------------------------------------------------------------
>
>                 Key: PHOENIX-1576
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-1576
>             Project: Phoenix
>          Issue Type: Bug
>            Reporter: James Taylor
>            Assignee: Samarth Jain
>         Attachments: PHOENIX-1576.patch
>
>
> The code in MetaDataClient.addColumn() that deals with teasing apart Phoenix, HColumnDescriptor, and HTableDescriptor properties should all reside in ConnectionQueryServicesImpl, instead of being split between this and MetaDataClient. We should build up an HTableDescriptor with all necessary changes and issue a single modifyTable call instead of making separate RPCs for each change.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)