phoenix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "James Taylor (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (PHOENIX-4051) Prevent out-of-order updates for mutable index updates
Date Fri, 28 Jul 2017 04:56:00 GMT

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

James Taylor commented on PHOENIX-4051:
---------------------------------------

Looks like this quick patch didn't solve the issue that [~mujtabachohan]  found based on his
testing. Mujtaba - if you could show the index rows generated for a data row when there are
more than one index rows generated, that would be useful (including the data row updates too).

Rather than commit this, I think it'd be better to focus on PHOENIX-4052.

> Prevent out-of-order updates for mutable index updates
> ------------------------------------------------------
>
>                 Key: PHOENIX-4051
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-4051
>             Project: Phoenix
>          Issue Type: Bug
>            Reporter: James Taylor
>            Assignee: James Taylor
>         Attachments: PHOENIX-4051_v1.patch
>
>
> Out-of-order processing of data rows during index maintenance causes mutable indexes
to become out of sync with regard to the data table. Here's a simple example to illustrate
the issue:
> # Assume table T(K,V) and index X(V,K).
> # Upsert T(A, 1) at t10. Index updates: Put X(1,A) at t10.
> # Upsert T(A, 3) at t30. Index updates: Delete X(1,A) at t29, Put X(3,A) at t30.
> # Upsert T(A,2) at t20. Index updates: Delete X(1,A) at t19, Put X(2,A) at t20, Delete
X(2,A) at t29
> Ideally, we'd want to remove the Delete X(1,A) at t29 since this isn't correct in terms
of timeline consistency, but we can't do that with HBase without support for deleting/undoing
Delete markers. 
> The above is not what is occurring. Instead, when T(A,2) comes in, the Put X(2,A) will
occur at t20, but the Delete won't occur. This causes more index rows than data rows, essentially
making it invalid.
> A quick fix is to reset the timestamp of the data table mutations to the current time
within the preBatchMutate call, when the row is exclusively locked. This skirts the issue
because then timestamps won't overlap.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Mime
View raw message