You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@asterixdb.apache.org by mb...@apache.org on 2019/03/06 22:37:40 UTC

[asterixdb] branch master updated: [NO ISSUE][*DB] LogManagerWithReplication optimizations

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

mblow 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 6b5fb09  [NO ISSUE][*DB] LogManagerWithReplication optimizations
6b5fb09 is described below

commit 6b5fb09d242d6eff6a9659bea6db6dafea4f3684
Author: Michael Blow <mb...@apache.org>
AuthorDate: Wed Mar 6 12:10:43 2019 -0500

    [NO ISSUE][*DB] LogManagerWithReplication optimizations
    
    - user model changes: no
    - storage format changes: no
    - interface changes: no
    
    Details:
    
    - eliminate boxing/unboxing of txnids
    - remove redundant hashset contains call
    
    Change-Id: I6e5068c6fe3f6226eabd5403440682c52662421e
    Reviewed-on: https://asterix-gerrit.ics.uci.edu/3251
    Sonar-Qube: Jenkins <je...@fulliautomatix.ics.uci.edu>
    Integration-Tests: Jenkins <je...@fulliautomatix.ics.uci.edu>
    Tested-by: Jenkins <je...@fulliautomatix.ics.uci.edu>
    Contrib: Jenkins <je...@fulliautomatix.ics.uci.edu>
    Reviewed-by: Till Westmann <ti...@apache.org>
---
 .../management/service/logging/LogManagerWithReplication.java | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/logging/LogManagerWithReplication.java b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/logging/LogManagerWithReplication.java
index d2e9629..8a1cc65 100644
--- a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/logging/LogManagerWithReplication.java
+++ b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/logging/LogManagerWithReplication.java
@@ -18,9 +18,6 @@
  */
 package org.apache.asterix.transaction.management.service.logging;
 
-import java.util.Set;
-import java.util.concurrent.ConcurrentHashMap;
-
 import org.apache.asterix.common.exceptions.ACIDException;
 import org.apache.asterix.common.replication.IReplicationManager;
 import org.apache.asterix.common.replication.IReplicationStrategy;
@@ -30,11 +27,15 @@ import org.apache.asterix.common.transactions.LogSource;
 import org.apache.asterix.common.transactions.LogType;
 import org.apache.hyracks.api.util.InvokeUtil;
 
+import it.unimi.dsi.fastutil.longs.LongOpenHashSet;
+import it.unimi.dsi.fastutil.longs.LongSet;
+import it.unimi.dsi.fastutil.longs.LongSets;
+
 public class LogManagerWithReplication extends LogManager {
 
     private IReplicationManager replicationManager;
     private IReplicationStrategy replicationStrategy;
-    private final Set<Long> replicatedTxn = ConcurrentHashMap.newKeySet();
+    private final LongSet replicatedTxn = LongSets.synchronize(new LongOpenHashSet());
 
     public LogManagerWithReplication(ITransactionSubsystem txnSubsystem) {
         super(txnSubsystem);
@@ -52,7 +53,7 @@ public class LogManagerWithReplication extends LogManager {
                 case LogType.FLUSH:
                 case LogType.FILTER:
                     shouldReplicate = replicationStrategy.isMatch(logRecord.getDatasetId());
-                    if (shouldReplicate && !replicatedTxn.contains(logRecord.getTxnId())) {
+                    if (shouldReplicate) {
                         replicatedTxn.add(logRecord.getTxnId());
                     }
                     break;