[
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)