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

[jira] [Created] (AMBARI-18539) Remove Unnecessary Locks Inside Of Host Business Object Implementations

Jonathan Hurley created AMBARI-18539:
----------------------------------------

             Summary: Remove Unnecessary Locks Inside Of Host Business Object Implementations
                 Key: AMBARI-18539
                 URL: https://issues.apache.org/jira/browse/AMBARI-18539
             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


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 {{Host}} business object 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)