You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@phoenix.apache.org by "Thomas D'Silva (JIRA)" <ji...@apache.org> on 2019/05/09 06:15:00 UTC
[jira] [Comment Edited] (PHOENIX-5266) Client can only write on
Index Table and skip data table if failure happens because of region
split/move etc
[ https://issues.apache.org/jira/browse/PHOENIX-5266?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16836093#comment-16836093 ]
Thomas D'Silva edited comment on PHOENIX-5266 at 5/9/19 6:14 AM:
-----------------------------------------------------------------
+1 , [~mihir6692] can you please upload a patch that applies to the 4.14 branches and commit this to the 4.14, 4.x and master branches?
Thanks for the fix.
was (Author: tdsilva):
+1 , [~mihir6692] can you please upload a patch that applies to the 4.14 branches as well, I will get this committed.
Thanks for the fix.
> Client can only write on Index Table and skip data table if failure happens because of region split/move etc
> ------------------------------------------------------------------------------------------------------------
>
> Key: PHOENIX-5266
> URL: https://issues.apache.org/jira/browse/PHOENIX-5266
> Project: Phoenix
> Issue Type: Bug
> Affects Versions: 4.15.0, 4.14.1, 5.1.0, 4.14.2
> Reporter: Mihir Monani
> Assignee: Mihir Monani
> Priority: Blocker
> Fix For: 4.14.2
>
> Attachments: PHOENIX-5266-4.x-HBase-1.3.01.patch, PHOENIX-5266-4.x-HBase-1.3.02.patch, PHOENIX-5266.01.patch, PHOENIX-5266.patch, PHOENIX-5266.patch
>
>
> With Phoenix 4.14.1 client, There is a scenario where client would skip data table write but do successful index table write. In this case, we should treat it as Data loss scenario.
>
> Relevant code path :-
> [https://github.com/apache/phoenix/blob/4.x-HBase-1.3/phoenix-core/src/main/java/org/apache/phoenix/execute/MutationState.java#L994-L1043]
> [https://github.com/apache/phoenix/blob/4.x-HBase-1.3/phoenix-core/src/main/java/org/apache/phoenix/execute/MutationState.java#L1089-L1109]
>
> Here is what happens :-
> * Consider below assumptions for scenario :-
> ** max no row in single batch = 100
> ** max size of batch = 2 MB
> * When client faces SQLException Code 1121, it sets variable shouldRetryIndexedMutation=true.
> * In scenarios where client sends batch of 100 rows only as per configuration, but batch size is >2 MB, MutationState.java#991 will split this 100 row batch into multiple smaller batches which are <2MB.
> ** MutationState.java#991 :- [https://github.com/apache/phoenix/blob/4.x-HBase-1.3/phoenix-core/src/main/java/org/apache/phoenix/execute/MutationState.java#L991]
> * Suppose there are 5 batches of 20 rows but client faces 1121 SQLExceptionCode on 2nd batch , then it will set shouldRetryIndexedMutation=true and it will retry all 5 batches again with only Index updates. This will results in rows missing from Data table.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)