[ 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)