Hi Jodan,
The global index only tracks the entries being committed on all servers , when we tried to compact tombstone entry , how do we know all the previous
related entries had being released , another case ,if the tombstone entry is released ,while the previous related entries is not , will the tombstone be removed in the compact process?
another question?
for (Long segmentId : segments.keySet()) {
Segment segment = segments.get(segmentId);
Map.Entry<Long, Segment> previousEntry = segments.floorEntry(segmentId - 1);
if (previousEntry != null) {
Segment previousSegment = previousEntry.getValue();
if (previousSegment.index() + previousSegment.length() - 1 < segment.index()) {
previousSegment.skip(segment.index() - (previousSegment.index() + previousSegment.length()));
}
}
}
why do you skip "the segment.index() - (previousSegment.index() + previousSegment.length()" ?