public SegmentRefreshInfo getCommittedSegmentRefreshInfo(Segment segment, UpdateVO updateVo) throws IOException { SegmentRefreshInfo segmentRefreshInfo; if (updateVo != null) { segmentRefreshInfo = new SegmentRefreshInfo(updateVo.getCreatedOrUpdatedTimeStamp(), 0); } else { segmentRefreshInfo = new SegmentRefreshInfo(0L, 0); } return segmentRefreshInfo; }
public boolean isRefreshNeeded(Segment seg, UpdateVO updateVo) throws IOException { SegmentRefreshInfo segmentRefreshInfo = seg.getSegmentRefreshInfo(updateVo); String segmentId = seg.getSegmentNo(); if (segmentRefreshTime.get(segmentId) == null && segmentRefreshInfo.getSegmentUpdatedTimestamp() != null) { segmentRefreshTime.put(segmentId, segmentRefreshInfo); return true; } if (manualSegmentRefresh.get(segmentId) != null && manualSegmentRefresh.get(segmentId)) { manualSegmentRefresh.put(segmentId, false); return true; } boolean isRefresh = segmentRefreshInfo.compare(segmentRefreshTime.get(segmentId)); if (isRefresh) { segmentRefreshTime.remove(segmentId); } return isRefresh; }
indexList = new ArrayList<>(1); segmentRefreshInfo = new SegmentRefreshInfo(carbonIndexFiles[i].getLastModifiedTime(), 0); segmentTimestampUpdaterMap.put(segId, segmentRefreshInfo); } else { if (segmentRefreshInfo.getSegmentUpdatedTimestamp() < carbonIndexFiles[i] .getLastModifiedTime()) { segmentRefreshInfo .setSegmentUpdatedTimestamp(carbonIndexFiles[i].getLastModifiedTime()); segmentRefreshInfo.setCountOfFileInSegment(indexList.size());
TableSegmentRefresher(CarbonTable table) { SegmentUpdateStatusManager statusManager = new SegmentUpdateStatusManager(table); SegmentUpdateDetails[] updateStatusDetails = statusManager.getUpdateStatusDetails(); for (SegmentUpdateDetails updateDetails : updateStatusDetails) { UpdateVO updateVO = statusManager.getInvalidTimestampRange(updateDetails.getSegmentName()); segmentRefreshTime.put(updateVO.getSegmentId(), new SegmentRefreshInfo(updateVO.getCreatedOrUpdatedTimeStamp(), 0)); } }