/** * Check if the record is a control record. * * @return true if the record is a control record, otherwise false. */ public boolean isControl() { return isControl(metadata); }
@Override public synchronized void writeRecord(LogRecord record, Promise<DLSN> transmitPromise) throws LogRecordTooLongException, WriteException { int logRecordSize = record.getPersistentSize(); if (logRecordSize > MAX_LOGRECORD_SIZE) { throw new LogRecordTooLongException( "Log Record of size " + logRecordSize + " written when only " + MAX_LOGRECORD_SIZE + " is allowed"); } try { this.writer.writeOp(record); int numRecords = 1; if (!record.isControl()) { hasUserData = true; } if (record.isRecordSet()) { numRecords = LogRecordSet.numRecords(record); } count += numRecords; writeRequests.add(new WriteRequest(numRecords, transmitPromise)); maxTxId = Math.max(maxTxId, record.getTransactionId()); } catch (IOException e) { logger.error("Failed to append record to record set of {} : ", logName, e); throw new WriteException(logName, "Failed to append record to record set of " + logName); } }
if (!skipControl || !isControl(flags)) { if (LOG.isTraceEnabled()) { LOG.trace("Found position {} beyond {}", currTxId, txId);
synchronized public Future<DLSN> asyncWrite(LogRecord record, boolean flush) { Future<DLSN> result = null; try { if (record.isControl()) {
new Object[] {fullyQualifiedLogSegment, lastTxId, record.getTransactionId()}); if (!record.isControl()) {
public static void verifyLogRecord(LogRecord record) { assertEquals(generatePayload(record.getTransactionId()).length, record.getPayload().length); assertArrayEquals(generatePayload(record.getTransactionId()), record.getPayload()); assert(!record.isControl()); verifyPayload(record.getTransactionId(), record.getPayload()); }
/** * Check if the record is a control record. * * @return true if the record is a control record, otherwise false. */ public boolean isControl() { return isControl(metadata); }
if (!skipControl || !isControl(flags)) { if (LOG.isTraceEnabled()) { LOG.trace("Found position {} beyond {}", currTxId, txId);