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

tkalkirill pushed a commit to branch ignite-26131
in repository https://gitbox.apache.org/repos/asf/ignite-3.git

commit f77a65ac5ab9d77ca29bf621fe19ee25f2aa3b2b
Author: Kirill Tkalenko <[email protected]>
AuthorDate: Tue Aug 5 17:05:39 2025 +0300

    IGNITE-26131 wip
---
 .../pagememory/persistence/WriteSpeedFormatter.java       | 15 +++++++++++++--
 .../pagememory/persistence/checkpoint/Checkpointer.java   |  7 ++++---
 .../pagememory/persistence/compaction/Compactor.java      |  6 +++---
 3 files changed, 20 insertions(+), 8 deletions(-)

diff --git 
a/modules/page-memory/src/main/java/org/apache/ignite/internal/pagememory/persistence/WriteSpeedFormatter.java
 
b/modules/page-memory/src/main/java/org/apache/ignite/internal/pagememory/persistence/WriteSpeedFormatter.java
index cd85d56ec5d..e794d24f1fc 100644
--- 
a/modules/page-memory/src/main/java/org/apache/ignite/internal/pagememory/persistence/WriteSpeedFormatter.java
+++ 
b/modules/page-memory/src/main/java/org/apache/ignite/internal/pagememory/persistence/WriteSpeedFormatter.java
@@ -48,14 +48,25 @@ public class WriteSpeedFormatter {
         // no-op
     }
 
+    /**
+     * Format write speed in MB/sec.
+     *
+     * @param bytes Total number of bytes.
+     * @param durationInSeconds Duration in seconds.
+     * @return Formatted write speed.
+     */
+    public static String formatWriteSpeed(long bytes, long durationInSeconds) {
+        return formatWriteSpeed((double) bytes / Math.max(1, 
durationInSeconds));
+    }
+
     /**
      * Format write speed in MB/sec.
      *
      * @param avgWriteSpeedInBytes Write speed in bytes.
      * @return Formatted write speed.
      */
-    public static String formatWriteSpeed(float avgWriteSpeedInBytes) {
-        float speedInMbs = avgWriteSpeedInBytes / Constants.MiB;
+    public static String formatWriteSpeed(double avgWriteSpeedInBytes) {
+        double speedInMbs = avgWriteSpeedInBytes / Constants.MiB;
 
         if (speedInMbs >= 10.0) {
             synchronized (HIGH_SPEED_FORMAT) {
diff --git 
a/modules/page-memory/src/main/java/org/apache/ignite/internal/pagememory/persistence/checkpoint/Checkpointer.java
 
b/modules/page-memory/src/main/java/org/apache/ignite/internal/pagememory/persistence/checkpoint/Checkpointer.java
index d07308cc7d4..fccd356b61a 100644
--- 
a/modules/page-memory/src/main/java/org/apache/ignite/internal/pagememory/persistence/checkpoint/Checkpointer.java
+++ 
b/modules/page-memory/src/main/java/org/apache/ignite/internal/pagememory/persistence/checkpoint/Checkpointer.java
@@ -23,6 +23,7 @@ import static java.util.concurrent.TimeUnit.MICROSECONDS;
 import static java.util.concurrent.TimeUnit.MILLISECONDS;
 import static java.util.concurrent.TimeUnit.MINUTES;
 import static java.util.concurrent.TimeUnit.NANOSECONDS;
+import static java.util.concurrent.TimeUnit.SECONDS;
 import static org.apache.ignite.internal.failure.FailureType.CRITICAL_ERROR;
 import static 
org.apache.ignite.internal.failure.FailureType.SYSTEM_WORKER_TERMINATION;
 import static 
org.apache.ignite.internal.pagememory.persistence.checkpoint.CheckpointReadWriteLock.CHECKPOINT_RUNNER_THREAD_PREFIX;
@@ -407,8 +408,8 @@ public class Checkpointer extends IgniteWorker {
 
             if (chp.hasDelta()) {
                 if (log.isInfoEnabled()) {
-                    float totalDurationInSeconds = 
tracker.checkpointDuration(MILLISECONDS) / 1000.0f;
-                    float avgWriteSpeedInBytes = ((long) pageSize * 
chp.dirtyPagesSize) / totalDurationInSeconds;
+                    long totalDurationInSeconds = 
tracker.checkpointDuration(SECONDS);
+                    long totalWriteBytes = (long) pageSize * 
chp.dirtyPagesSize;
 
                     log.info(
                             CHECKPOINT_FINISHED_LOG_TEMPLATE,
@@ -419,7 +420,7 @@ public class Checkpointer extends IgniteWorker {
                             tracker.replicatorLogSyncDuration(MILLISECONDS),
                             tracker.waitPageReplacementDuration(MILLISECONDS),
                             tracker.checkpointDuration(MILLISECONDS),
-                            
WriteSpeedFormatter.formatWriteSpeed(avgWriteSpeedInBytes)
+                            
WriteSpeedFormatter.formatWriteSpeed(totalWriteBytes, totalDurationInSeconds)
                     );
                 }
             }
diff --git 
a/modules/page-memory/src/main/java/org/apache/ignite/internal/pagememory/persistence/compaction/Compactor.java
 
b/modules/page-memory/src/main/java/org/apache/ignite/internal/pagememory/persistence/compaction/Compactor.java
index c0b2adc758a..872e5d1effb 100644
--- 
a/modules/page-memory/src/main/java/org/apache/ignite/internal/pagememory/persistence/compaction/Compactor.java
+++ 
b/modules/page-memory/src/main/java/org/apache/ignite/internal/pagememory/persistence/compaction/Compactor.java
@@ -287,15 +287,15 @@ public class Compactor extends IgniteWorker {
             tracker.onCompactionEnd();
 
             if (LOG.isInfoEnabled()) {
-                float totalDurationInSeconds = 
tracker.totalDuration(MILLISECONDS) / 1000.0f;
-                float avgWriteSpeedInBytes = ((long) pageSize * 
tracker.dataPagesWritten()) / totalDurationInSeconds;
+                long totalDurationInSeconds = tracker.totalDuration(SECONDS);
+                long totalWriteBytes = (long) pageSize * 
tracker.dataPagesWritten();
 
                 LOG.info(
                         "Compaction round finished [compactionId={}, pages={}, 
duration={}ms, avgWriteSpeed={}MB/s]",
                         compactionId,
                         tracker.dataPagesWritten(),
                         tracker.totalDuration(MILLISECONDS),
-                        
WriteSpeedFormatter.formatWriteSpeed(avgWriteSpeedInBytes)
+                        WriteSpeedFormatter.formatWriteSpeed(totalWriteBytes, 
totalDurationInSeconds)
                 );
             }
         }

Reply via email to