You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ambari.apache.org by "Hudson (JIRA)" <ji...@apache.org> on 2016/10/19 16:51:58 UTC

[jira] [Commented] (AMBARI-18495) Remove Unnecessary Locks Inside Of Cluster Business Object Implementations

    [ https://issues.apache.org/jira/browse/AMBARI-18495?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15589232#comment-15589232 ] 

Hudson commented on AMBARI-18495:
---------------------------------

FAILURE: Integrated in Jenkins build Ambari-trunk-Commit #5826 (See [https://builds.apache.org/job/Ambari-trunk-Commit/5826/])
AMBARI-18495 - Remove Unnecessary Locks Inside Of Cluster Business (jhurley: [http://git-wip-us.apache.org/repos/asf?p=ambari.git&a=commit&h=d53c9e2ee99c046ae5b37b531419549397f4aea1])
* (edit) ambari-server/src/test/java/org/apache/ambari/server/orm/dao/SettingDAOTest.java
* (edit) ambari-server/src/main/java/org/apache/ambari/server/controller/internal/UpgradeResourceProvider.java
* (edit) ambari-server/src/main/java/org/apache/ambari/server/state/cluster/ClusterImpl.java
* (edit) ambari-server/src/main/java/org/apache/ambari/server/utils/RetryHelper.java
* (edit) ambari-server/src/test/java/org/apache/ambari/server/state/cluster/ClusterTest.java
* (edit) ambari-project/pom.xml
* (edit) ambari-server/src/main/java/org/apache/ambari/server/state/Clusters.java
* (edit) ambari-server/src/test/java/org/apache/ambari/server/orm/OrmTestHelper.java
* (edit) ambari-server/src/test/java/org/apache/ambari/server/utils/StageUtilsTest.java
* (edit) ambari-server/src/test/java/org/apache/ambari/server/orm/dao/RepositoryVersionDAOTest.java
* (edit) ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariServer.java
* (edit) ambari-server/src/test/java/org/apache/ambari/server/agent/HeartbeatTestHelper.java
* (edit) ambari-server/src/test/java/org/apache/ambari/server/configuration/RecoveryConfigHelperTest.java
* (edit) ambari-server/src/test/java/org/apache/ambari/server/controller/KerberosHelperTest.java
* (edit) ambari-server/src/test/java/org/apache/ambari/server/state/cluster/ClusterDeadlockTest.java
* (edit) ambari-server/src/test/java/org/apache/ambari/server/state/ConfigHelperTest.java
* (edit) ambari-server/src/main/java/org/apache/ambari/server/state/Cluster.java
* (edit) ambari-server/src/test/java/org/apache/ambari/server/orm/dao/ClusterVersionDAOTest.java
* (edit) ambari-server/src/test/java/org/apache/ambari/server/orm/dao/WidgetLayoutDAOTest.java
* (edit) ambari-server/src/test/java/org/apache/ambari/server/agent/AgentResourceTest.java
* (edit) ambari-server/src/main/java/org/apache/ambari/server/state/cluster/ClustersImpl.java
* (edit) ambari-server/src/test/java/org/apache/ambari/server/state/ConfigGroupTest.java
* (edit) ambari-server/src/test/java/org/apache/ambari/server/agent/TestHeartbeatHandler.java
* (edit) ambari-server/src/test/java/org/apache/ambari/server/state/cluster/ClusterEffectiveVersionTest.java
* (edit) ambari-server/src/test/java/org/apache/ambari/server/agent/HeartbeatProcessorTest.java
* (edit) ambari-server/src/test/java/org/apache/ambari/server/orm/dao/ConfigGroupDAOTest.java
* (edit) ambari-server/src/test/java/org/apache/ambari/server/api/services/ClusterServiceTest.java
* (edit) ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ClusterResourceProviderTest.java
* (edit) ambari-server/src/test/java/org/apache/ambari/server/orm/dao/WidgetDAOTest.java
* (edit) ambari-server/src/test/java/org/apache/ambari/server/state/RequestExecutionTest.java


> Remove Unnecessary Locks Inside Of Cluster Business Object Implementations
> --------------------------------------------------------------------------
>
>                 Key: AMBARI-18495
>                 URL: https://issues.apache.org/jira/browse/AMBARI-18495
>             Project: Ambari
>          Issue Type: Task
>          Components: ambari-server
>    Affects Versions: 2.5.0
>            Reporter: Jonathan Hurley
>            Assignee: Jonathan Hurley
>            Priority: Critical
>             Fix For: 2.5.0
>
>         Attachments: AMBARI-18495.patch
>
>
> Many of the business object implementations include needless locks which simply add the overhead and contention in larger clusters. Some examples of these are :
> - HostImpl
> -- get/set DisksInfo()
> -- get/set TotalMemBytes()
> - ServiceComponentHostImpl
> -- get/set MaintenanceState()
> -- get/set LastOpLastUpdateTime()
> These types of methods are found on other business classes as well, like {{ClusterImpl}} and {{ServiceImpl}}. Additionally, methods like {{convertToResponse()}} and {{debugDump()}} need not acquire locks since they are used mostly for serialization of data to the web client where the data will then immediately become stale anyway.
> The {{Clusters}} and {{Cluster}} business objects should have the following work performed:
> - Remove locking around areas where its no longer required
> - Replace collections with thread-safe concurrent versions
> - Remove some reliance on state-full business objects (caches)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)