[ASTERIXDB-2219][STO] Skip Empty Components Replication

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

Details:
- Skip replication for empty components on flushes
  and merges.

Change-Id: If1453f813dafa2aa6c40039fac1d0aea2f08a4e2
Reviewed-on: https://asterix-gerrit.ics.uci.edu/2259
Sonar-Qube: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Reviewed-by: abdullah alamoudi <bamousaa@gmail.com>
diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/LSMHarness.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/LSMHarness.java
index 15ed0ff..b2c48e1 100644
--- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/LSMHarness.java
+++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/LSMHarness.java
@@ -342,7 +342,7 @@
                 // newComponent is null if the flush op. was not performed.
                 if (!failedOperation && newComponent != null) {
                     lsmIndex.addDiskComponent(newComponent);
-                    if (replicationEnabled) {
+                    if (replicationEnabled && newComponent != EmptyComponent.INSTANCE) {
                         componentsToBeReplicated.clear();
                         componentsToBeReplicated.add(newComponent);
                         triggerReplication(componentsToBeReplicated, false, opType);
@@ -354,7 +354,7 @@
                 // newComponent is null if the merge op. was not performed.
                 if (!failedOperation && newComponent != null) {
                     lsmIndex.subsumeMergedComponents(newComponent, ctx.getComponentHolder());
-                    if (replicationEnabled) {
+                    if (replicationEnabled && newComponent != EmptyComponent.INSTANCE) {
                         componentsToBeReplicated.clear();
                         componentsToBeReplicated.add(newComponent);
                         triggerReplication(componentsToBeReplicated, false, opType);