You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@phoenix.apache.org by "Viraj Jasani (Jira)" <ji...@apache.org> on 2021/08/17 17:06:00 UTC

[jira] [Resolved] (PHOENIX-6387) Conditional updates on tables with indexes

     [ https://issues.apache.org/jira/browse/PHOENIX-6387?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Viraj Jasani resolved PHOENIX-6387.
-----------------------------------
    Resolution: Fixed

Thanks for the contribution [~tkhurana].

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