You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@asterixdb.apache.org by mh...@apache.org on 2019/09/04 21:22:23 UTC

[asterixdb] branch master updated: [NO ISSUE][STO] Fix Time Unit Comparison For Periodic Flushes

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

mhubail pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/asterixdb.git


The following commit(s) were added to refs/heads/master by this push:
     new 63a3663  [NO ISSUE][STO] Fix Time Unit Comparison For Periodic Flushes
63a3663 is described below

commit 63a3663ec1f1977b783fc78ce566036a58dec456
Author: Murtadha Hubail <mh...@apache.org>
AuthorDate: Wed Sep 4 20:53:56 2019 +0300

    [NO ISSUE][STO] Fix Time Unit Comparison For Periodic Flushes
    
    - user model changes: no
    - storage format changes: no
    - interface changes: no
    
    Details:
    - The dataset checkpoint interval is specified in the
      configuration using seconds while the dataset last
      flush time is tracked in nanos. This change fixes the
      comparison by converting the dataset checkpoint
      interval to nanos.
    
    Change-Id: Id5a9b86207ea25ba44840af01324041525ac5bd9
    Reviewed-on: https://asterix-gerrit.ics.uci.edu/3542
    Sonar-Qube: Jenkins <je...@fulliautomatix.ics.uci.edu>
    Contrib: Jenkins <je...@fulliautomatix.ics.uci.edu>
    Tested-by: Jenkins <je...@fulliautomatix.ics.uci.edu>
    Integration-Tests: Jenkins <je...@fulliautomatix.ics.uci.edu>
    Reviewed-by: Till Westmann <ti...@apache.org>
---
 .../transaction/management/service/recovery/CheckpointManager.java | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/recovery/CheckpointManager.java b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/recovery/CheckpointManager.java
index 43758d3..6582670 100644
--- a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/recovery/CheckpointManager.java
+++ b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/recovery/CheckpointManager.java
@@ -21,6 +21,7 @@ package org.apache.asterix.transaction.management.service.recovery;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.concurrent.TimeUnit;
 import java.util.function.Predicate;
 
 import org.apache.asterix.common.api.IDatasetLifecycleManager;
@@ -43,13 +44,13 @@ public class CheckpointManager extends AbstractCheckpointManager {
 
     private static final Logger LOGGER = LogManager.getLogger();
     private static final long NO_SECURED_LSN = -1L;
-    private final long datasetCheckpointInterval;
+    private final long datasetCheckpointIntervalNanos;
     private final Map<TxnId, Long> securedLSNs;
     private boolean suspended = false;
 
     public CheckpointManager(ITransactionSubsystem txnSubsystem, CheckpointProperties checkpointProperties) {
         super(txnSubsystem, checkpointProperties);
-        datasetCheckpointInterval = checkpointProperties.getDatasetCheckpointInterval();
+        datasetCheckpointIntervalNanos = TimeUnit.SECONDS.toNanos(checkpointProperties.getDatasetCheckpointInterval());
         securedLSNs = new HashMap<>();
     }
 
@@ -134,7 +135,7 @@ public class CheckpointManager extends AbstractCheckpointManager {
         return lsmIndex -> {
             if (lsmIndex.isPrimaryIndex()) {
                 PrimaryIndexOperationTracker opTracker = (PrimaryIndexOperationTracker) lsmIndex.getOperationTracker();
-                return currentTime - opTracker.getLastFlushTime() >= datasetCheckpointInterval;
+                return currentTime - opTracker.getLastFlushTime() >= datasetCheckpointIntervalNanos;
             }
             return false;
         };