@Override public int compare(LogSegmentMetadata o1, LogSegmentMetadata o2) { if (o1.isInProgress() && o2.isInProgress()) { return compareByCompletionTime(o1.getFirstTxId(), o2.getFirstTxId()); } else if (!o1.isInProgress() && !o2.isInProgress()) { return compareByCompletionTime(o1.getCompletionTime(), o2.getCompletionTime()); } else if (o1.isInProgress() && !o2.isInProgress()) { return compareByCompletionTime(o1.getFirstTxId(), o2.getCompletionTime()); } else { return compareByCompletionTime(o1.getCompletionTime(), o2.getFirstTxId()); } } };
logSegmentCache.add(name, metadata); if (!metadata.isInProgress() && (lastLedgerRollingTimeMillis < metadata.getCompletionTime())) { lastLedgerRollingTimeMillis = metadata.getCompletionTime(); long elapsedMillis = ts - metadata.getCompletionTime(); long elapsedMicroSec = TimeUnit.MILLISECONDS.toMicros(elapsedMillis); if (elapsedMicroSec > 0) {
Mutator(LogSegmentMetadata original) { super(original.getZkPath(), original.getVersion(), original.getLedgerId(), original.getFirstTxId()); this.inprogress = original.isInProgress(); this.logSegmentSequenceNo = original.getLogSegmentSequenceNumber(); this.lastEntryId = original.getLastEntryId(); this.lastSlotId = original.getLastSlotId(); this.lastTxId = original.getLastTxId(); this.completionTime = original.getCompletionTime(); this.recordCount = original.getRecordCount(); this.regionId = original.getRegionId(); this.status = original.getStatus(); this.minActiveEntryId = original.getMinActiveDLSN().getEntryId(); this.minActiveSlotId = original.getMinActiveDLSN().getSlotId(); this.startSequenceId = original.getStartSequenceId(); this.envelopeEntries = original.getEnvelopeEntries(); }
lastSlotId, startSequenceId); setLastLedgerRollingTimeMillis(completedLogSegment.getCompletionTime());
assertTrue(readCompletedLogSegment.isRecordLastPositioninThisSegment(goodRecord1)); assertEquals(updatedCompletedLogSegment, readCompletedLogSegment); assertEquals(completedLogSegment.getCompletionTime(), readCompletedLogSegment.getCompletionTime()); assertEquals(completedLogSegment.getFirstTxId(), readCompletedLogSegment.getFirstTxId()); assertEquals(completedLogSegment.getLedgerId(), readCompletedLogSegment.getLedgerId());