This is an automated email from the ASF dual-hosted git repository. fjy pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/incubator-druid.git
The following commit(s) were added to refs/heads/master by this push: new daf20b4 use memoized supplier for lazy singleton in SeekableStreamIndexTask.java (#7740) daf20b4 is described below commit daf20b4b864bd6618150d6a7b2185b5677e8c406 Author: Himanshu <g.himan...@gmail.com> AuthorDate: Thu May 23 15:58:38 2019 -0700 use memoized supplier for lazy singleton in SeekableStreamIndexTask.java (#7740) --- .../indexing/seekablestream/SeekableStreamIndexTask.java | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/indexing-service/src/main/java/org/apache/druid/indexing/seekablestream/SeekableStreamIndexTask.java b/indexing-service/src/main/java/org/apache/druid/indexing/seekablestream/SeekableStreamIndexTask.java index 37d472b..11ed7d4 100644 --- a/indexing-service/src/main/java/org/apache/druid/indexing/seekablestream/SeekableStreamIndexTask.java +++ b/indexing-service/src/main/java/org/apache/druid/indexing/seekablestream/SeekableStreamIndexTask.java @@ -24,6 +24,8 @@ import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Joiner; import com.google.common.base.Optional; import com.google.common.base.Preconditions; +import com.google.common.base.Supplier; +import com.google.common.base.Suppliers; import org.apache.druid.data.input.InputRow; import org.apache.druid.indexer.TaskStatus; import org.apache.druid.indexing.appenderator.ActionBasedSegmentAllocator; @@ -77,8 +79,7 @@ public abstract class SeekableStreamIndexTask<PartitionIdType, SequenceOffsetTyp // Lazily initialized, to avoid calling it on the overlord when tasks are instantiated. // See https://github.com/apache/incubator-druid/issues/7724 for issues that can cause. // By the way, lazily init is synchronized because the runner may be needed in multiple threads. - private final Object runnerInitLock = new Object(); - private volatile SeekableStreamIndexTaskRunner<PartitionIdType, SequenceOffsetType> runner; + private final Supplier<SeekableStreamIndexTaskRunner<PartitionIdType, SequenceOffsetType>> runnerSupplier; public SeekableStreamIndexTask( final String id, @@ -112,6 +113,7 @@ public abstract class SeekableStreamIndexTask<PartitionIdType, SequenceOffsetTyp this.context = context; this.authorizerMapper = authorizerMapper; this.rowIngestionMetersFactory = rowIngestionMetersFactory; + this.runnerSupplier = Suppliers.memoize(this::createTaskRunner); } private static String makeTaskId(String dataSource, String type) @@ -288,14 +290,6 @@ public abstract class SeekableStreamIndexTask<PartitionIdType, SequenceOffsetTyp @VisibleForTesting public SeekableStreamIndexTaskRunner<PartitionIdType, SequenceOffsetType> getRunner() { - if (runner == null) { - synchronized (runnerInitLock) { - if (runner == null) { - runner = createTaskRunner(); - } - } - } - - return runner; + return runnerSupplier.get(); } } --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@druid.apache.org For additional commands, e-mail: commits-h...@druid.apache.org