manishgupta88 commented on a change in pull request #3177: [CARBONDATA-3337][CARBONDATA-3306] Distributed index server
URL: https://github.com/apache/carbondata/pull/3177#discussion_r278105820 ########## File path: core/src/main/java/org/apache/carbondata/core/datamap/DataMapUtil.java ########## @@ -91,43 +94,129 @@ public static DataMapJob getDataMapJob(Configuration configuration) throws IOExc * @param carbonTable * @throws IOException */ - public static void executeDataMapJobForClearingDataMaps(CarbonTable carbonTable) - throws IOException { - String dataMapJobClassName = "org.apache.carbondata.spark.rdd.SparkDataMapJob"; + private static void executeDataMapJobForClearingSegmentDataMaps(DataMapJob dataMapJob, + CarbonTable carbonTable) throws IOException { + SegmentStatusManager.ValidAndInvalidSegmentsInfo validAndInvalidSegmentsInfo = + getValidAndInvalidSegments(carbonTable, FileFactory.getConfiguration()); + List<String> invalidSegment = new ArrayList<>(); + for (Segment segment : validAndInvalidSegmentsInfo.getInvalidSegments()) { + invalidSegment.add(segment.getSegmentNo()); + } + DistributableDataMapFormat dataMapFormat = new DistributableDataMapFormat(carbonTable, null, + validAndInvalidSegmentsInfo.getValidSegments(), invalidSegment, null, true, + DataMapLevel.FG); + dataMapJob.execute(dataMapFormat); + } + + public static void clearEmbeddedDataMaps(CarbonTable carbonTable) throws IOException { + String dataMapJobClassName = "org.apache.carbondata.indexserver.EmbeddedDataMapJob"; DataMapJob dataMapJob = (DataMapJob) createDataMapJob(dataMapJobClassName); if (dataMapJob == null) { return; } - String className = "org.apache.carbondata.core.datamap.DistributableDataMapFormat"; - SegmentStatusManager.ValidAndInvalidSegmentsInfo validAndInvalidSegmentsInfo = - getValidAndInvalidSegments(carbonTable, FileFactory.getConfiguration()); - List<Segment> validSegments = validAndInvalidSegmentsInfo.getValidSegments(); - List<Segment> invalidSegments = validAndInvalidSegmentsInfo.getInvalidSegments(); - DataMapExprWrapper dataMapExprWrapper = null; - if (DataMapStoreManager.getInstance().getAllDataMap(carbonTable).size() > 0) { - DataMapChooser dataMapChooser = new DataMapChooser(carbonTable); - dataMapExprWrapper = dataMapChooser.getAllDataMapsForClear(carbonTable); - } else { + executeDataMapJobForClearingSegmentDataMaps(dataMapJob, carbonTable); + } + + public static void clearDistributedDataMaps(CarbonTable carbonTable) + throws IOException { + String dataMapJobClassName = "org.apache.carbondata.indexserver.DistributedClearCacheJob"; Review comment: There is a method in `DataMapUtil` class called `clearEmbeddedDataMaps` which is doing the same work as `clearDistributedDataMaps`. It would be better if we change the method signature to add one more argument for className and rename the method `clearEmbeddedDataMaps` to a more generic name ---------------------------------------------------------------- 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: [hidden email] With regards, Apache Git Services |
Free forum by Nabble | Edit this page |