[
https://issues.apache.org/jira/browse/PHOENIX-938?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13976277#comment-13976277
]
James Taylor commented on PHOENIX-938:
--------------------------------------
Thanks for much for the quick work on this one, [~jesse_yates]. You're right,
though - not crazy about the synchronized block on the class. :-) Is there an
alternate way of knowing that a table is an index table? Maybe a way to
register a table as an index table and a method you can call to check if a
table is an index table? Maybe store a ConcurrentHashSet on the getSharedData()
off of RegionCoprocessorEnvironment of the Indexer?
> Use higher priority queue for index updates to prevent deadlock
> ---------------------------------------------------------------
>
> Key: PHOENIX-938
> URL: https://issues.apache.org/jira/browse/PHOENIX-938
> Project: Phoenix
> Issue Type: Bug
> Affects Versions: 4.0.0, 4.1
> Reporter: James Taylor
> Assignee: Jesse Yates
> Attachments: phoenix-938-master-v0.patch
>
>
> With our current global secondary indexing solution, a batched Put of table
> data causes a RS to do a batch Put to other RSs. This has the potential to
> lead to a deadlock if all RS are overloaded and unable to process the pending
> batched Put. To prevent this, we should use a higher priority queue to submit
> these Puts so that they're always processed before other Puts. This will
> prevent the potential for a deadlock under high load. Note that this will
> likely require some HBase 0.98 code changes and would not be feasible to
> implement for HBase 0.94.
--
This message was sent by Atlassian JIRA
(v6.2#6252)