Skip to content

Commit d68311b

Browse files
committed
Adding Partition Execution Logging for DimensionalTimeSliceCrawler and 2 minute Partition Execution Delay for Each Partition Batch
Signed-off-by: Alexander Christensen <alchrisk@amazon.com>
1 parent 1f3c152 commit d68311b

2 files changed

Lines changed: 19 additions & 1 deletion

File tree

data-prepper-plugins/saas-source-plugins/source-crawler/src/main/java/org/opensearch/dataprepper/plugins/source/source_crawler/base/DimensionalTimeSliceCrawler.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,8 +87,26 @@ public Instant crawl(LeaderPartition leaderPartition, EnhancedSourceCoordinator
8787

8888
@Override
8989
public void executePartition(DimensionalTimeSliceWorkerProgressState state, Buffer<Record<Event>> buffer, AcknowledgementSet acknowledgementSet) {
90+
log.info("Processing partition - DimensionType: {}, TimeRange: {} to {}",
91+
state.getDimensionType(), state.getStartTime(), state.getEndTime());
92+
9093
partitionWaitTimeTimer.record(Duration.between(state.getPartitionCreationTime(), Instant.now()));
94+
95+
Instant executionStart = Instant.now();
9196
partitionProcessLatencyTimer.record(() -> client.executePartition(state, buffer, acknowledgementSet));
97+
98+
// Enforce 2 minute minimum execution duration
99+
Duration actualExecutionTime = Duration.between(executionStart, Instant.now());
100+
Duration minimumDuration = Duration.ofMinutes(2); // configurable
101+
102+
if (actualExecutionTime.compareTo(minimumDuration) < 0) {
103+
Duration remainingDelay = minimumDuration.minus(actualExecutionTime);
104+
try {
105+
Thread.sleep(remainingDelay.toMillis());
106+
} catch (InterruptedException e) {
107+
Thread.currentThread().interrupt();
108+
}
109+
}
92110
}
93111

94112
private Instant createPartitions(LeaderPartition leaderPartition,

data-prepper-plugins/saas-source-plugins/source-crawler/src/main/java/org/opensearch/dataprepper/plugins/source/source_crawler/base/LeaderOnlyTokenCrawler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -237,4 +237,4 @@ private void updateLeaderProgressState(LeaderPartition leaderPartition,
237237
void setNoAckTimeout(Duration timeout) {
238238
this.noAckTimeout = timeout;
239239
}
240-
}
240+
}

0 commit comments

Comments
 (0)