You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@baremaps.apache.org by bc...@apache.org on 2023/03/18 12:21:26 UTC

[incubator-baremaps] branch 556-reporting created (now 64974086)

This is an automated email from the ASF dual-hosted git repository.

bchapuis pushed a change to branch 556-reporting
in repository https://gitbox.apache.org/repos/asf/incubator-baremaps.git


      at 64974086 Improve reporting for workflow execution

This branch includes the following new commits:

     new 64974086 Improve reporting for workflow execution

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[incubator-baremaps] 01/01: Improve reporting for workflow execution

Posted by bc...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

bchapuis pushed a commit to branch 556-reporting
in repository https://gitbox.apache.org/repos/asf/incubator-baremaps.git

commit 64974086265873a29f4a37649688e3e2bbedc595
Author: Bertil Chapuis <bc...@gmail.com>
AuthorDate: Sat Mar 18 13:20:57 2023 +0100

    Improve reporting for workflow execution
---
 .../apache/baremaps/workflow/WorkflowExecutor.java | 182 +++++++++++++++++++--
 .../workflow/tasks/CreateEntityCollection.java     |   4 -
 .../workflow/tasks/CreateGeonamesIndex.java        |   4 -
 .../baremaps/workflow/tasks/CreateIplocIndex.java  |   6 +-
 .../baremaps/workflow/tasks/DownloadUrl.java       |   3 -
 .../baremaps/workflow/tasks/ExecuteCommand.java    |   1 -
 .../apache/baremaps/workflow/tasks/ExecuteSql.java |   3 -
 .../baremaps/workflow/tasks/ExportVectorTiles.java |   3 -
 .../baremaps/workflow/tasks/ImportGeoPackage.java  |   3 -
 .../workflow/tasks/ImportOpenStreetMap.java        |   4 -
 .../baremaps/workflow/tasks/ImportShapefile.java   |   3 -
 .../apache/baremaps/workflow/tasks/UngzipFile.java |   3 -
 .../apache/baremaps/workflow/tasks/UnzipFile.java  |   2 -
 .../workflow/tasks/UpdateOpenStreetMap.java        |   2 -
 14 files changed, 168 insertions(+), 55 deletions(-)

diff --git a/baremaps-core/src/main/java/org/apache/baremaps/workflow/WorkflowExecutor.java b/baremaps-core/src/main/java/org/apache/baremaps/workflow/WorkflowExecutor.java
index a90e0832..44f345ba 100644
--- a/baremaps-core/src/main/java/org/apache/baremaps/workflow/WorkflowExecutor.java
+++ b/baremaps-core/src/main/java/org/apache/baremaps/workflow/WorkflowExecutor.java
@@ -18,15 +18,22 @@ import com.google.common.graph.Graph;
 import com.google.common.graph.GraphBuilder;
 import com.google.common.graph.Graphs;
 import com.google.common.graph.ImmutableGraph;
+import java.time.Duration;
+import java.util.ArrayList;
+import java.util.List;
 import java.util.Map;
 import java.util.concurrent.*;
 import java.util.stream.Collectors;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * A workflow executor executes a workflow in parallel.
  */
 public class WorkflowExecutor implements AutoCloseable {
 
+  private static final Logger logger = LoggerFactory.getLogger(WorkflowExecutor.class);
+
   private final ExecutorService executorService;
 
   private final WorkflowContext context;
@@ -37,6 +44,8 @@ public class WorkflowExecutor implements AutoCloseable {
 
   private final Graph<String> graph;
 
+  private final List<StepMeasure> stepMeasures;
+
   /**
    * Constructs a workflow executor.
    *
@@ -55,14 +64,20 @@ public class WorkflowExecutor implements AutoCloseable {
   public WorkflowExecutor(Workflow workflow, ExecutorService executorService) {
     this.executorService = executorService;
     this.context = new WorkflowContext();
-    this.steps = workflow.getSteps().stream().collect(Collectors.toMap(s -> s.getId(), s -> s));
+    this.steps = workflow.getSteps().stream()
+        .collect(Collectors.toMap(step -> step.getId(), step -> step));
     this.futures = new ConcurrentSkipListMap<>();
+    this.stepMeasures = new CopyOnWriteArrayList<>();
 
-    // Build the execution graph
+    // Create a graph from the workflow
     ImmutableGraph.Builder<String> graphBuilder = GraphBuilder.directed().immutable();
+
+    // Add the nodes (e.g. steps) to the graph
     for (String id : this.steps.keySet()) {
       graphBuilder.addNode(id);
     }
+
+    // Add the edges (e.g. needs) to the graph
     for (Step step : this.steps.values()) {
       if (step.getNeeds() != null) {
         for (String stepNeeded : step.getNeeds()) {
@@ -70,57 +85,194 @@ public class WorkflowExecutor implements AutoCloseable {
         }
       }
     }
+
+    // Build the graph
     this.graph = graphBuilder.build();
+
+    // Check that the graph is acyclic
     if (Graphs.hasCycle(this.graph)) {
       throw new WorkflowException("The workflow must be a directed acyclic graph");
     }
+
+    logger.info("Workflow graph: {}", this.graph);
   }
 
   /**
    * Executes the workflow.
    */
   public CompletableFuture<Void> execute() {
-    var endSteps = graph.nodes().stream().filter(this::isEndStep).map(this::getStep)
+    // Create futures for each end step
+    var endSteps = graph.nodes().stream()
+        .filter(this::isEndStep)
+        .map(this::getFutureStep)
         .toArray(CompletableFuture[]::new);
-    return CompletableFuture.allOf(endSteps);
+
+    // Create a future that logs the stepMeasures when all the futures are completed
+    var future = CompletableFuture.allOf(endSteps).thenRun(this::logStepMeasures);
+
+    return future;
   }
 
-  private CompletableFuture<Void> getStep(String step) {
-    return futures.computeIfAbsent(step, this::initStep);
+  /**
+   * Returns the future step associated to the step id. If the future step does not exist, it is
+   * created.
+   *
+   * @param step the step id
+   * @return the future step
+   */
+  private CompletableFuture<Void> getFutureStep(String step) {
+    return futures.computeIfAbsent(step, this::createFutureStep);
   }
 
-  private CompletableFuture<Void> initStep(String stepId) {
-    var future = previousSteps(stepId);
-    for (Task task : steps.get(stepId).getTasks()) {
+  /**
+   * Creates a future step associated to the step id.
+   *
+   * @param stepId the step id
+   * @return the future step
+   */
+  private CompletableFuture<Void> createFutureStep(String stepId) {
+    // Initialize the future step with the previous future step
+    // as it depends on its completion.
+    var future = getPreviousFutureStep(stepId);
+
+    // Time the execution of the tasks
+    var measures = new ArrayList<TaskMeasure>();
+
+    // Chain the tasks of the step to the future so that they are executed
+    // sequentially when the previous future step completes.
+    var step = steps.get(stepId);
+    var tasks = step.getTasks();
+    for (var task : tasks) {
       future = future.thenRunAsync(() -> {
         try {
+          var start = System.currentTimeMillis();
           task.execute(context);
+          var end = System.currentTimeMillis();
+          var measure = new TaskMeasure(task, start, end);
+          measures.add(measure);
+          logTaskMeasure(measure);
         } catch (Exception e) {
           throw new WorkflowException(e);
         }
       }, executorService);
     }
+
+    // Record the measure
+    this.stepMeasures.add(new StepMeasure(step, measures));
+
     return future;
   }
 
-  private CompletableFuture<Void> previousSteps(String stepId) {
+  /**
+   * Returns the future step associated to the previous step of the step id. If the future step does
+   * not exist, it is created.
+   *
+   * @param stepId the step id
+   * @return the future step
+   */
+  private CompletableFuture<Void> getPreviousFutureStep(String stepId) {
     var predecessors = graph.predecessors(stepId).stream().toList();
+
+    // If the step has no predecessor,
+    // return an empty completed future step.
     if (predecessors.isEmpty()) {
       return CompletableFuture.completedFuture(null);
-    } else if (predecessors.size() == 1) {
-      return getStep(predecessors.get(0));
-    } else {
-      return CompletableFuture
-          .allOf(predecessors.stream().map(this::getStep).toArray(CompletableFuture[]::new));
     }
+
+    // If the step has one predecessor,
+    // return the future step associated to it.
+    if (predecessors.size() == 1) {
+      return getFutureStep(predecessors.get(0));
+    }
+
+    // If the step has multiple predecessors,
+    // return a future step that completes when all the predecessors complete.
+    var futurePredecessors = predecessors.stream()
+        .map(this::getFutureStep)
+        .toArray(CompletableFuture[]::new);
+    return CompletableFuture.allOf(futurePredecessors);
+  }
+
+  /**
+   * Logs the step measures.
+   */
+  private void logStepMeasures() {
+    logger.info("----------------------------------------");
+    logger.info("Workflow graph: {}", this.graph);
+    for (var stepMeasure : this.stepMeasures) {
+      logger.info("Step: {}", stepMeasure.step.getId());
+      for (var taskMeasure : stepMeasure.stepMeasures) {
+        var duration = Duration.ofMillis(taskMeasure.end - taskMeasure.start);
+        logger.info("  Task: {}", taskMeasure.task);
+        logger.info("    Duration: {}", formatDuration(duration));
+      }
+    }
+    logger.info("----------------------------------------");
   }
 
+  /**
+   * Logs a task measure.
+   * 
+   * @param taskMeasure the task measure
+   */
+  private static void logTaskMeasure(TaskMeasure taskMeasure) {
+    var duration = Duration.ofMillis(taskMeasure.end - taskMeasure.start);
+    logger.info("{} executed in {}", taskMeasure.task, formatDuration(duration));
+  }
+
+  /**
+   * Returns a string representation of the duration.
+   *
+   * @param duration the duration
+   * @return a string representation of the duration
+   */
+  private static String formatDuration(Duration duration) {
+    var builder = new StringBuilder();
+    var days = duration.toDays();
+    if (days > 0) {
+      builder.append(days).append(" days ");
+    }
+    final long hrs = duration.toHours() - Duration.ofDays(duration.toDays()).toHours();
+    if (hrs > 0) {
+      builder.append(hrs).append(" hrs ");
+    }
+    final long min = duration.toMinutes() - Duration.ofHours(duration.toHours()).toMinutes();
+    if (min > 0) {
+      builder.append(min).append(" min ");
+    }
+    final long sec = duration.toSeconds() - Duration.ofMinutes(duration.toMinutes()).toSeconds();
+    if (sec > 0) {
+      builder.append(sec).append(" s ");
+    }
+    final long ms = duration.toMillis() - Duration.ofSeconds(duration.toSeconds()).toMillis();
+    if (ms > 0) {
+      builder.append(ms).append(" ms ");
+    }
+    return builder.toString();
+  }
+
+  /**
+   * Returns true if the step is an end step.
+   *
+   * @param stepId the step id
+   * @return true if the step is an end step
+   */
   private boolean isEndStep(String stepId) {
     return graph.successors(stepId).isEmpty();
   }
 
+  /**
+   * Closes the workflow executor.
+   */
   @Override
   public void close() throws Exception {
     executorService.shutdown();
   }
+
+  record StepMeasure(Step step, List<TaskMeasure> stepMeasures) {
+  }
+
+  record TaskMeasure(Task task, long start, long end) {
+  }
+
 }
diff --git a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/CreateEntityCollection.java b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/CreateEntityCollection.java
index 5636267a..4eb9eafb 100644
--- a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/CreateEntityCollection.java
+++ b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/CreateEntityCollection.java
@@ -40,8 +40,6 @@ public record CreateEntityCollection(Path file, Path collection,
 
   @Override
   public void execute(WorkflowContext context) throws Exception {
-    logger.info("Importing {} into {}", file, collection);
-
     var path = file.toAbsolutePath();
     var cacheDir = Files.createTempDirectory(Paths.get("."), "cache_");
 
@@ -90,8 +88,6 @@ public record CreateEntityCollection(Path file, Path collection,
     entityCollection.close();
 
     FileUtils.deleteRecursively(cacheDir);
-
-    logger.info("Finished importing {} into {}", file, collection);
   }
 
 }
diff --git a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/CreateGeonamesIndex.java b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/CreateGeonamesIndex.java
index 26631932..531ce8bd 100644
--- a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/CreateGeonamesIndex.java
+++ b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/CreateGeonamesIndex.java
@@ -36,8 +36,6 @@ public record CreateGeonamesIndex(Path dataFile, Path indexDirectory) implements
 
   @Override
   public void execute(WorkflowContext context) throws Exception {
-    logger.info("Indexing {}", dataFile);
-
     var directory = MMapDirectory.open(indexDirectory);
     var config = new IndexWriterConfig(GeocoderConstants.ANALYZER);
 
@@ -51,7 +49,5 @@ public record CreateGeonamesIndex(Path dataFile, Path indexDirectory) implements
     } catch (IOException exception) {
       throw new RuntimeException();
     }
-
-    logger.info("Finished indexing {}", indexDirectory);
   }
 }
diff --git a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/CreateIplocIndex.java b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/CreateIplocIndex.java
index 4780fb07..49ab8ddd 100644
--- a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/CreateIplocIndex.java
+++ b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/CreateIplocIndex.java
@@ -40,8 +40,6 @@ public record CreateIplocIndex(
 
   @Override
   public void execute(WorkflowContext context) throws Exception {
-    logger.info("Generating Iploc from {} {}", geonamesIndexPath, nicPaths);
-
     try (
         var directory = MMapDirectory.open(geonamesIndexPath);
         var searcherManager = new SearcherManager(directory, new SearcherFactory())) {
@@ -65,7 +63,7 @@ public record CreateIplocIndex(
       IpLocStats ipLocStats = ipLoc.getIplocStats();
       logger.info(
           """
-              IpLoc stats
+              IpLoc measure
               -----------
               inetnumInsertedByAddress : {}
               inetnumInsertedByDescr : {}
@@ -77,7 +75,5 @@ public record CreateIplocIndex(
           ipLocStats.getInsertedByCountryCount(), ipLocStats.getInsertedByCountryCodeCount(),
           ipLocStats.getInsertedByGeolocCount(), ipLocStats.getNotInsertedCount());
     }
-
-    logger.info("IpLoc database created successfully {}", targetIplocIndexPath);
   }
 }
diff --git a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/DownloadUrl.java b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/DownloadUrl.java
index b162a498..a495de1f 100644
--- a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/DownloadUrl.java
+++ b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/DownloadUrl.java
@@ -32,8 +32,6 @@ public record DownloadUrl(String url, Path path, boolean replaceExisting) implem
 
   @Override
   public void execute(WorkflowContext context) throws Exception {
-    logger.info("Downloading {} to {}", url, path);
-
     var targetUrl = new URL(url);
     var targetPath = path.toAbsolutePath();
 
@@ -56,7 +54,6 @@ public record DownloadUrl(String url, Path path, boolean replaceExisting) implem
       var downloadFile = targetPath.toAbsolutePath();
       Files.createDirectories(downloadFile.getParent());
       Files.copy(inputStream, targetPath, StandardCopyOption.REPLACE_EXISTING);
-      logger.info("Finished downloading {} to {}", url, path);
     }
   }
 }
diff --git a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ExecuteCommand.java b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ExecuteCommand.java
index b56fcfe8..0e75612a 100644
--- a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ExecuteCommand.java
+++ b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ExecuteCommand.java
@@ -23,7 +23,6 @@ public record ExecuteCommand(String command) implements Task {
 
   @Override
   public void execute(WorkflowContext context) throws Exception {
-    logger.info("Executing '{}'", command);
     new ProcessBuilder().command("/bin/sh", "-c", command).start().waitFor();
   }
 }
diff --git a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ExecuteSql.java b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ExecuteSql.java
index 115c0e14..6bdc7120 100644
--- a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ExecuteSql.java
+++ b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ExecuteSql.java
@@ -29,7 +29,6 @@ public record ExecuteSql(String database, Path file, boolean parallel) implement
 
   @Override
   public void execute(WorkflowContext context) throws Exception {
-    logger.info("Executing {}", file);
     var sql = removeComments(Files.readString(file));
     var queries = Arrays.stream(sql.split(";"));
     if (parallel) {
@@ -41,11 +40,9 @@ public record ExecuteSql(String database, Path file, boolean parallel) implement
           try (var connection = dataSource.getConnection()) {
             connection.createStatement().execute(query);
           } catch (SQLException e) {
-            logger.error("Failed executing {}", query);
             throw new WorkflowException(e);
           }
         });
-    logger.info("Finished executing {}", file);
   }
 
   /**
diff --git a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ExportVectorTiles.java b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ExportVectorTiles.java
index 2fad19db..012fb600 100644
--- a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ExportVectorTiles.java
+++ b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ExportVectorTiles.java
@@ -54,7 +54,6 @@ public record ExportVectorTiles(
 
   @Override
   public void execute(WorkflowContext context) throws Exception {
-    logger.info("Exporting vector tiles from {} to {}", database, repository);
     var datasource = context.getDataSource(database);
     var mapper =
         new ObjectMapper()
@@ -79,8 +78,6 @@ public record ExportVectorTiles(
             .peek(new StreamProgress<>(count, 5000));
 
     StreamUtils.batch(stream, 10).forEach(new TileChannel(tileSource, tileTarget));
-
-    logger.info("Finished exporting vector tiles from {} to {}", database, repository);
   }
 
   private TileStore sourceTileStore(Tileset tileset, DataSource datasource) {
diff --git a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ImportGeoPackage.java b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ImportGeoPackage.java
index 6ec56f67..0c696aef 100644
--- a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ImportGeoPackage.java
+++ b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ImportGeoPackage.java
@@ -32,7 +32,6 @@ public record ImportGeoPackage(Path file, String database, Integer sourceSRID, I
 
   @Override
   public void execute(WorkflowContext context) throws Exception {
-    logger.info("Importing {} into {}", file, database);
     var path = file.toAbsolutePath();
     try (var geoPackageStore = new GeoPackageDatabase(path)) {
       var dataSource = context.getDataSource(database);
@@ -44,9 +43,7 @@ public record ImportGeoPackage(Path file, String database, Integer sourceSRID, I
           postgresDatabase.write(transformedFeatureSet);
         }
       }
-      logger.info("Finished importing {} into {}", file, database);
     } catch (Exception e) {
-      logger.error("Failed importing {} into {}", file, database);
       throw new WorkflowException(e);
     }
   }
diff --git a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ImportOpenStreetMap.java b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ImportOpenStreetMap.java
index a505cfbc..b7aed6d8 100644
--- a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ImportOpenStreetMap.java
+++ b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ImportOpenStreetMap.java
@@ -45,8 +45,6 @@ public record ImportOpenStreetMap(Path file, String database, Integer databaseSr
 
   @Override
   public void execute(WorkflowContext context) throws Exception {
-    logger.info("Importing {} into {}", file, database);
-
     var dataSource = context.getDataSource(database);
     var path = file.toAbsolutePath();
 
@@ -108,8 +106,6 @@ public record ImportOpenStreetMap(Path file, String database, Integer databaseSr
         databaseSrid);
 
     FileUtils.deleteRecursively(cacheDir);
-
-    logger.info("Finished importing {} into {}", file, database);
   }
 
   public static void execute(
diff --git a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ImportShapefile.java b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ImportShapefile.java
index ca0b3208..be4fdd17 100644
--- a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ImportShapefile.java
+++ b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ImportShapefile.java
@@ -31,16 +31,13 @@ public record ImportShapefile(Path file, String database, Integer sourceSRID, In
 
   @Override
   public void execute(WorkflowContext context) throws Exception {
-    logger.info("Importing {} into {}", file, database);
     var path = file.toAbsolutePath();
     try (var featureSet = new ShapefileFeatureSet(path)) {
       var dataSource = context.getDataSource(database);
       var postgresDatabase = new PostgresDatabase(dataSource);
       postgresDatabase.write(new FeatureSetProjectionTransform(
           featureSet, new ProjectionTransformer(sourceSRID, targetSRID)));
-      logger.info("Finished importing {} into {}", file, database);
     } catch (Exception e) {
-      logger.error("Failed importing {} into {}", file, database);
       throw new WorkflowException(e);
     }
   }
diff --git a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/UngzipFile.java b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/UngzipFile.java
index 14cda0da..38e46f18 100644
--- a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/UngzipFile.java
+++ b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/UngzipFile.java
@@ -29,16 +29,13 @@ public record UngzipFile(Path file, Path directory) implements Task {
 
   @Override
   public void execute(WorkflowContext context) throws Exception {
-    logger.info("Unzipping {} to {}", file, directory);
     var filePath = file.toAbsolutePath();
     var directoryPath = directory.toAbsolutePath();
     try (var zis = new GZIPInputStream(new BufferedInputStream(Files.newInputStream(filePath)))) {
       var file = directoryPath.resolve(filePath.getFileName().toString().substring(0,
           filePath.getFileName().toString().length() - 3));
       Files.copy(zis, file, StandardCopyOption.REPLACE_EXISTING);
-      logger.info("Finished unzipping {} to {}", file, directory);
     } catch (Exception e) {
-      logger.error("Failed unzipping {} to {}", file, directory);
       throw new WorkflowException(e);
     }
   }
diff --git a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/UnzipFile.java b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/UnzipFile.java
index 1c9e6ac1..3e186a08 100644
--- a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/UnzipFile.java
+++ b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/UnzipFile.java
@@ -31,8 +31,6 @@ public record UnzipFile(Path file, Path directory) implements Task {
 
   @Override
   public void execute(WorkflowContext context) throws Exception {
-    logger.info("Unzipping {} to {}", file, directory);
-
     var filePath = file.toAbsolutePath();
     var directoryPath = directory.toAbsolutePath();
 
diff --git a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/UpdateOpenStreetMap.java b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/UpdateOpenStreetMap.java
index dca3794a..0fec59d9 100644
--- a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/UpdateOpenStreetMap.java
+++ b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/UpdateOpenStreetMap.java
@@ -46,7 +46,6 @@ public record UpdateOpenStreetMap(String database, Integer databaseSrid) impleme
 
   @Override
   public void execute(WorkflowContext context) throws Exception {
-    logger.info("Updating {}", database);
     var datasource = context.getDataSource(database);
     DataMap<Coordinate> coordinateMap = new PostgresCoordinateMap(datasource);
     DataMap<List<Long>> referenceMap = new PostgresReferenceMap(datasource);
@@ -62,7 +61,6 @@ public record UpdateOpenStreetMap(String database, Integer databaseSrid) impleme
         wayRepository,
         relationRepository,
         databaseSrid);
-    logger.info("Finished updating {}", database);
   }
 
   public static void execute(DataMap<Coordinate> coordinateMap, DataMap<List<Long>> referenceMap,