anoopsjohn commented on a change in pull request #1783:
URL: https://github.com/apache/hbase/pull/1783#discussion_r430912909
##########
File path:
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HStore.java
##########
@@ -555,15 +555,24 @@ void setDataBlockEncoderInTest(HFileDataBlockEncoder
blockEncoder) {
}
// initialize the thread pool for opening store files in parallel..
ThreadPoolExecutor storeFileOpenerThreadPool =
- this.region.getStoreFileOpenAndCloseThreadPool("StoreFileOpener-"
- + this.region.getRegionInfo().getEncodedName() + "-" +
this.getColumnFamilyName());
+ this.region.getStoreFileOpenAndCloseThreadPool();
CompletionService<HStoreFile> completionService =
new ExecutorCompletionService<>(storeFileOpenerThreadPool);
-
+ String executingThreadNamePrefix = "StoreFileOpener-"
+ + this.region.getRegionInfo().getEncodedName() + "-" +
this.getColumnFamilyName();
+ AtomicInteger threadId = new AtomicInteger(0);
int totalValidStoreFile = 0;
for (StoreFileInfo storeFileInfo : files) {
// open each store file in parallel
- completionService.submit(() ->
this.createStoreFileAndReader(storeFileInfo));
+ completionService.submit(() -> {
+ Thread t = Thread.currentThread();
+ String name = t.getName();
+ Thread.currentThread().setName(executingThreadNamePrefix + "-"
Review comment:
This is done to dynamically change the thread name as per the Store name?
##########
File path:
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
##########
@@ -1769,7 +1771,7 @@ public void setTimeoutForWriteLock(long
timeoutForWriteLock) {
storeCloserThreadPool.shutdownNow();
}
}
-
+ storeFileOpenAndCloseThreadPool.shutdownNow();
Review comment:
This means keeping this 'storeFileOpenAndCloseThreadPool' active till
the Region is closed.
previously we create the pool at the region open time and once the stores
are opened, the pool is shutdown. Keeping it longer this way not looks good
##########
File path:
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HStore.java
##########
@@ -955,19 +964,24 @@ private void bulkLoadHFile(HStoreFile sf) throws
IOException {
if (!result.isEmpty()) {
// initialize the thread pool for closing store files in parallel.
ThreadPoolExecutor storeFileCloserThreadPool = this.region
- .getStoreFileOpenAndCloseThreadPool("StoreFileCloser-"
- + this.region.getRegionInfo().getEncodedName() + "-" +
this.getColumnFamilyName());
-
+ .getStoreFileOpenAndCloseThreadPool();
+ String executingThreadNamePrefix = "StoreFileCloser-"
+ + this.region.getRegionInfo().getEncodedName() + "-" +
this.getColumnFamilyName();
+ AtomicInteger threadId = new AtomicInteger(0);
// close each store file in parallel
CompletionService<Void> completionService =
new ExecutorCompletionService<>(storeFileCloserThreadPool);
for (HStoreFile f : result) {
completionService.submit(new Callable<Void>() {
@Override
public Void call() throws IOException {
+ Thread t = Thread.currentThread();
Review comment:
All these looks bit hacky
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]