public HttpPostEmitter(HttpEmitterConfig config, AsyncHttpClient client, ObjectMapper jsonMapper) final int batchOverhead = batchingStrategy.batchStartLength() + batchingStrategy.batchEndLength(); Preconditions.checkArgument( config.getMaxBatchSize() >= MAX_EVENT_SIZE + batchOverhead, this.config = config; this.bufferSize = config.getMaxBatchSize(); this.maxBufferWatermark = bufferSize - batchingStrategy.batchEndLength(); this.largeEventThreshold = (bufferSize - batchOverhead - batchingStrategy.separatorLength()) / 2; this.client = client; this.jsonMapper = jsonMapper;
private void emitLargeEvent(byte[] eventBytes) { byte[] buffer = acquireBuffer(); int bufferOffset = batchingStrategy.writeBatchStart(buffer); System.arraycopy(eventBytes, 0, buffer, bufferOffset, eventBytes.length); bufferOffset += eventBytes.length; bufferOffset = batchingStrategy.writeBatchEnd(buffer, bufferOffset); if (sendWithRetries(buffer, bufferOffset, 1, true)) { buffersToReuse.add(buffer); approximateBuffersToReuseCount.incrementAndGet(); } else { limitFailedBuffersSize(); failedBuffers.addLast(new FailedBuffer(buffer, bufferOffset, 1)); approximateFailedBuffersCount.incrementAndGet(); } }
private boolean tryAddNonFirstEvent(long state, byte[] event) { int bufferOffset = tryReserveEventSizeAndLock(state, emitter.batchingStrategy.separatorLength() + event.length); if (bufferOffset < 0) { return false; } try { bufferOffset = emitter.batchingStrategy.writeMessageSeparator(buffer, bufferOffset); writeEvent(event, bufferOffset); return true; } finally { unlockAndSealIfNeeded(); } }
private int newBufferWatermark(int bufferWatermark, byte[] eventBytes) { return bufferWatermark + emitter.batchingStrategy.separatorLength() + eventBytes.length; }
private boolean tryReserveFirstEventSizeAndLock(byte[] event) { return compareAndSetState(0, emitter.batchingStrategy.batchStartLength() + event.length + PARTY); }
private boolean tryAddFirstEvent(byte[] event) { if (!tryReserveFirstEventSizeAndLock(event)) { return false; } try { int bufferOffset = emitter.batchingStrategy.writeBatchStart(buffer); writeEvent(event, bufferOffset); eventCount.incrementAndGet(); firstEventTimestamp = System.currentTimeMillis(); return true; } finally { unlock(); } }
bufferWatermark ); int bufferEndOffset = batchingStrategy.writeBatchEnd(batch.buffer, bufferWatermark);
private int newBufferWatermark(int bufferWatermark, byte[] eventBytes) { return bufferWatermark + emitter.batchingStrategy.separatorLength() + eventBytes.length; }
private boolean tryReserveFirstEventSizeAndLock(byte[] event) { return compareAndSetState(0, emitter.batchingStrategy.batchStartLength() + event.length + PARTY); }
private boolean tryAddFirstEvent(byte[] event) { if (!tryReserveFirstEventSizeAndLock(event)) { return false; } try { int bufferOffset = emitter.batchingStrategy.writeBatchStart(buffer); writeEvent(event, bufferOffset); eventCount.incrementAndGet(); firstEventTimestamp = System.currentTimeMillis(); return true; } finally { unlock(); } }
bufferWatermark ); int bufferEndOffset = batchingStrategy.writeBatchEnd(batch.buffer, bufferWatermark);
public HttpPostEmitter(HttpEmitterConfig config, AsyncHttpClient client, ObjectMapper jsonMapper) final int batchOverhead = batchingStrategy.batchStartLength() + batchingStrategy.batchEndLength(); Preconditions.checkArgument( config.getMaxBatchSize() >= MAX_EVENT_SIZE + batchOverhead, this.config = config; this.bufferSize = config.getMaxBatchSize(); this.maxBufferWatermark = bufferSize - batchingStrategy.batchEndLength(); this.largeEventThreshold = (bufferSize - batchOverhead - batchingStrategy.separatorLength()) / 2; this.client = client; this.jsonMapper = jsonMapper;
private void emitLargeEvent(byte[] eventBytes) { byte[] buffer = acquireBuffer(); int bufferOffset = batchingStrategy.writeBatchStart(buffer); System.arraycopy(eventBytes, 0, buffer, bufferOffset, eventBytes.length); bufferOffset += eventBytes.length; bufferOffset = batchingStrategy.writeBatchEnd(buffer, bufferOffset); if (sendWithRetries(buffer, bufferOffset, 1, true)) { buffersToReuse.add(buffer); approximateBuffersToReuseCount.incrementAndGet(); } else { limitFailedBuffersSize(); failedBuffers.addLast(new FailedBuffer(buffer, bufferOffset, 1)); approximateFailedBuffersCount.incrementAndGet(); } }
private boolean tryAddNonFirstEvent(long state, byte[] event) { int bufferOffset = tryReserveEventSizeAndLock(state, emitter.batchingStrategy.separatorLength() + event.length); if (bufferOffset < 0) { return false; } try { bufferOffset = emitter.batchingStrategy.writeMessageSeparator(buffer, bufferOffset); writeEvent(event, bufferOffset); return true; } finally { unlockAndSealIfNeeded(); } }