public static CarbonTaskInfo getCarbonTaskInfo() { if (null == threadLocal.get()) { CarbonTaskInfo carbonTaskInfo = new CarbonTaskInfo(); carbonTaskInfo.setTaskId(CarbonUtil.generateUUID()); ThreadLocalTaskInfo.setCarbonTaskInfo(carbonTaskInfo); } return threadLocal.get(); } }
.freeMemoryAll(ThreadLocalTaskInfo.getCarbonTaskInfo().getTaskId());
public UnsafeSortDataRows(SortParameters parameters, UnsafeIntermediateMerger unsafeInMemoryIntermediateFileMerger, int inMemoryChunkSize) { this.parameters = parameters; this.tableFieldStat = new TableFieldStat(parameters); this.reUsableByteArrayDataOutputStream = new ThreadLocal<ReUsableByteArrayDataOutputStream>() { @Override protected ReUsableByteArrayDataOutputStream initialValue() { ByteArrayOutputStream byteStream = new ByteArrayOutputStream(); return new ReUsableByteArrayDataOutputStream(byteStream); } }; this.unsafeInMemoryIntermediateFileMerger = unsafeInMemoryIntermediateFileMerger; // observer of writing file in thread this.threadStatusObserver = new ThreadStatusObserver(); this.taskId = ThreadLocalTaskInfo.getCarbonTaskInfo().getTaskId(); this.inMemoryChunkSize = inMemoryChunkSize * 1024L * 1024L; enableInMemoryIntermediateMerge = Boolean.parseBoolean(CarbonProperties.getInstance() .getProperty(CarbonCommonConstants.ENABLE_INMEMORY_MERGE_SORT, CarbonCommonConstants.ENABLE_INMEMORY_MERGE_SORT_DEFAULT)); this.maxSizeAllowed = parameters.getBatchSortSizeinMb(); if (maxSizeAllowed <= 0) { // If user does not input any memory size, then take half the size of usable memory configured // in sort memory size. this.maxSizeAllowed = UnsafeMemoryManager.INSTANCE.getUsableMemory() / 2; } else { this.maxSizeAllowed = this.maxSizeAllowed * 1024L * 1024L; } }
CarbonTaskInfo carbonTaskInfo = new CarbonTaskInfo(); carbonTaskInfo.setTaskId(CarbonUtil.generateUUID()); ThreadLocalTaskInfo.setCarbonTaskInfo(carbonTaskInfo); TableInfo tableInfo = request.tableInfo();