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

Vincent Poon commented on PHOENIX-4785:
---------------------------------------

>How about keeping a count of PENDING_DISABLE? which we will be incrementing 
>atomically on every PENDING_DISABLE call and decrementing it on ACTIVE call , 
>if count=0 make it ACTIVE otherwise keep it PENDING_DISABLE. 

You would need a global counter, and to be able to uniquely identify each 
client request.  So if

Client A writes, fails, PENDING_DISABLE = 1

Client B writes, fails, PENDING_DISABLE should be 2

Client A writes, fails, PENDING_DISABLE should still be 2

I suppose we could set it on the client side, by writing to System.CATALOG 
every time we initially get back an IndexWriteException ?

> Unable to write to table if index is made active during retry
> -------------------------------------------------------------
>
>                 Key: PHOENIX-4785
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-4785
>             Project: Phoenix
>          Issue Type: Bug
>    Affects Versions: 4.14.0
>            Reporter: Romil Choksi
>            Assignee: Vincent Poon
>            Priority: Blocker
>             Fix For: 5.0.0, 4.14.1
>
>         Attachments: PHOENIX-4785.v1.master.patch, PHOENIX-4785_test.patch
>
>
> After PHOENIX-4130, we are unable to write to a table if an index is made 
> ACTIVE during the retry as client timestamp is not cleared when table state 
> is changed from PENDING_DISABLE to ACTIVE even if our policy is not to block 
> writes on data table in case of write failure for index.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to