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) ); } }
