You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@druid.apache.org by kf...@apache.org on 2023/02/22 07:58:12 UTC
[druid] branch master updated: Add method SegmentTimeline.addSegments (#13831)
This is an automated email from the ASF dual-hosted git repository.
kfaraz pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/druid.git
The following commit(s) were added to refs/heads/master by this push:
new 3a67a43c8a Add method SegmentTimeline.addSegments (#13831)
3a67a43c8a is described below
commit 3a67a43c8ae5f740d7fd4c312310c6e58d1e369d
Author: Kashif Faraz <ka...@gmail.com>
AuthorDate: Tue Feb 21 23:58:01 2023 -0800
Add method SegmentTimeline.addSegments (#13831)
---
.../org/apache/druid/timeline/SegmentTimeline.java | 18 +++++++++++++++++-
.../druid/timeline/VersionedIntervalTimeline.java | 16 ----------------
.../druid/metadata/SqlSegmentsMetadataManager.java | 5 ++---
.../duty/MarkAsUnusedOvershadowedSegments.java | 3 +--
.../realtime/appenderator/TestUsedSegmentChecker.java | 7 +++----
5 files changed, 23 insertions(+), 26 deletions(-)
diff --git a/processing/src/main/java/org/apache/druid/timeline/SegmentTimeline.java b/processing/src/main/java/org/apache/druid/timeline/SegmentTimeline.java
index e9c737b0a9..83c345eacf 100644
--- a/processing/src/main/java/org/apache/druid/timeline/SegmentTimeline.java
+++ b/processing/src/main/java/org/apache/druid/timeline/SegmentTimeline.java
@@ -19,6 +19,8 @@
package org.apache.druid.timeline;
+import com.google.common.collect.Iterators;
+
import java.util.Comparator;
import java.util.Iterator;
@@ -35,7 +37,7 @@ public class SegmentTimeline extends VersionedIntervalTimeline<String, DataSegme
public static SegmentTimeline forSegments(Iterator<DataSegment> segments)
{
final SegmentTimeline timeline = new SegmentTimeline();
- VersionedIntervalTimeline.addSegments(timeline, segments);
+ timeline.addSegments(segments);
return timeline;
}
@@ -44,6 +46,20 @@ public class SegmentTimeline extends VersionedIntervalTimeline<String, DataSegme
super(Comparator.naturalOrder());
}
+ public void addSegments(Iterator<DataSegment> segments)
+ {
+ addAll(
+ Iterators.transform(
+ segments,
+ segment -> new PartitionChunkEntry<>(
+ segment.getInterval(),
+ segment.getVersion(),
+ segment.getShardSpec().createChunk(segment)
+ )
+ )
+ );
+ }
+
public boolean isOvershadowed(DataSegment segment)
{
return isOvershadowed(segment.getInterval(), segment.getVersion(), segment);
diff --git a/processing/src/main/java/org/apache/druid/timeline/VersionedIntervalTimeline.java b/processing/src/main/java/org/apache/druid/timeline/VersionedIntervalTimeline.java
index 131d447824..dc7c2520c3 100644
--- a/processing/src/main/java/org/apache/druid/timeline/VersionedIntervalTimeline.java
+++ b/processing/src/main/java/org/apache/druid/timeline/VersionedIntervalTimeline.java
@@ -106,22 +106,6 @@ public class VersionedIntervalTimeline<VersionType, ObjectType extends Overshado
this.skipObjectsWithNoData = skipObjectsWithNoData;
}
- public static void addSegments(
- VersionedIntervalTimeline<String, DataSegment> timeline,
- Iterator<DataSegment> segments
- )
- {
- timeline.addAll(
- Iterators.transform(
- segments,
- segment -> new PartitionChunkEntry<>(
- segment.getInterval(),
- segment.getVersion(),
- segment.getShardSpec().createChunk(segment)
- )
- ));
- }
-
public static <VersionType, ObjectType extends Overshadowable<ObjectType>> Iterable<ObjectType> getAllObjects(
final List<TimelineObjectHolder<VersionType, ObjectType>> holders
)
diff --git a/server/src/main/java/org/apache/druid/metadata/SqlSegmentsMetadataManager.java b/server/src/main/java/org/apache/druid/metadata/SqlSegmentsMetadataManager.java
index c74ec4e5d8..7ef396174e 100644
--- a/server/src/main/java/org/apache/druid/metadata/SqlSegmentsMetadataManager.java
+++ b/server/src/main/java/org/apache/druid/metadata/SqlSegmentsMetadataManager.java
@@ -50,7 +50,6 @@ import org.apache.druid.timeline.DataSegment;
import org.apache.druid.timeline.Partitions;
import org.apache.druid.timeline.SegmentId;
import org.apache.druid.timeline.SegmentTimeline;
-import org.apache.druid.timeline.VersionedIntervalTimeline;
import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
import org.joda.time.DateTime;
import org.joda.time.Duration;
@@ -572,14 +571,14 @@ public class SqlSegmentsMetadataManager implements SegmentsMetadataManager
try (final CloseableIterator<DataSegment> iterator =
queryTool.retrieveUsedSegments(dataSourceName, intervals)) {
- VersionedIntervalTimeline.addSegments(timeline, iterator);
+ timeline.addSegments(iterator);
}
try (final CloseableIterator<DataSegment> iterator =
queryTool.retrieveUnusedSegments(dataSourceName, intervals)) {
while (iterator.hasNext()) {
final DataSegment dataSegment = iterator.next();
- VersionedIntervalTimeline.addSegments(timeline, Iterators.singletonIterator(dataSegment));
+ timeline.addSegments(Iterators.singletonIterator(dataSegment));
unusedSegments.add(dataSegment);
}
}
diff --git a/server/src/main/java/org/apache/druid/server/coordinator/duty/MarkAsUnusedOvershadowedSegments.java b/server/src/main/java/org/apache/druid/server/coordinator/duty/MarkAsUnusedOvershadowedSegments.java
index 1c348e5597..1e700248a2 100644
--- a/server/src/main/java/org/apache/druid/server/coordinator/duty/MarkAsUnusedOvershadowedSegments.java
+++ b/server/src/main/java/org/apache/druid/server/coordinator/duty/MarkAsUnusedOvershadowedSegments.java
@@ -30,7 +30,6 @@ import org.apache.druid.server.coordinator.ServerHolder;
import org.apache.druid.timeline.DataSegment;
import org.apache.druid.timeline.SegmentId;
import org.apache.druid.timeline.SegmentTimeline;
-import org.apache.druid.timeline.VersionedIntervalTimeline;
import java.util.HashMap;
import java.util.HashSet;
@@ -107,7 +106,7 @@ public class MarkAsUnusedOvershadowedSegments implements CoordinatorDuty
for (ImmutableDruidDataSource dataSource : server.getDataSources()) {
SegmentTimeline timeline = timelines
.computeIfAbsent(dataSource.getName(), dsName -> new SegmentTimeline());
- VersionedIntervalTimeline.addSegments(timeline, dataSource.getSegments().iterator());
+ timeline.addSegments(dataSource.getSegments().iterator());
}
}
}
diff --git a/server/src/test/java/org/apache/druid/segment/realtime/appenderator/TestUsedSegmentChecker.java b/server/src/test/java/org/apache/druid/segment/realtime/appenderator/TestUsedSegmentChecker.java
index 2c7fd562a5..1512704ec0 100644
--- a/server/src/test/java/org/apache/druid/segment/realtime/appenderator/TestUsedSegmentChecker.java
+++ b/server/src/test/java/org/apache/druid/segment/realtime/appenderator/TestUsedSegmentChecker.java
@@ -19,10 +19,9 @@
package org.apache.druid.segment.realtime.appenderator;
-import com.google.common.collect.Ordering;
import org.apache.druid.timeline.DataSegment;
+import org.apache.druid.timeline.SegmentTimeline;
import org.apache.druid.timeline.TimelineObjectHolder;
-import org.apache.druid.timeline.VersionedIntervalTimeline;
import org.apache.druid.timeline.partition.PartitionChunk;
import java.util.HashSet;
@@ -41,8 +40,8 @@ public class TestUsedSegmentChecker implements UsedSegmentChecker
@Override
public Set<DataSegment> findUsedSegments(Set<SegmentIdWithShardSpec> identifiers)
{
- final VersionedIntervalTimeline<String, DataSegment> timeline = new VersionedIntervalTimeline<>(Ordering.natural());
- VersionedIntervalTimeline.addSegments(timeline, pushedSegments.iterator());
+ final SegmentTimeline timeline = new SegmentTimeline();
+ timeline.addSegments(pushedSegments.iterator());
final Set<DataSegment> retVal = new HashSet<>();
for (SegmentIdWithShardSpec identifier : identifiers) {
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@druid.apache.org
For additional commands, e-mail: commits-help@druid.apache.org