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

Tanuj Khurana updated PHOENIX-6387:
-----------------------------------
    Comment: was deleted

(was: [Design 
doc|https://docs.google.com/document/d/1DImjzWh8OKH3iFJHYMRy_9Q1hklKFCVul_-epWKMiyc/edit?usp=sharing])

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

Reply via email to