You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by ud...@apache.org on 2014/12/12 11:11:39 UTC

[37/50] stratos git commit: Removing mock statistics read/write locks

Removing mock statistics read/write locks


Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/fcc30c21
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/fcc30c21
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/fcc30c21

Branch: refs/heads/master
Commit: fcc30c2178df05fb190a69c7af8c43831c534701
Parents: 500c4af
Author: Imesh Gunaratne <im...@apache.org>
Authored: Fri Dec 12 01:00:20 2014 +0530
Committer: Imesh Gunaratne <im...@apache.org>
Committed: Fri Dec 12 01:00:20 2014 +0530

----------------------------------------------------------------------
 .../mock/statistics/MockHealthStatistics.java   | 43 ++-----------
 .../generator/MockHealthStatisticsUpdater.java  |  4 --
 .../publisher/MockHealthStatisticsNotifier.java | 64 +++++++++-----------
 3 files changed, 35 insertions(+), 76 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/fcc30c21/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/mock/statistics/MockHealthStatistics.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/mock/statistics/MockHealthStatistics.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/mock/statistics/MockHealthStatistics.java
index 50e6564..9ac4d8a 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/mock/statistics/MockHealthStatistics.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/mock/statistics/MockHealthStatistics.java
@@ -35,11 +35,9 @@ public class MockHealthStatistics {
 
     private static volatile MockHealthStatistics instance;
 
-    private Map<String, ReentrantReadWriteLock> lockMap;
     private Map<String, Map<String, Integer>> statisticsMap;
 
     private MockHealthStatistics() {
-        lockMap = new ConcurrentHashMap<String, ReentrantReadWriteLock>();
         statisticsMap = new ConcurrentHashMap<String, Map<String, Integer>>();
     }
 
@@ -54,44 +52,15 @@ public class MockHealthStatistics {
         return instance;
     }
 
-    public void acquireReadLock(String cartridgeType) {
-        ReentrantReadWriteLock lock = getLock(cartridgeType);
-        lock.readLock().lock();
-    }
-
-    public void acquireWriteLock(String cartridgeType) {
-        ReentrantReadWriteLock lock = getLock(cartridgeType);
-        lock.writeLock().lock();
-    }
-
-    public void releaseReadLock(String cartridgeType) {
-        ReentrantReadWriteLock lock = getLock(cartridgeType);
-        lock.readLock().unlock();
-    }
-
-    public void releaseWriteLock(String cartridgeType) {
-        ReentrantReadWriteLock lock = getLock(cartridgeType);
-        lock.writeLock().unlock();
-    }
-
-    private ReentrantReadWriteLock getLock(String cartridgeType) {
-        ReentrantReadWriteLock lock = lockMap.get(cartridgeType);
-        if(lock == null) {
-            synchronized (MockHealthStatistics.class) {
-                if(lock == null) {
-                    lock = new ReentrantReadWriteLock();
-                    lockMap.put(cartridgeType, lock);
-                }
-            }
-        }
-        return lock;
-    }
-
     public void addStatistics(String cartridgeType, MockAutoscalingFactor autoscalingFactor, Integer value) {
         Map<String, Integer> factorValueMap = statisticsMap.get(cartridgeType);
         if(factorValueMap == null) {
-            factorValueMap = new ConcurrentHashMap<String, Integer>();
-            statisticsMap.put(cartridgeType, factorValueMap);
+            synchronized (MockHealthStatistics.class) {
+                if(factorValueMap == null) {
+                    factorValueMap = new ConcurrentHashMap<String, Integer>();
+                    statisticsMap.put(cartridgeType, factorValueMap);
+                }
+            }
         }
         factorValueMap.put(autoscalingFactor.toString(), value);
     }

http://git-wip-us.apache.org/repos/asf/stratos/blob/fcc30c21/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/mock/statistics/generator/MockHealthStatisticsUpdater.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/mock/statistics/generator/MockHealthStatisticsUpdater.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/mock/statistics/generator/MockHealthStatisticsUpdater.java
index fd697a2..dd2aec8 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/mock/statistics/generator/MockHealthStatisticsUpdater.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/mock/statistics/generator/MockHealthStatisticsUpdater.java
@@ -40,8 +40,6 @@ public class MockHealthStatisticsUpdater implements Runnable {
     @Override
     public void run() {
         try {
-            MockHealthStatistics.getInstance().acquireWriteLock(statisticsPattern.getCartridgeType());
-
             int nextSample = statisticsPattern.getNextSample();
             MockHealthStatistics.getInstance().addStatistics(statisticsPattern.getCartridgeType(),
                     statisticsPattern.getFactor(), nextSample);
@@ -52,8 +50,6 @@ public class MockHealthStatisticsUpdater implements Runnable {
             }
         } catch (Exception e) {
             log.error("Could not update mock statistics", e);
-        } finally {
-            MockHealthStatistics.getInstance().releaseWriteLock(statisticsPattern.getCartridgeType());
         }
     }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/fcc30c21/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/mock/statistics/publisher/MockHealthStatisticsNotifier.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/mock/statistics/publisher/MockHealthStatisticsNotifier.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/mock/statistics/publisher/MockHealthStatisticsNotifier.java
index 2fd33c4..94744af 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/mock/statistics/publisher/MockHealthStatisticsNotifier.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/mock/statistics/publisher/MockHealthStatisticsNotifier.java
@@ -47,44 +47,38 @@ public class MockHealthStatisticsNotifier implements Runnable {
     public void run() {
         try {
             if (statsPublisher.isEnabled()) {
-                try {
-                    MockHealthStatistics.getInstance().acquireReadLock(mockMemberContext.getServiceName());
+                double memoryConsumption = MockHealthStatistics.getInstance().getStatistics(
+                        mockMemberContext.getServiceName(), MockAutoscalingFactor.MemoryConsumption);
+                double loadAvereage = MockHealthStatistics.getInstance().getStatistics(
+                        mockMemberContext.getServiceName(), MockAutoscalingFactor.LoadAverage);
 
-                    double memoryConsumption = MockHealthStatistics.getInstance().getStatistics(
-                            mockMemberContext.getServiceName(), MockAutoscalingFactor.MemoryConsumption);
-                    double loadAvereage = MockHealthStatistics.getInstance().getStatistics(
-                            mockMemberContext.getServiceName(), MockAutoscalingFactor.LoadAverage);
-
-                     if (log.isDebugEnabled()) {
-                        log.debug(String.format("Publishing memory consumption: [member-id] %s [value] %f",
-                                mockMemberContext.getMemberId(), memoryConsumption));
-                    }
-                    statsPublisher.publish(
-                            mockMemberContext.getClusterId(),
-                            mockMemberContext.getInstanceId(),
-                            mockMemberContext.getNetworkPartitionId(),
-                            mockMemberContext.getMemberId(),
-                            mockMemberContext.getPartitionId(),
-                            MEMORY_CONSUMPTION,
-                            memoryConsumption
-                    );
+                if (log.isDebugEnabled()) {
+                    log.debug(String.format("Publishing memory consumption: [member-id] %s [value] %f",
+                            mockMemberContext.getMemberId(), memoryConsumption));
+                }
+                statsPublisher.publish(
+                        mockMemberContext.getClusterId(),
+                        mockMemberContext.getInstanceId(),
+                        mockMemberContext.getNetworkPartitionId(),
+                        mockMemberContext.getMemberId(),
+                        mockMemberContext.getPartitionId(),
+                        MEMORY_CONSUMPTION,
+                        memoryConsumption
+                );
 
-                    if (log.isDebugEnabled()) {
-                        log.debug(String.format("Publishing load average: [member-id] %s [value] %f",
-                                mockMemberContext.getMemberId(), loadAvereage));
-                    }
-                    statsPublisher.publish(
-                            mockMemberContext.getClusterId(),
-                            mockMemberContext.getInstanceId(),
-                            mockMemberContext.getNetworkPartitionId(),
-                            mockMemberContext.getMemberId(),
-                            mockMemberContext.getPartitionId(),
-                            LOAD_AVERAGE,
-                            loadAvereage
-                    );
-                } finally {
-                    MockHealthStatistics.getInstance().releaseReadLock(mockMemberContext.getServiceName());
+                if (log.isDebugEnabled()) {
+                    log.debug(String.format("Publishing load average: [member-id] %s [value] %f",
+                            mockMemberContext.getMemberId(), loadAvereage));
                 }
+                statsPublisher.publish(
+                        mockMemberContext.getClusterId(),
+                        mockMemberContext.getInstanceId(),
+                        mockMemberContext.getNetworkPartitionId(),
+                        mockMemberContext.getMemberId(),
+                        mockMemberContext.getPartitionId(),
+                        LOAD_AVERAGE,
+                        loadAvereage
+                );
             } else if (log.isWarnEnabled()) {
                 log.warn("Statistics publisher is disabled");
             }