@Override public Future<WriteResponse> writeWithContext(final String stream, ByteBuffer data, WriteContext ctx) { return doWrite(stream, data, getChecksum(ctx), ctx.isIsRecordSet()); }
@Override public Future<WriteResponse> heartbeat(String stream, WriteContext ctx) { HeartbeatOp op = new HeartbeatOp(stream, statsLogger, perStreamStatsLogger, dlsnVersion, getChecksum(ctx), featureChecksumDisabled, accessControlManager); executeStreamOp(op); return op.result(); }
@VisibleForTesting Stream newStream(String name) { return streamFactory.create(name, getDynConf(name), streamManager); }
private Future<WriteResponse> doWrite(final String name, ByteBuffer data, Long checksum, boolean isRecordSet) { writePendingStat.inc(); receivedRecordCounter.inc(); WriteOp op = newWriteOp(name, data, checksum, isRecordSet); executeStreamOp(op); return op.result().ensure(new Function0<BoxedUnit>() { public BoxedUnit apply() { writePendingStat.dec(); return null; } }); }
@Override public void notifyFatalError() { triggerShutdown(); }
WriteOp newWriteOp(String stream, ByteBuffer data, Long checksum, boolean isRecordSet) { return new WriteOp(stream, data, statsLogger, perStreamStatsLogger, serverConfig, dlsnVersion, checksum, isRecordSet, featureChecksumDisabled, accessControlManager); }
@Override public Future<WriteResponse> write(final String stream, ByteBuffer data) { receivedRecordCounter.inc(); return doWrite(stream, data, null /* checksum */, false); }
@Override public Future<ServerInfo> handshake() { return handshakeWithClientInfo(new ClientInfo()); }
static void closeServer(Pair<DistributedLogServiceImpl, Server> pair, long gracefulShutdownPeriod, TimeUnit timeUnit) { if (null != pair.getLeft()) { pair.getLeft().shutdown(); if (gracefulShutdownPeriod > 0) { try { timeUnit.sleep(gracefulShutdownPeriod); } catch (InterruptedException e) { logger.info("Interrupted on waiting service shutting down state propagated to all clients : ", e); } } } if (null != pair.getRight()) { logger.info("Closing dl thrift server."); pair.getRight().close(); logger.info("Closed dl thrift server."); } }
DistributedLogServiceImpl dlService = new DistributedLogServiceImpl( serverConf, dlConf,
stream = getLogWriter(op.streamName()); } catch (RegionUnavailableException rue) {
@Override public Future<WriteResponse> create(String stream, WriteContext ctx) { CreateOp op = new CreateOp(stream, statsLogger, streamManager, getChecksum(ctx), featureChecksumDisabled); executeStreamOp(op); return op.result(); }
@Override public Future<WriteResponse> release(String stream, WriteContext ctx) { ReleaseOp op = new ReleaseOp(stream, statsLogger, perStreamStatsLogger, streamManager, getChecksum(ctx), featureChecksumDisabled, accessControlManager); executeStreamOp(op); return op.result(); }
@Override public Future<WriteResponse> delete(String stream, WriteContext ctx) { DeleteOp op = new DeleteOp(stream, statsLogger, perStreamStatsLogger, streamManager, getChecksum(ctx), featureChecksumDisabled, accessControlManager); executeStreamOp(op); return op.result(); }
@Override public Future<WriteResponse> truncate(String stream, String dlsn, WriteContext ctx) { TruncateOp op = new TruncateOp(stream, DLSN.deserialize(dlsn), statsLogger, perStreamStatsLogger, getChecksum(ctx), featureChecksumDisabled, accessControlManager); executeStreamOp(op); return op.result(); }
@Override public Future<WriteResponse> heartbeatWithOptions(String stream, WriteContext ctx, HeartbeatOptions options) { HeartbeatOp op = new HeartbeatOp(stream, statsLogger, perStreamStatsLogger, dlsnVersion, getChecksum(ctx), featureChecksumDisabled, accessControlManager); if (options.isSendHeartBeatToReader()) { op.setWriteControlRecord(true); } executeStreamOp(op); return op.result(); }
@Override public Future<BulkWriteResponse> writeBulkWithContext(final String stream, List<ByteBuffer> data, WriteContext ctx) { bulkWritePendingStat.inc(); receivedRecordCounter.add(data.size()); BulkWriteOp op = new BulkWriteOp(stream, data, statsLogger, perStreamStatsLogger, getChecksum(ctx), featureChecksumDisabled, accessControlManager); executeStreamOp(op); return op.result().ensure(new Function0<BoxedUnit>() { public BoxedUnit apply() { bulkWritePendingStat.dec(); return null; } }); }