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

Gokcen Iskender commented on PHOENIX-5768:
------------------------------------------

I am not sure about the correctness of Option 1. If there is a write to data 
table after it is read by the client, it will get overwritten.

I think Option 2 is a safer option and cleaner and cheaper to implement but 
there might be some performance implications since reads are greater than 
writes. If we think that it is not a huge impact, then I would prefer Option 2.

> Supporting partial overwrites for immutable tables with indexes
> ---------------------------------------------------------------
>
>                 Key: PHOENIX-5768
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-5768
>             Project: Phoenix
>          Issue Type: Bug
>    Affects Versions: 5.0.0, 4.14.3
>            Reporter: Kadir OZDEMIR
>            Assignee: Kadir OZDEMIR
>            Priority: Critical
>
> Phoenix allows immutable table with indexes to be overwritten partially as 
> long as the indexed columns are not updated during partial overwrites. 
> However, there is no check/enforcement for this. The immutable index 
> mutations are prepared on the client side without reading the existing data 
> table rows. This means the index mutations prepared by the client will be 
> partial when the data table row mutations are partial. The new indexing 
> design assumes index rows are always full and all cells within an index row 
> have the same timestamp. On the read path, GlobalIndexChecker returns only 
> the cells with the most recent timestamp of the row. This means that if the 
> client updates the same row multiple times, the client will read back only 
> the most recent update which could be partial.



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

Reply via email to