[ https://issues.apache.org/jira/browse/PHOENIX-6387?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17393391#comment-17393391 ]
Viraj Jasani commented on PHOENIX-6387: --------------------------------------- [~tkhurana] PR#1237 is merged to [PHOENIX-6387-4.x|https://github.com/apache/phoenix/tree/PHOENIX-6387-4.x] branch. Is this expected and 4.x PR is pending? Thanks for tagging me, will try to spend some time tomorrow. Thanks > Conditional updates on tables with indexes > ------------------------------------------ > > Key: PHOENIX-6387 > URL: https://issues.apache.org/jira/browse/PHOENIX-6387 > Project: Phoenix > Issue Type: Improvement > Affects Versions: 5.0.0, 4.15.0 > Reporter: Kadir OZDEMIR > Assignee: Tanuj Khurana > Priority: Major > Fix For: 4.17.0, 5.2.0, 5.1.3 > > > For a row update done by using the UPSERT VALUES statement, the exact values > of the columns to be updated are specified within the UPSERT statement. > Regardless of whether a given row exists or not, after the update, we know > what the content will be for these columns. However, this is not the case > when the ON DUPLICATE KEY clause is added the UPSERT VALUES statement. This > clause makes the update conditional and the end result is determined based on > the conditions stated within the clause and the current state of the row at > the time the update is done. Also, this clause makes the UPSERT VALUES > statement atomic. > Conditional updates are supported for the tables without indexes currently. > The current design leverages an HBase atomic operation and cannot be expanded > to support tables with indexes since the design requires holding (HBase > level) row locks while doing index table updates over RPCs. This results in > cluster wide deadlocks. This jira is to redesign conditional updates using > Phoenix level row locks instead of using HBase level row locks to also > support tables with indexes by leveraging the design of PHOENIX-6160 which > simplifies the concurrent mutation handling on tables with indexes. -- This message was sent by Atlassian Jira (v8.3.4#803005)