Github user kumarvishal09 commented on a diff in the pull request:
https://github.com/apache/carbondata/pull/2148#discussion_r183063006
--- Diff:
core/src/main/java/org/apache/carbondata/core/scan/executor/impl/SearchModeVectorDetailQueryExecutor.java
---
@@ -31,35 +31,53 @@
import
org.apache.carbondata.core.scan.result.iterator.SearchModeResultIterator;
import org.apache.carbondata.core.util.CarbonProperties;
+import static
org.apache.carbondata.core.constants.CarbonCommonConstants.CARBON_SEARCH_MODE_SCAN_THREAD;
+
/**
* Below class will be used to execute the detail query and returns
columnar vectors.
*/
public class SearchModeVectorDetailQueryExecutor extends
AbstractQueryExecutor<Object> {
private static final LogService LOGGER =
LogServiceFactory.getLogService(SearchModeVectorDetailQueryExecutor.class.getName());
- private static ExecutorService executorService;
+ private static ExecutorService executorService = null;
static {
+ initThreadPool();
+ }
+
+ private static synchronized void initThreadPool() {
int nThread;
try {
nThread = Integer.parseInt(CarbonProperties.getInstance()
-
.getProperty(CarbonCommonConstants.CARBON_SEARCH_MODE_SCAN_THREAD,
+ .getProperty(CARBON_SEARCH_MODE_SCAN_THREAD,
CarbonCommonConstants.CARBON_SEARCH_MODE_SCAN_THREAD_DEFAULT));
} catch (NumberFormatException e) {
nThread =
Integer.parseInt(CarbonCommonConstants.CARBON_SEARCH_MODE_SCAN_THREAD_DEFAULT);
- LOGGER.warn("The carbon.search.mode.thread is invalid. Using the
default value " + nThread);
+ LOGGER.warn("The " + CARBON_SEARCH_MODE_SCAN_THREAD + " is invalid. "
+ + "Using the default value " + nThread);
}
if (nThread > 0) {
- executorService = Executors.newFixedThreadPool(nThread);
+ executorService = Executors.newFixedThreadPool(nThread);
--- End diff --
yes in Thread pool you can pass thread factory object and assign pool name
ExecutorService executorService = Executors.newFixedThreadPool(1,
new CarbonThreadFactory("CarbonRecordWriter:" +
loadModel.getTableName()));;
---