@Override public void onFailure(Throwable cause) { recordSetWriter.abortTransmit(cause); System.out.println("Encountered error on writing data"); cause.printStackTrace(System.err); Runtime.getRuntime().exit(0); }
verify(client, times(0)).writeRecordSet((String) any(), (LogRecordSetBuffer) any()); LogRecordSet.Writer recordSetWriter1 = writer.getLogRecordSetWriter(); assertEquals(1, recordSetWriter1.getNumRecords()); assertEquals(LogRecordSet.HEADER_LEN + 4 + data.length, recordSetWriter1.getNumBytes()); verify(client, times(1)).writeRecordSet((String) any(), (LogRecordSetBuffer) any()); LogRecordSet.Writer recordSetWriter2 = writer.getLogRecordSetWriter(); assertEquals(1, recordSetWriter2.getNumRecords()); assertEquals(LogRecordSet.HEADER_LEN + 4 + data.length, recordSetWriter2.getNumBytes()); assertTrue(recordSetWriter1 != recordSetWriter2);
recordSetWriter.writeRecord(msgBuf, writeFuture); writeFutures.add(writeFuture);
public synchronized Future<DLSN> write(ByteBuffer buffer) { int logRecordSize = buffer.remaining(); if (logRecordSize > MAX_LOGRECORD_SIZE) { return Future.exception(new LogRecordTooLongException( "Log record of size " + logRecordSize + " written when only " + MAX_LOGRECORD_SIZE + " is allowed")); } // if exceed max number of bytes if ((recordSetWriter.getNumBytes() + logRecordSize) > MAX_LOGRECORDSET_SIZE) { flush(); } Promise<DLSN> writePromise = new Promise<DLSN>(); try { recordSetWriter.writeRecord(buffer, writePromise); } catch (LogRecordTooLongException e) { return Future.exception(e); } catch (WriteException e) { recordSetWriter.abortTransmit(e); recordSetWriter = newRecordSetWriter(); return Future.exception(e); } if (recordSetWriter.getNumBytes() >= bufferSize) { flush(); } return writePromise; }
private void flush() { LogRecordSet.Writer recordSetToFlush; synchronized (this) { if (recordSetWriter.getNumRecords() == 0) { return; } recordSetToFlush = recordSetWriter; recordSetWriter = newRecordSetWriter(); } transmit(recordSetToFlush); }
LogRecord record = DLMTestUtil.getLogRecordInstance(6L + i); Promise<DLSN> writePromise = new Promise<DLSN>(); recordSetWriter.writeRecord(ByteBuffer.wrap(record.getPayload()), writePromise); recordSetFutures.add(writePromise); final ByteBuffer recordSetBuffer = recordSetWriter.getBuffer(); byte[] data = new byte[recordSetBuffer.remaining()]; recordSetBuffer.get(data);
ByteBuffer record = ByteBuffer.wrap(("record-" + (i + 5)).getBytes(UTF_8)); Promise<DLSN> writePromise = new Promise<DLSN>(); recordSetWriter.writeRecord(record, writePromise); recordSetPromiseList.add(writePromise); assertEquals((i + 1) + " records", (i + 1), recordSetWriter.getNumRecords()); final ByteBuffer recordSetBuffer = recordSetWriter.getBuffer(); byte[] data = new byte[recordSetBuffer.remaining()]; recordSetBuffer.get(data);
public synchronized Future<DLSN> write(ByteBuffer buffer) { int logRecordSize = buffer.remaining(); if (logRecordSize > MAX_LOGRECORD_SIZE) { return Future.exception(new LogRecordTooLongException( "Log record of size " + logRecordSize + " written when only " + MAX_LOGRECORD_SIZE + " is allowed")); } // if exceed max number of bytes if ((recordSetWriter.getNumBytes() + logRecordSize) > MAX_LOGRECORDSET_SIZE) { flush(); } Promise<DLSN> writePromise = new Promise<DLSN>(); try { recordSetWriter.writeRecord(buffer, writePromise); } catch (LogRecordTooLongException e) { return Future.exception(e); } catch (WriteException e) { recordSetWriter.abortTransmit(e); recordSetWriter = newRecordSetWriter(); return Future.exception(e); } if (recordSetWriter.getNumBytes() >= bufferSize) { flush(); } return writePromise; }
@Override public void onFailure(Throwable cause) { recordSetWriter.abortTransmit(cause); } });
@Override public void onSuccess(DLSN dlsn) { recordSetWriter.completeTransmit( dlsn.getLogSegmentSequenceNo(), dlsn.getEntryId(), dlsn.getSlotId()); }
@Override public void onSuccess(DLSN dlsn) { recordSetWriter.completeTransmit( dlsn.getLogSegmentSequenceNo(), dlsn.getEntryId(), dlsn.getSlotId()); }
@Override public void onSuccess(DLSN dlsn) { recordSetWriter.completeTransmit( dlsn.getLogSegmentSequenceNo(), dlsn.getEntryId(), dlsn.getSlotId()); } })
@Override public void onFailure(Throwable cause) { recordSetWriter.abortTransmit(cause); } });
private void flush() { LogRecordSet.Writer recordSetToFlush; synchronized (this) { if (recordSetWriter.getNumRecords() == 0) { return; } recordSetToFlush = recordSetWriter; recordSetWriter = newRecordSetWriter(); } transmit(recordSetToFlush); }