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

Reply via email to