/** * This method returns the valid segments attached to the table Identifier. * * @param absoluteTableIdentifier * @return */ public static List<Segment> getValidSegmentList(AbsoluteTableIdentifier absoluteTableIdentifier) throws IOException { SegmentStatusManager.ValidAndInvalidSegmentsInfo validAndInvalidSegments = null; try { validAndInvalidSegments = new SegmentStatusManager(absoluteTableIdentifier).getValidAndInvalidSegments(); } catch (IOException e) { LOGGER.error("Error while getting valid segment list for a table identifier"); throw new IOException(); } return validAndInvalidSegments.getValidSegments(); }
/** * Update the table status file with the dropped partitions information * * @param carbonTable * @param uniqueId * @param toBeUpdatedSegments * @param toBeDeleteSegments * @throws IOException */ public static void commitDropPartitions(CarbonTable carbonTable, String uniqueId, List<String> toBeUpdatedSegments, List<String> toBeDeleteSegments, String uuid) throws IOException { if (toBeDeleteSegments.size() > 0 || toBeUpdatedSegments.size() > 0) { Set<Segment> segmentSet = new HashSet<>( new SegmentStatusManager(carbonTable.getAbsoluteTableIdentifier()) .getValidAndInvalidSegments().getValidSegments()); CarbonUpdateUtil.updateTableMetadataStatus(segmentSet, carbonTable, uniqueId, true, Segment.toSegmentList(toBeDeleteSegments, null), Segment.toSegmentList(toBeUpdatedSegments, null), uuid); } }
if (getValidateSegmentsToAccess(job.getConfiguration())) { if (!accessStreamingSegments) { List<Segment> validSegments = segments.getValidSegments(); streamSegments = segments.getStreamSegments(); streamSegments = getFilteredSegment(job, streamSegments, true, readCommittedScope); getFilteredSegment(job, segments.getValidSegments(), true, readCommittedScope); if (filteredSegmentToAccess.size() == 0) { return getSplitsOfStreaming(job, streamSegments, carbonTable); getFilteredNormalSegments(job, segments.getValidSegments(), getSegmentsToAccess(job, readCommittedScope)); streamSegments = segments.getStreamSegments(); List<Segment> validAndInProgressSegments = new ArrayList<>(segments.getValidSegments());
Set<Segment> segmentSet = new HashSet<>( new SegmentStatusManager(carbonTable.getAbsoluteTableIdentifier(), context.getConfiguration()).getValidAndInvalidSegments().getValidSegments()); if (updateTime != null) { CarbonUpdateUtil.updateTableMetadataStatus(segmentSet, carbonTable, updateTime, true,
getFilteredSegment(job, allSegments.getValidSegments(), false, readCommittedScope);
SegmentStatusManager.ValidAndInvalidSegmentsInfo validAndInvalidSegmentsInfo = segmentStatusManager.getValidAndInvalidSegments(); List<Segment> validSegments = validAndInvalidSegmentsInfo.getValidSegments(); if (validSegments.isEmpty()) { return carbonProperties.getFormatVersion();
List<Segment> validSegments = new SegmentStatusManager(table.getAbsoluteTableIdentifier()) .getValidAndInvalidSegments().getValidSegments(); String uniqueId = String.valueOf(System.currentTimeMillis()); List<String> tobeUpdatedSegs = new ArrayList<>();
SegmentStatusManager.ValidAndInvalidSegmentsInfo validAndInvalidSegmentsInfo = getValidAndInvalidSegments(carbonTable, FileFactory.getConfiguration()); List<Segment> validSegments = validAndInvalidSegmentsInfo.getValidSegments(); List<Segment> invalidSegments = validAndInvalidSegmentsInfo.getInvalidSegments(); DataMapExprWrapper dataMapExprWrapper = null;
/** * this method will delete the datamap folders during drop datamap * @throws MalformedDataMapCommandException */ private void deleteDatamap() throws MalformedDataMapCommandException { SegmentStatusManager ssm = new SegmentStatusManager(tableIdentifier); try { List<Segment> validSegments = ssm.getValidAndInvalidSegments().getValidSegments(); for (Segment segment : validSegments) { deleteDatamapData(segment); } } catch (IOException | RuntimeException ex) { throw new MalformedDataMapCommandException( "drop datamap failed, failed to delete datamap directory"); } }
@Override public void deleteDatamapData() { SegmentStatusManager ssm = new SegmentStatusManager(getCarbonTable().getAbsoluteTableIdentifier()); try { List<Segment> validSegments = ssm.getValidAndInvalidSegments().getValidSegments(); for (Segment segment : validSegments) { deleteDatamapData(segment); } } catch (IOException e) { LOGGER.error("drop datamap failed, failed to delete datamap directory"); } }