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

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

[~elserj] As I understand the patch, it's the client setting the counter, so 
it's not quote a cross-RS RPC, but actually a client-to-server RPC.  We do have 
meta priority handlers for syscat so there's less of a chance of deadlock.  The 
thundering herd on syscat is still a valid concern, though it's somewhat 
mitigated by the default of 30 seconds we allow an index to remain in 
PENDING_DISABLE.  After that, the index is flipped to DISABLE and index 
maintenance stops, so the clients shouldn't be updating counters anymore after 
that.

[~an...@apache.org] Nice work on the patch, mostly lgtm on first pass, I'll do 
a more thorough review hopefully tomorrow.  One question - do you know if 
there's any way we can increment/decrement only if the index is in 
PENDING_DISABLE state?  There does seem to be a small race condition e.g. where 
an client gets an index write failure and starts retrying , the rebuilder 
thread goes through the DISABLE -> ACTIVE cycle and clears the counter, then 
the counter gets decremented after the client retries are exhausted.  It's nice 
that you clear the counter at ACTIVE as well as DISABLE so the odds of this are 
minimal.

> 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: Ankit Singhal
>            Priority: Blocker
>             Fix For: 5.0.0, 4.14.1
>
>         Attachments: PHOENIX-4785.v1.master.patch, PHOENIX-4785_test.patch, 
> PHOENIX-4785_v2.patch, PHOENIX-4785_v2_5.0-branch.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