[
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.
[[email protected]] 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)