HBASE-17006 Give name to existing threads.

Having thread names in logs and thread dumps greatly improve debugability. This patch is simply adding the names to the threads we spawn.

Change-Id: I6ff22cc3804bb81147dde3a8e9ab671633c6f6ce
This commit is contained in:
Apekshit Sharma 2016-11-02 15:59:07 -07:00
parent f61ae6f06d
commit bb0fc6b602
18 changed files with 34 additions and 44 deletions

View File

@ -113,7 +113,7 @@ public class PolicyBasedChaosMonkey extends ChaosMonkey {
for (int i=0; i<policies.length; i++) {
policies[i].init(new Policy.PolicyContext(this.util));
Thread monkeyThread = new Thread(policies[i]);
Thread monkeyThread = new Thread(policies[i], "ChaosMonkeyThread");
monkeyThread.start();
monkeyThreads[i] = monkeyThread;
}

View File

@ -273,7 +273,7 @@ public class HFileSystem extends FilterFileSystem {
ClientProtocol cp1 = createReorderingProxy(namenode, lrb, conf);
nf.set(dfsc, cp1);
LOG.info("Added intercepting call to namenode#getBlockLocations so can do block reordering" +
" using class " + lrb.getClass());
" using class " + lrb.getClass().getName());
} catch (NoSuchFieldException e) {
LOG.warn("Can't modify the DFSClient#namenode field to add the location reorder.", e);
return false;

View File

@ -63,8 +63,8 @@ public class PrefetchExecutor {
new ThreadFactory() {
@Override
public Thread newThread(Runnable r) {
Thread t = new Thread(r);
t.setName("hfile-prefetch-" + System.currentTimeMillis());
String name = "hfile-prefetch-" + System.currentTimeMillis();
Thread t = new Thread(r, name);
t.setDaemon(true);
return t;
}

View File

@ -784,6 +784,7 @@ public class BucketCache implements BlockCache, HeapSize {
private volatile boolean writerEnabled = true;
WriterThread(BlockingQueue<RAMQueueEntry> queue) {
super("BucketCacheWriterThread");
this.inputQueue = queue;
}

View File

@ -666,7 +666,8 @@ public class HMaster extends HRegionServer implements MasterServices {
throws IOException, InterruptedException, KeeperException, CoordinatedStateException {
isActiveMaster = true;
Thread zombieDetector = new Thread(new InitializationMonitor(this));
Thread zombieDetector = new Thread(new InitializationMonitor(this),
"ActiveMasterInitializationMonitor-" + System.currentTimeMillis());
zombieDetector.start();
/*

View File

@ -57,9 +57,8 @@ public class MasterMobCompactionThread {
new SynchronousQueue<Runnable>(), new ThreadFactory() {
@Override
public Thread newThread(Runnable r) {
Thread t = new Thread(r);
t.setName(n + "-MasterMobCompaction-" + EnvironmentEdgeManager.currentTime());
return t;
String name = n + "-MasterMobCompaction-" + EnvironmentEdgeManager.currentTime();
return new Thread(r, name);
}
});
((ThreadPoolExecutor) this.masterMobPool).allowCoreThreadTimeOut(true);

View File

@ -124,9 +124,8 @@ public class CompactSplitThread implements CompactionRequestor, PropagatingConfi
new ThreadFactory() {
@Override
public Thread newThread(Runnable r) {
Thread t = new Thread(r);
t.setName(n + "-longCompactions-" + System.currentTimeMillis());
return t;
String name = n + "-longCompactions-" + System.currentTimeMillis();
return new Thread(r, name);
}
});
this.longCompactions.setRejectedExecutionHandler(new Rejection());
@ -136,9 +135,8 @@ public class CompactSplitThread implements CompactionRequestor, PropagatingConfi
new ThreadFactory() {
@Override
public Thread newThread(Runnable r) {
Thread t = new Thread(r);
t.setName(n + "-shortCompactions-" + System.currentTimeMillis());
return t;
String name = n + "-shortCompactions-" + System.currentTimeMillis();
return new Thread(r, name);
}
});
this.shortCompactions
@ -148,9 +146,8 @@ public class CompactSplitThread implements CompactionRequestor, PropagatingConfi
new ThreadFactory() {
@Override
public Thread newThread(Runnable r) {
Thread t = new Thread(r);
t.setName(n + "-splits-" + System.currentTimeMillis());
return t;
String name = n + "-splits-" + System.currentTimeMillis();
return new Thread(r, name);
}
});
int mergeThreads = conf.getInt(MERGE_THREADS, MERGE_THREADS_DEFAULT);
@ -158,9 +155,8 @@ public class CompactSplitThread implements CompactionRequestor, PropagatingConfi
mergeThreads, new ThreadFactory() {
@Override
public Thread newThread(Runnable r) {
Thread t = new Thread(r);
t.setName(n + "-merges-" + System.currentTimeMillis());
return t;
String name = n + "-merges-" + System.currentTimeMillis();
return new Thread(r, name);
}
});

View File

@ -504,9 +504,6 @@ public class HRegionServer extends HasThread implements
/**
* Starts a HRegionServer at the default location.
* @param conf
* @throws IOException
* @throws InterruptedException
*/
public HRegionServer(Configuration conf) throws IOException, InterruptedException {
this(conf, CoordinatedStateManagerFactory.getCoordinatedStateManager(conf));
@ -514,12 +511,10 @@ public class HRegionServer extends HasThread implements
/**
* Starts a HRegionServer at the default location
* @param conf
* @param csm implementation of CoordinatedStateManager to be used
* @throws IOException
*/
public HRegionServer(Configuration conf, CoordinatedStateManager csm)
throws IOException {
public HRegionServer(Configuration conf, CoordinatedStateManager csm) throws IOException {
super("RegionServer"); // thread name
this.fsOk = true;
this.conf = conf;
HFile.checkHFileVersion(this.conf);

View File

@ -68,6 +68,7 @@ public class Leases extends HasThread {
* (milliseconds)
*/
public Leases(final int leaseCheckFrequency) {
super("RegionServerLeases"); // thread name
this.leaseCheckFrequency = leaseCheckFrequency;
setDaemon(true);
}

View File

@ -90,7 +90,7 @@ public class LogRoller extends HasThread {
/** @param server */
public LogRoller(final Server server, final RegionServerServices services) {
super();
super("LogRoller");
this.server = server;
this.services = services;
this.rollperiod = this.server.getConfiguration().

View File

@ -44,11 +44,9 @@ public class RegionServicesForStores {
new ThreadFactory() {
@Override
public Thread newThread(Runnable r) {
Thread t = new Thread(r);
t.setName(Thread.currentThread().getName()
+ "-inmemoryCompactions-"
+ System.currentTimeMillis());
return t;
String name = Thread.currentThread().getName() + "-inmemoryCompactions-" +
System.currentTimeMillis();
return new Thread(r, name);
}
});
private final HRegion region;

View File

@ -119,7 +119,8 @@ public class ShutdownHook {
if (refs == 1) {
LOG.info("Starting fs shutdown hook thread.");
Thread fsShutdownHookThread = (fsShutdownHook instanceof Thread) ?
(Thread)fsShutdownHook : new Thread(fsShutdownHook);
(Thread)fsShutdownHook : new Thread(fsShutdownHook,
fsShutdownHook.getClass().getSimpleName() + "-shutdown-hook");
fsShutdownHookThread.start();
Threads.shutdown(fsShutdownHookThread,
this.conf.getLong(FS_SHUTDOWN_HOOK_WAIT, 30000));

View File

@ -720,7 +720,7 @@ public final class Canary implements Tool {
// Do monitor !!
try {
monitor = this.newMonitor(connection, index, args);
monitorThread = new Thread(monitor);
monitorThread = new Thread(monitor, "CanaryMonitor-" + System.currentTimeMillis());
startTime = System.currentTimeMillis();
monitorThread.start();
while (!monitor.isDone()) {

View File

@ -83,9 +83,8 @@ public class JvmPauseMonitor {
public void start() {
Preconditions.checkState(monitorThread == null, "Already started");
monitorThread = new Thread(new Monitor());
monitorThread = new Thread(new Monitor(), "JvmPauseMonitor");
monitorThread.setDaemon(true);
monitorThread.setName("JvmPauseMonitor");
monitorThread.start();
}

View File

@ -233,8 +233,7 @@ public abstract class ModifyRegionUtils {
@Override
public Thread newThread(Runnable r) {
Thread t = new Thread(r, threadNamePrefix + "-" + count++);
return t;
return new Thread(r, threadNamePrefix + "-" + count++);
}
});
return regionOpenAndInitThreadPool;

View File

@ -69,9 +69,7 @@ public class PerformanceEvaluationCommons {
long now = System.currentTimeMillis();
List<Thread> threads = new ArrayList<Thread>(count);
for (int i = 0; i < count; i++) {
Thread t = new Thread(r);
t.setName("" + i);
threads.add(t);
threads.add(new Thread(r, "concurrentRead-" + i));
}
for (Thread t: threads) {
t.start();

View File

@ -158,7 +158,8 @@ public abstract class MultiThreadedAction {
this.startKey = startKey;
this.endKey = endKey;
this.numThreads = numThreads;
(new Thread(new ProgressReporter(actionLetter))).start();
(new Thread(new ProgressReporter(actionLetter),
"MultiThreadedAction-ProgressReporter-" + System.currentTimeMillis())).start();
}
private static String formatTime(long elapsedTime) {

View File

@ -89,7 +89,8 @@ public abstract class MultiThreadedWriterBase extends MultiThreadedAction {
wroteUpToKey.set(startKey - 1);
if (trackWroteKeys) {
new Thread(new WroteKeysTracker()).start();
new Thread(new WroteKeysTracker(),
"MultiThreadedWriterBase-WroteKeysTracker-" + System.currentTimeMillis()).start();
numThreadsWorking.incrementAndGet();
}
}