/** * Get the sequence id of the record in the log. * * @return sequence id of the record in the log. */ public long getSequenceId() { return startSequenceIdOfCurrentSegment + getPositionWithinLogSegment() - 1; }
private boolean recordPositionsContainsGap(LogRecordWithDLSN record, long lastPosition) { final boolean firstLogRecord = (1 == record.getPositionWithinLogSegment()); final boolean endOfStreamRecord = record.isEndOfStream(); final boolean emptyLogSegment = (0 == lastPosition); final boolean positionIncreasedByOne = (record.getPositionWithinLogSegment() == (lastPosition + 1)); return !firstLogRecord && !endOfStreamRecord && !emptyLogSegment && !positionIncreasedByOne; }
@Override public String toString() { return "LogRecordWithDLSN{" + "dlsn=" + dlsn + ", txid=" + getTransactionId() + ", position=" + getPositionWithinLogSegment() + ", isControl=" + isControl() + ", isEndOfStream=" + isEndOfStream() + '}'; } }
public static Reader of(LogRecordWithDLSN record) throws IOException { Preconditions.checkArgument(record.isRecordSet(), "record is not a recordset"); byte[] data = record.getPayload(); DLSN dlsn = record.getDlsn(); int startPosition = record.getPositionWithinLogSegment(); long startSequenceId = record.getStartSequenceIdOfCurrentSegment(); return new EnvelopedRecordSetReader( dlsn.getLogSegmentSequenceNo(), dlsn.getEntryId(), record.getTransactionId(), dlsn.getSlotId(), startPosition, startSequenceId, new ByteArrayInputStream(data)); }
if (null != record) { currentRecord = record; readPos = record.getPositionWithinLogSegment(); return true; } else {
assertEquals(6L, record.getTransactionId()); assertEquals(i+1, record.getPositionWithinLogSegment()); assertArrayEquals(DLMTestUtil.generatePayload(i+1), record.getPayload()); assertEquals(new DLSN(1L, i, 0L), record.getDlsn()); assertEquals(1L + i, record.getTransactionId()); assertEquals(i + 1, record.getPositionWithinLogSegment()); assertArrayEquals(DLMTestUtil.generatePayload(i+1), record.getPayload()); } else if (i >= 6L) { assertEquals(new DLSN(1L, 6L + i - 6, 0L), record.getDlsn()); assertEquals(11L + i - 6, record.getTransactionId()); assertEquals(11 + i - 6, record.getPositionWithinLogSegment()); assertArrayEquals(DLMTestUtil.generatePayload(11L + i - 6), record.getPayload()); } else { assertEquals(new DLSN(1L, 5L, 0), record.getDlsn()); assertEquals(6L, record.getTransactionId()); assertEquals(6, record.getPositionWithinLogSegment()); assertTrue(record.isRecordSet()); assertEquals(5, LogRecordSet.numRecords(record));
/** * Get the sequence id of the record in the log. * * @return sequence id of the record in the log. */ public long getSequenceId() { return startSequenceIdOfCurrentSegment + getPositionWithinLogSegment() - 1; }
@Override public String toString() { return "LogRecordWithDLSN{" + "dlsn=" + dlsn + ", txid=" + getTransactionId() + ", position=" + getPositionWithinLogSegment() + ", isControl=" + isControl() + ", isEndOfStream=" + isEndOfStream() + '}'; } }
public static Reader of(LogRecordWithDLSN record) throws IOException { Preconditions.checkArgument(record.isRecordSet(), "record is not a recordset"); byte[] data = record.getPayload(); DLSN dlsn = record.getDlsn(); int startPosition = record.getPositionWithinLogSegment(); long startSequenceId = record.getStartSequenceIdOfCurrentSegment(); return new EnvelopedRecordSetReader( dlsn.getLogSegmentSequenceNo(), dlsn.getEntryId(), record.getTransactionId(), dlsn.getSlotId(), startPosition, startSequenceId, new ByteArrayInputStream(data)); }