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

Phabricator commented on HBASE-4742:
------------------------------------

khemani has commented on the revision "[jira] [HBASE-4742] Split dead server's 
log in parallel".

  If you splitLog(list-of-servernames) then the function won't return until all 
the servers' logs are split.

  If you call multiple splitLog(servername) then each one returns as soon as it 
is done. This is what we are doing now and we should stay with it.

INLINE COMMENTS
  src/main/java/org/apache/hadoop/hbase/master/HMaster.java:305 managing 
threads through a thread pool is a good thing. But I doubt that there is any 
scenario where the number of threads will increase without limit. The number of 
threads will always be limited by the number of region servers. And a new 
incarnation of a region server is not instantiated by the master unless the old 
one's log splitting is done.

  but i think we should still use the thread pool. it is a better abstraction.
  src/main/java/org/apache/hadoop/hbase/master/ProcessServerShutdown.java:304 
Can you please do a new Runnable inline over here. That will make it easier for 
someone to read ProcessServerShutdown() code. Having two methods run() and 
process() kind of makes it confusing to understand ProcessServerShutdown.
  src/main/java/org/apache/hadoop/hbase/master/ProcessServerShutdown.java:323 
This should be LOG.debug. You might consider rate limiting this debug output.
  src/main/java/org/apache/hadoop/hbase/master/ProcessServerShutdown.java:333 
This should be LOG.warn
  src/main/java/org/apache/hadoop/hbase/master/ProcessServerShutdown.java:339 
Runtime.halt()? Even if you throw an exception the retry mechanism will kick in.
  src/main/java/org/apache/hadoop/hbase/master/ProcessServerShutdown.java:304 
If master shutdown is called (abort or regular shutdown) then I am not sure 
that the pool is shutting down properly. Someone has to interrupt each of the 
threads that are have called splitLog(). Or those splitLog() threads have to be 
daemons.
  src/main/java/org/apache/hadoop/hbase/master/ProcessServerShutdown.java:316 
Now that you have a thread pool you can look at the status of the submitted 
tasks instead of maintaining  special states :)


REVISION DETAIL
  https://reviews.facebook.net/D237

                
> Split dead server's log in parallel
> -----------------------------------
>
>                 Key: HBASE-4742
>                 URL: https://issues.apache.org/jira/browse/HBASE-4742
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Liyin Tang
>            Assignee: Liyin Tang
>         Attachments: D237.1.patch, D237.2.patch, D237.3.patch, D237.4.patch, 
> D237.5.patch
>
>
> When one region server goes down, the master will shutdown the region server 
> and split its log.
> However, splitting log is a blocking call and it would take some time.
> If more than one region server go down, the master will split its log one by 
> one, which is not efficient.
> Since we have the distributed log split, we could split these logs from the 
> dead servers in parallel. 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to