[NO ISSUE][OTH] Add pending replicate ops in io stats

- user model changes: no
- storage format changes: no
- interface changes: no

Details:

- Include pending replicate ops in the IO stats.

Change-Id: I56213b6d2027d98c2bf973fac5db5316d6e7fd8e
Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/13003
Reviewed-by: Murtadha Hubail <mhubail@apache.org>
Reviewed-by: Ali Alsuliman <ali.al.solaiman@gmail.com>
Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
diff --git a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/context/DatasetInfo.java b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/context/DatasetInfo.java
index 72dacc4..7483a17 100644
--- a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/context/DatasetInfo.java
+++ b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/context/DatasetInfo.java
@@ -45,6 +45,7 @@
     private int numActiveIOOps;
     private int pendingFlushes;
     private int pendingMerges;
+    private int pendingReplications;
     private long lastAccess;
     private boolean isExternal;
     private boolean isRegistered;
@@ -82,6 +83,9 @@
             case MERGE:
                 pendingMerges++;
                 break;
+            case REPLICATE:
+                pendingReplications++;
+                break;
             default:
                 break;
         }
@@ -96,6 +100,9 @@
             case MERGE:
                 pendingMerges--;
                 break;
+            case REPLICATE:
+                pendingReplications--;
+                break;
             default:
                 break;
         }
@@ -251,4 +258,8 @@
     public synchronized int getPendingMerges() {
         return pendingMerges;
     }
+
+    public synchronized int getPendingReplications() {
+        return pendingReplications;
+    }
 }
diff --git a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/context/DatasetLifecycleManager.java b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/context/DatasetLifecycleManager.java
index bd24696..c431dca 100644
--- a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/context/DatasetLifecycleManager.java
+++ b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/context/DatasetLifecycleManager.java
@@ -562,6 +562,7 @@
         for (DatasetResource dsr : datasets.values()) {
             stats.addPendingFlushes(dsr.getDatasetInfo().getPendingFlushes());
             stats.addPendingMerges(dsr.getDatasetInfo().getPendingMerges());
+            stats.addPendingReplications(dsr.getDatasetInfo().getPendingReplications());
         }
         return stats;
     }
diff --git a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/storage/StorageIOStats.java b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/storage/StorageIOStats.java
index 0b44f76..da4578f 100644
--- a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/storage/StorageIOStats.java
+++ b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/storage/StorageIOStats.java
@@ -22,6 +22,7 @@
 
     private int pendingFlushes;
     private int pendingMerges;
+    private int pendingReplications;
 
     public void addPendingFlushes(int pending) {
         pendingFlushes += pending;
@@ -31,6 +32,10 @@
         pendingMerges += pending;
     }
 
+    public void addPendingReplications(int pending) {
+        pendingReplications += pending;
+    }
+
     public int getPendingFlushes() {
         return pendingFlushes;
     }
@@ -38,4 +43,8 @@
     public int getPendingMerges() {
         return pendingMerges;
     }
+
+    public int getPendingReplications() {
+        return pendingReplications;
+    }
 }