[ 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