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/28 09:52:37 UTC

[incubator-baremaps] branch main updated: Improve reporting for workflow execution (#612)

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

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


The following commit(s) were added to refs/heads/main by this push:
     new 3f285dac Improve reporting for workflow execution (#612)
3f285dac is described below

commit 3f285dac9cd0765089d08ae5570c7747618d3696
Author: Bertil Chapuis <bc...@gmail.com>
AuthorDate: Tue Mar 28 11:52:32 2023 +0200

    Improve reporting for workflow execution (#612)
---
 .../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,