private void mergeCubeSegment(String cubeName) { CubeInstance cube = getCubeManager().getCube(cubeName); if (!cube.needAutoMerge()) return; synchronized (CubeService.class) { try { cube = getCubeManager().getCube(cubeName); SegmentRange offsets = cube.autoMergeCubeSegments(); if (offsets != null) { CubeSegment newSeg = getCubeManager().mergeSegments(cube, null, offsets, true); logger.debug("Will submit merge job on " + newSeg); DefaultChainedExecutable job = EngineFactory.createBatchMergeJob(newSeg, "SYSTEM"); getExecutableManager().addJob(job); } else { logger.debug("Not ready for merge on cube " + cubeName); } } catch (IOException e) { logger.error("Failed to auto merge cube " + cubeName, e); } } }
private void submitJob(CubeInstance cube, TSRange tsRange, CubeBuildTypeEnum buildType, boolean forceMergeEmptySeg, String submitter) throws IOException, JobException { checkCubeDescSignature(cube); DefaultChainedExecutable job; if (buildType == CubeBuildTypeEnum.BUILD) { CubeSegment newSeg = cubeManager.appendSegment(cube, tsRange); job = EngineFactory.createBatchCubingJob(newSeg, submitter); } else if (buildType == CubeBuildTypeEnum.MERGE) { CubeSegment newSeg = cubeManager.mergeSegments(cube, tsRange, null, forceMergeEmptySeg); job = EngineFactory.createBatchMergeJob(newSeg, submitter); } else if (buildType == CubeBuildTypeEnum.REFRESH) { CubeSegment refreshSeg = cubeManager.refreshSegment(cube, tsRange, null); job = EngineFactory.createBatchCubingJob(refreshSeg, submitter); } else { throw new JobException("invalid build type:" + buildType); } executableManager.addJob(job); }
} else if (buildType == CubeBuildTypeEnum.MERGE) { newSeg = getCubeManager().mergeSegments(cube, tsRange, segRange, force); job = EngineFactory.createBatchMergeJob(newSeg, submitter); } else if (buildType == CubeBuildTypeEnum.REFRESH) { newSeg = getCubeManager().refreshSegment(cube, tsRange, segRange);
private void submitJob(CubeInstance cube, TSRange tsRange, CubeBuildTypeEnum buildType, boolean forceMergeEmptySeg, String submitter) throws IOException, JobException { checkCubeDescSignature(cube); DefaultChainedExecutable job; if (buildType == CubeBuildTypeEnum.BUILD) { CubeSegment newSeg = cubeManager.appendSegment(cube, tsRange); job = EngineFactory.createBatchCubingJob(newSeg, submitter); } else if (buildType == CubeBuildTypeEnum.MERGE) { CubeSegment newSeg = cubeManager.mergeSegments(cube, tsRange, null, forceMergeEmptySeg); job = EngineFactory.createBatchMergeJob(newSeg, submitter); } else if (buildType == CubeBuildTypeEnum.REFRESH) { CubeSegment refreshSeg = cubeManager.refreshSegment(cube, tsRange, null); job = EngineFactory.createBatchCubingJob(refreshSeg, submitter); } else { throw new JobException("invalid build type:" + buildType); } executableManager.addJob(job); }