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

Viraj Jasani edited comment on PHOENIX-6082 at 10/17/20, 12:29 PM:
-------------------------------------------------------------------

[~ckulkarni] The only diff b/ "ALTER TABLE/VIEW ADD/DROP <col>" and "ALTER 
TABLE/VIEW SET <props>" I could see was empty vs non-empty stmtProperties in 
addColumn() 
[here|https://github.com/apache/phoenix/blob/master/phoenix-core/src/main/java/org/apache/phoenix/schema/MetaDataClient.java#L3640].

Is that the only diff or I am missing some other(better) differentiator?


was (Author: vjasani):
[~ckulkarni] The only diff b/ "ALTER TABLE/VIEW ADD/DROP <col>" and "ALTER 
TABLE/VIEW SET <props>" I could see was empty vs non-empty stmtProperties in 
addColumn() 
[here|https://github.com/apache/phoenix/blob/master/phoenix-core/src/main/java/org/apache/phoenix/schema/MetaDataClient.java#L3640].

Is that the only diff or I am missing some other differentiator?

> No need to do checkAndPut when altering properties for a table or view with 
> column-encoding enabled
> ---------------------------------------------------------------------------------------------------
>
>                 Key: PHOENIX-6082
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-6082
>             Project: Phoenix
>          Issue Type: Improvement
>    Affects Versions: 5.0.0, 4.15.0
>            Reporter: Chinmay Kulkarni
>            Assignee: Viraj Jasani
>            Priority: Major
>              Labels: performance, phoenix-hardening, quality-improvement
>             Fix For: 5.1.0, 4.16.0
>
>
> ALTER TABLE/VIEW SET <property> follows the same code path as an add column. 
> Thus, when column-encoding is enabled on the physical table, we will do a 
> checkAndPut with the <physical table schema name>, <physical table name> (see 
> [this|https://github.com/apache/phoenix/blob/4ddbe2688b78645bc73857141cec12cb1c08993b/phoenix-core/src/main/java/org/apache/phoenix/schema/MetaDataClient.java#L3940-L3947]).
> This makes sense when we are adding a column since this causes an update to 
> the encoded column qualifier counter of the base table and we want to prevent 
> any concurrent changes to this field. However, when setting properties, we 
> don't update the column qualifier counter so this extra checkAndPut is 
> unnecessary. The server-side [write-lock on the table header 
> row|https://github.com/apache/phoenix/blob/4ddbe2688b78645bc73857141cec12cb1c08993b/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/MetaDataEndpointImpl.java#L2619]
>  followed by a [sequence number 
> check|https://github.com/apache/phoenix/blob/4ddbe2688b78645bc73857141cec12cb1c08993b/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/MetaDataEndpointImpl.java#L2684-L2691]
>  should be sufficient and is already done.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to