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