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 b5b900b6a0e Do minor cleanup of AutoCompactionSnapshot.Builder (#16523)
b5b900b6a0e is described below

commit b5b900b6a0e0dabfad7abb6cb49681bcdbfadfdc
Author: Kashif Faraz <kashif.fa...@gmail.com>
AuthorDate: Fri May 31 16:06:53 2024 +0530

    Do minor cleanup of AutoCompactionSnapshot.Builder (#16523)
    
    Changes:
    - Use `final` modifier for immutable
    - Use builder methods for chaining
    - Shorter lambda syntax
---
 .../server/coordinator/AutoCompactionSnapshot.java | 48 +++++++++++---------
 .../server/coordinator/duty/CompactSegments.java   | 51 ++++++++++------------
 .../coordinator/AutoCompactionSnapshotTest.java    | 25 +++++------
 3 files changed, 61 insertions(+), 63 deletions(-)

diff --git 
a/server/src/main/java/org/apache/druid/server/coordinator/AutoCompactionSnapshot.java
 
b/server/src/main/java/org/apache/druid/server/coordinator/AutoCompactionSnapshot.java
index e39fde96560..fe46eabb426 100644
--- 
a/server/src/main/java/org/apache/druid/server/coordinator/AutoCompactionSnapshot.java
+++ 
b/server/src/main/java/org/apache/druid/server/coordinator/AutoCompactionSnapshot.java
@@ -35,27 +35,32 @@ public class AutoCompactionSnapshot
   }
 
   @JsonProperty
-  private String dataSource;
+  private final String dataSource;
   @JsonProperty
-  private AutoCompactionScheduleStatus scheduleStatus;
+  private final AutoCompactionScheduleStatus scheduleStatus;
   @JsonProperty
-  private long bytesAwaitingCompaction;
+  private final long bytesAwaitingCompaction;
   @JsonProperty
-  private long bytesCompacted;
+  private final long bytesCompacted;
   @JsonProperty
-  private long bytesSkipped;
+  private final long bytesSkipped;
   @JsonProperty
-  private long segmentCountAwaitingCompaction;
+  private final long segmentCountAwaitingCompaction;
   @JsonProperty
-  private long segmentCountCompacted;
+  private final long segmentCountCompacted;
   @JsonProperty
-  private long segmentCountSkipped;
+  private final long segmentCountSkipped;
   @JsonProperty
-  private long intervalCountAwaitingCompaction;
+  private final long intervalCountAwaitingCompaction;
   @JsonProperty
-  private long intervalCountCompacted;
+  private final long intervalCountCompacted;
   @JsonProperty
-  private long intervalCountSkipped;
+  private final long intervalCountSkipped;
+
+  public static Builder builder(String dataSource)
+  {
+    return new Builder(dataSource, AutoCompactionScheduleStatus.RUNNING);
+  }
 
   @JsonCreator
   public AutoCompactionSnapshot(
@@ -185,8 +190,9 @@ public class AutoCompactionSnapshot
 
   public static class Builder
   {
-    private String dataSource;
-    private AutoCompactionScheduleStatus scheduleStatus;
+    private final String dataSource;
+    private final AutoCompactionScheduleStatus scheduleStatus;
+
     private long bytesAwaitingCompaction;
     private long bytesCompacted;
     private long bytesSkipped;
@@ -197,12 +203,18 @@ public class AutoCompactionSnapshot
     private long intervalCountCompacted;
     private long intervalCountSkipped;
 
-
-    public Builder(
+    private Builder(
         @NotNull String dataSource,
         @NotNull AutoCompactionScheduleStatus scheduleStatus
     )
     {
+      if (dataSource == null || dataSource.isEmpty()) {
+        throw new ISE("Invalid dataSource name");
+      }
+      if (scheduleStatus == null) {
+        throw new ISE("scheduleStatus cannot be null");
+      }
+
       this.dataSource = dataSource;
       this.scheduleStatus = scheduleStatus;
       this.bytesAwaitingCompaction = 0;
@@ -272,12 +284,6 @@ public class AutoCompactionSnapshot
 
     public AutoCompactionSnapshot build()
     {
-      if (dataSource == null || dataSource.isEmpty()) {
-        throw new ISE("Invalid dataSource name");
-      }
-      if (scheduleStatus == null) {
-        throw new ISE("scheduleStatus cannot be null");
-      }
       return new AutoCompactionSnapshot(
           dataSource,
           scheduleStatus,
diff --git 
a/server/src/main/java/org/apache/druid/server/coordinator/duty/CompactSegments.java
 
b/server/src/main/java/org/apache/druid/server/coordinator/duty/CompactSegments.java
index bb88b86dbf8..27f6d17638d 100644
--- 
a/server/src/main/java/org/apache/druid/server/coordinator/duty/CompactSegments.java
+++ 
b/server/src/main/java/org/apache/druid/server/coordinator/duty/CompactSegments.java
@@ -376,17 +376,16 @@ public class CompactSegments implements 
CoordinatorCustomDuty
       // As these segments will be compacted, we will aggregate the statistic 
to the Compacted statistics
       AutoCompactionSnapshot.Builder snapshotBuilder = 
currentRunAutoCompactionSnapshotBuilders.computeIfAbsent(
           dataSourceName,
-          k -> new AutoCompactionSnapshot.Builder(k, 
AutoCompactionSnapshot.AutoCompactionScheduleStatus.RUNNING)
+          AutoCompactionSnapshot::builder
       );
-      snapshotBuilder.incrementBytesCompacted(
-          segmentsToCompact.stream().mapToLong(DataSegment::getSize).sum()
-      );
-      snapshotBuilder.incrementIntervalCountCompacted(
-          segmentsToCompact.stream()
-                           .map(DataSegment::getInterval)
-                           .distinct().count()
-      );
-      snapshotBuilder.incrementSegmentCountCompacted(segmentsToCompact.size());
+      snapshotBuilder
+          .incrementBytesCompacted(
+              segmentsToCompact.stream().mapToLong(DataSegment::getSize).sum()
+          )
+          .incrementIntervalCountCompacted(
+              
segmentsToCompact.stream().map(DataSegment::getInterval).distinct().count()
+          )
+          .incrementSegmentCountCompacted(segmentsToCompact.size());
 
       final DataSourceCompactionConfig config = 
compactionConfigs.get(dataSourceName);
 
@@ -519,20 +518,16 @@ public class CompactSegments implements 
CoordinatorCustomDuty
         final String dataSourceName = segmentsToCompact.get(0).getDataSource();
         AutoCompactionSnapshot.Builder snapshotBuilder = 
currentRunAutoCompactionSnapshotBuilders.computeIfAbsent(
             dataSourceName,
-            k -> new AutoCompactionSnapshot.Builder(k, 
AutoCompactionSnapshot.AutoCompactionScheduleStatus.RUNNING)
-        );
-        snapshotBuilder.incrementBytesAwaitingCompaction(
-            segmentsToCompact.stream()
-                             .mapToLong(DataSegment::getSize)
-                             .sum()
-        );
-        snapshotBuilder.incrementIntervalCountAwaitingCompaction(
-            segmentsToCompact.stream()
-                             .map(DataSegment::getInterval)
-                             .distinct()
-                             .count()
+            AutoCompactionSnapshot::builder
         );
-        
snapshotBuilder.incrementSegmentCountAwaitingCompaction(segmentsToCompact.size());
+        snapshotBuilder
+            .incrementBytesAwaitingCompaction(
+                
segmentsToCompact.stream().mapToLong(DataSegment::getSize).sum()
+            )
+            .incrementIntervalCountAwaitingCompaction(
+                
segmentsToCompact.stream().map(DataSegment::getInterval).distinct().count()
+            )
+            .incrementSegmentCountAwaitingCompaction(segmentsToCompact.size());
       }
     }
 
@@ -543,7 +538,7 @@ public class CompactSegments implements 
CoordinatorCustomDuty
       final CompactionStatistics dataSourceCompactedStatistics = 
compactionStatisticsEntry.getValue();
       AutoCompactionSnapshot.Builder builder = 
currentRunAutoCompactionSnapshotBuilders.computeIfAbsent(
           dataSource,
-          k -> new AutoCompactionSnapshot.Builder(k, 
AutoCompactionSnapshot.AutoCompactionScheduleStatus.RUNNING)
+          AutoCompactionSnapshot::builder
       );
       
builder.incrementBytesCompacted(dataSourceCompactedStatistics.getTotalBytes());
       
builder.incrementSegmentCountCompacted(dataSourceCompactedStatistics.getNumSegments());
@@ -557,11 +552,11 @@ public class CompactSegments implements 
CoordinatorCustomDuty
       final CompactionStatistics dataSourceSkippedStatistics = 
compactionStatisticsEntry.getValue();
       AutoCompactionSnapshot.Builder builder = 
currentRunAutoCompactionSnapshotBuilders.computeIfAbsent(
           dataSource,
-          k -> new AutoCompactionSnapshot.Builder(k, 
AutoCompactionSnapshot.AutoCompactionScheduleStatus.RUNNING)
+          AutoCompactionSnapshot::builder
       );
-      
builder.incrementBytesSkipped(dataSourceSkippedStatistics.getTotalBytes());
-      
builder.incrementSegmentCountSkipped(dataSourceSkippedStatistics.getNumSegments());
-      
builder.incrementIntervalCountSkipped(dataSourceSkippedStatistics.getNumIntervals());
+      
builder.incrementBytesSkipped(dataSourceSkippedStatistics.getTotalBytes())
+             
.incrementSegmentCountSkipped(dataSourceSkippedStatistics.getNumSegments())
+             
.incrementIntervalCountSkipped(dataSourceSkippedStatistics.getNumIntervals());
     }
 
     final Map<String, AutoCompactionSnapshot> 
currentAutoCompactionSnapshotPerDataSource = new HashMap<>();
diff --git 
a/server/src/test/java/org/apache/druid/server/coordinator/AutoCompactionSnapshotTest.java
 
b/server/src/test/java/org/apache/druid/server/coordinator/AutoCompactionSnapshotTest.java
index 9415a8188fa..e034459fc74 100644
--- 
a/server/src/test/java/org/apache/druid/server/coordinator/AutoCompactionSnapshotTest.java
+++ 
b/server/src/test/java/org/apache/druid/server/coordinator/AutoCompactionSnapshotTest.java
@@ -28,25 +28,22 @@ public class AutoCompactionSnapshotTest
   public void testAutoCompactionSnapshotBuilder()
   {
     final String expectedDataSource = "data";
-    final AutoCompactionSnapshot.AutoCompactionScheduleStatus expectedStatus = 
AutoCompactionSnapshot.AutoCompactionScheduleStatus.RUNNING;
-    AutoCompactionSnapshot.Builder builder = new 
AutoCompactionSnapshot.Builder(expectedDataSource, expectedStatus);
+    final AutoCompactionSnapshot.Builder builder = 
AutoCompactionSnapshot.builder(expectedDataSource);
 
     // Increment every stats twice
     for (int i = 0; i < 2; i++) {
-      builder.incrementIntervalCountSkipped(13);
-      builder.incrementBytesSkipped(13);
-      builder.incrementSegmentCountSkipped(13);
-
-      builder.incrementIntervalCountCompacted(13);
-      builder.incrementBytesCompacted(13);
-      builder.incrementSegmentCountCompacted(13);
-
-      builder.incrementIntervalCountAwaitingCompaction(13);
-      builder.incrementBytesAwaitingCompaction(13);
-      builder.incrementSegmentCountAwaitingCompaction(13);
+      builder.incrementIntervalCountSkipped(13)
+             .incrementBytesSkipped(13)
+             .incrementSegmentCountSkipped(13)
+             .incrementIntervalCountCompacted(13)
+             .incrementBytesCompacted(13)
+             .incrementSegmentCountCompacted(13)
+             .incrementIntervalCountAwaitingCompaction(13)
+             .incrementBytesAwaitingCompaction(13)
+             .incrementSegmentCountAwaitingCompaction(13);
     }
 
-    AutoCompactionSnapshot actual = builder.build();
+    final AutoCompactionSnapshot actual = builder.build();
 
     Assert.assertNotNull(actual);
     Assert.assertEquals(26, actual.getSegmentCountSkipped());


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@druid.apache.org
For additional commands, e-mail: commits-h...@druid.apache.org

Reply via email to