Murtadha Hubail has submitted this change and it was merged.

Change subject: [NO ISSUE][REPL] Ensure Thread Safety of ReplicaManager
......................................................................


[NO ISSUE][REPL] Ensure Thread Safety of ReplicaManager

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

Details:
- Ensure thread safety of ReplicaManager to eliminate
  possible concurrent modifications between reading
  and modifying current replicas.

Change-Id: Ied7549436f7d721341c6699231a202545bac6252
Reviewed-on: https://asterix-gerrit.ics.uci.edu/2402
Reviewed-by: abdullah alamoudi <bamou...@gmail.com>
Sonar-Qube: Jenkins <jenk...@fulliautomatix.ics.uci.edu>
Tested-by: Jenkins <jenk...@fulliautomatix.ics.uci.edu>
Integration-Tests: Jenkins <jenk...@fulliautomatix.ics.uci.edu>
Contrib: Jenkins <jenk...@fulliautomatix.ics.uci.edu>
---
M 
asterixdb/asterix-app/src/main/java/org/apache/asterix/app/nc/ReplicaManager.java
1 file changed, 5 insertions(+), 3 deletions(-)

Approvals:
  Anon. E. Moose #1000171: 
  abdullah alamoudi: Looks good to me, approved
  Jenkins: Verified; No violations found; ; Verified



diff --git 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/nc/ReplicaManager.java
 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/nc/ReplicaManager.java
index 30416a3..c821c56 100644
--- 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/nc/ReplicaManager.java
+++ 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/nc/ReplicaManager.java
@@ -40,9 +40,11 @@
 import org.apache.hyracks.api.exceptions.HyracksDataException;
 import org.apache.hyracks.control.common.controllers.NCConfig;
 import org.apache.hyracks.storage.common.LocalResource;
+import org.apache.hyracks.util.annotations.ThreadSafe;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 
+@ThreadSafe
 public class ReplicaManager implements IReplicaManager {
     private static final Logger LOGGER = LogManager.getLogger();
 
@@ -86,13 +88,13 @@
     }
 
     @Override
-    public List<IPartitionReplica> getReplicas(int partition) {
+    public synchronized List<IPartitionReplica> getReplicas(int partition) {
         return replicas.entrySet().stream().filter(e -> 
e.getKey().getPartition() == partition).map(Map.Entry::getValue)
                 .collect(Collectors.toList());
     }
 
     @Override
-    public Set<Integer> getPartitions() {
+    public synchronized Set<Integer> getPartitions() {
         return Collections.unmodifiableSet(partitions);
     }
 
@@ -110,7 +112,7 @@
     }
 
     @Override
-    public void release(int partition) throws HyracksDataException {
+    public synchronized void release(int partition) throws 
HyracksDataException {
         if (!partitions.contains(partition)) {
             return;
         }

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/2402
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Ied7549436f7d721341c6699231a202545bac6252
Gerrit-PatchSet: 2
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Murtadha Hubail <mhub...@apache.org>
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-Reviewer: Jenkins <jenk...@fulliautomatix.ics.uci.edu>
Gerrit-Reviewer: Murtadha Hubail <mhub...@apache.org>
Gerrit-Reviewer: abdullah alamoudi <bamou...@gmail.com>

Reply via email to