@Override public ActorFuture<Void> closeAppender() { appenderFuture = null; writeBufferFuture = null; appender = null; writeBuffer = null; return serviceContext.removeService(logStorageAppenderRootService(logName)); }
@Override public ActorFuture<Void> closeAsync() { return serviceContainer.removeService(logStreamRootServiceName(logName)); }
@Override public void close() { closeAsync().join(); }
private ServiceName<LogStream> addServices(final CompositeServiceBuilder installOperation) { final ServiceName<LogStorage> logStorageServiceName = logStorageServiceName(logName); final ServiceName<LogBlockIndex> logBlockIndexServiceName = logBlockIndexServiceName(logName); final ServiceName<LogBlockIndexWriter> logBlockIndexWriterServiceName = logBlockIndexWriterService(logName); final ServiceName<LogStream> logStreamServiceName = logStreamServiceName(logName); new FsLogStorageService(storageConfig, partitionId, logStorageStubber); installOperation.createService(logStorageServiceName, logStorageService).install(); final LogBlockIndexService logBlockIndexService = new LogBlockIndexService(); installOperation.createService(logBlockIndexServiceName, logBlockIndexService).install(); new LogBlockIndexWriterService(this); installOperation .createService(logBlockIndexWriterServiceName, logBlockIndexWriterService) .dependency(logStorageServiceName, logBlockIndexWriterService.getLogStorageInjector()) .dependency(logBlockIndexServiceName, logBlockIndexWriterService.getLogBlockIndexInjector()) .install(); final LogStreamService logStreamService = new LogStreamService(this); installOperation .createService(logStreamServiceName, logStreamService) .dependency(logStorageServiceName, logStreamService.getLogStorageInjector()) .dependency(logBlockIndexServiceName, logStreamService.getLogBlockIndexInjector()) .dependency( logBlockIndexWriterServiceName, logStreamService.getLogBockIndexWriterInjector()) .install();
@Override public void start() { currentStreamProcessorService = buildStreamProcessorController(); currentController = currentStreamProcessorService.getController(); }
public void close() { closeAsync().join(); }
@Override public void close() { if (currentController != null && currentController.isOpened()) { currentStreamProcessorService.close(); } currentStreamProcessorService = null; currentController = null; currentStreamProcessor.wrap(null); }
@Override public void start(ServiceStartContext ctx) { ctx.run( () -> { final int partitionId = determineInitialPartitionId(); dispatcher = dispatcherBuilder .initialPartitionId(partitionId + 1) .name(ctx.getName()) .actorScheduler(ctx.getScheduler()) .build(); }); }
@Override public void truncate(final long position) { if (position <= getCommitPosition()) { throw new IllegalArgumentException("Can't truncate position which is already committed"); } final long truncateAddress = getAddressForPosition(this, position); if (truncateAddress != INVALID_ADDRESS) { logStorage.truncate(truncateAddress); } else { throw new IllegalArgumentException( String.format("Truncation failed! Position %d was not found.", position)); } }
private ServiceName<LogStream> addServices(final CompositeServiceBuilder installOperation) { final ServiceName<LogStorage> logStorageServiceName = logStorageServiceName(logName); final ServiceName<LogBlockIndex> logBlockIndexServiceName = logBlockIndexServiceName(logName); final ServiceName<LogBlockIndexWriter> logBlockIndexWriterServiceName = logBlockIndexWriterService(logName); final ServiceName<LogStream> logStreamServiceName = logStreamServiceName(logName); new FsLogStorageService(storageConfig, partitionId, logStorageStubber); installOperation.createService(logStorageServiceName, logStorageService).install(); final LogBlockIndexService logBlockIndexService = new LogBlockIndexService(); installOperation.createService(logBlockIndexServiceName, logBlockIndexService).install(); new LogBlockIndexWriterService(this); installOperation .createService(logBlockIndexWriterServiceName, logBlockIndexWriterService) .dependency(logStorageServiceName, logBlockIndexWriterService.getLogStorageInjector()) .dependency(logBlockIndexServiceName, logBlockIndexWriterService.getLogBlockIndexInjector()) .install(); final LogStreamService logStreamService = new LogStreamService(this); installOperation .createService(logStreamServiceName, logStreamService) .dependency(logStorageServiceName, logStreamService.getLogStorageInjector()) .dependency(logBlockIndexServiceName, logStreamService.getLogBlockIndexInjector()) .dependency( logBlockIndexWriterServiceName, logStreamService.getLogBockIndexWriterInjector()) .install();
@Override public ActorFuture<Void> closeAsync() { return serviceContainer.removeService(logStreamRootServiceName(logName)); }
@Override public void start() { currentStreamProcessorService = buildStreamProcessorController(); currentController = currentStreamProcessorService.getController(); }
@Override public ActorFuture<Void> closeAppender() { appenderFuture = null; writeBufferFuture = null; appender = null; writeBuffer = null; return serviceContext.removeService(logStorageAppenderRootService(logName)); }
@Override public void close() { closeAsync().join(); }
public void close() { closeAsync().join(); }
@Override public void close() { if (currentController != null && currentController.isOpened()) { currentStreamProcessorService.close(); } currentStreamProcessorService = null; currentController = null; currentStreamProcessor.wrap(null); }
@Override public void start(ServiceStartContext ctx) { ctx.run( () -> { final int partitionId = determineInitialPartitionId(); dispatcher = dispatcherBuilder .initialPartitionId(partitionId + 1) .name(ctx.getName()) .actorScheduler(ctx.getScheduler()) .build(); }); }
@Override public void truncate(final long position) { if (position <= getCommitPosition()) { throw new IllegalArgumentException("Can't truncate position which is already committed"); } final long truncateAddress = getAddressForPosition(this, position); if (truncateAddress != INVALID_ADDRESS) { logStorage.truncate(truncateAddress); } else { throw new IllegalArgumentException( String.format("Truncation failed! Position %d was not found.", position)); } }
public ActorFuture<LogStream> build() { Objects.requireNonNull(serviceContainer, "serviceContainer"); validate(); final CompositeServiceBuilder installOperation = serviceContainer.createComposite(logStreamRootServiceName(logName)); final ServiceName<LogStream> logStreamServiceName = addServices(installOperation); return installOperation.installAndReturn(logStreamServiceName); }
public ActorFuture<LogStream> build() { Objects.requireNonNull(serviceContainer, "serviceContainer"); validate(); final CompositeServiceBuilder installOperation = serviceContainer.createComposite(logStreamRootServiceName(logName)); final ServiceName<LogStream> logStreamServiceName = addServices(installOperation); return installOperation.installAndReturn(logStreamServiceName); }