openSegment.truncate(index); Preconditions.assertTrue(!openSegment.isOpen()); SegmentFileInfo info = new SegmentFileInfo(openSegment.getStartIndex(), oldEnd, true, openSegment.getTotalSize(), openSegment.getEndIndex()); final long endOfS = i == segmentIndex ? oldEnd : s.getEndIndex(); s.clear(); list.add(new SegmentFileInfo(s.getStartIndex(), endOfS, false, 0, s.getEndIndex())); new SegmentFileInfo(ts.getStartIndex(), oldEnd, false, ts.getTotalSize(), ts.getEndIndex()); return new TruncationSegments(t, list);
openSegment.truncate(index); Preconditions.assertTrue(!openSegment.isOpen()); final SegmentFileInfo info = new SegmentFileInfo(openSegment.getStartIndex(), oldEnd, true, openSegment.getTotalSize(), openSegment.getEndIndex()); segments.add(openSegment); final long endOfS = i == segmentIndex? oldEnd: s.getEndIndex(); s.clear(); list.add(new SegmentFileInfo(s.getStartIndex(), endOfS, false, 0, s.getEndIndex())); new SegmentFileInfo(ts.getStartIndex(), oldEnd, false, ts.getTotalSize(), ts.getEndIndex()); return new TruncationSegments(t, list);
private SegmentFileInfo deleteOpenSegment() { final long oldEnd = openSegment.getEndIndex(); openSegment.clear(); SegmentFileInfo info = new SegmentFileInfo(openSegment.getStartIndex(), oldEnd, true, 0, openSegment.getEndIndex()); clearOpenSegment(); return info; }
static SegmentFileInfo deleteOpenSegment(LogSegment openSegment, Runnable clearOpenSegment) { final long oldEnd = openSegment.getEndIndex(); openSegment.clear(); final SegmentFileInfo info = new SegmentFileInfo(openSegment.getStartIndex(), oldEnd, true, 0, openSegment.getEndIndex()); clearOpenSegment.run(); return info; } }