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

Jeffrey Zhong updated PHOENIX-950:
----------------------------------

    Attachment: TransactionSupportPhoenixSecondaryIndexUpdate.pdf

In order to improve global secondary index failure handling better I'm planning 
to do the following two things:

Firstly a short-term workaround approach:

1) Having a "prepare" phase before data region's WAL appendNoSync to check 
index region is online(as most failure situation should index RS isn't 
available)
2) When index updates fails, we set index to "inactive" state(disallow reads 
while writes still can come)
3) Rebuild index partially in background from where it failed

Secondly, using transaction to better handle secondary index update. See my 
attached proposal. We could use a general transaction implementation to do the 
same while so far a general transaction implementation seems won't available 
soon, may require an extra component and some performance ramifications.

-Jeffrey

> Improve Secondary Index Update Failure Handling
> -----------------------------------------------
>
>                 Key: PHOENIX-950
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-950
>             Project: Phoenix
>          Issue Type: Improvement
>            Reporter: Jeffrey Zhong
>            Assignee: Jeffrey Zhong
>         Attachments: Improve Phoenix Secondary Index Update Failure 
> Handling.pdf, TransactionSupportPhoenixSecondaryIndexUpdate.pdf
>
>
> Current secondary index update could trigger chained region server failures. 
> This isn't friendly to end-users. Even we disable index after index update 
> failures before aborting, it will involve lot of human involvement because 
> index update failure isn't a rare situation.
> In this JIRA, I propose a 2PC like protocol. The "like" means it's a not a 
> real 2PC because no infinitely blocking but it requires read time(query) to 
> reconcile inconsistence between index and data. Since I'm not familiar with 
> the query time logic, please let me know if the proposal could fly.
> Thanks.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to