Jonathan Hurley created AMBARI-18614:

             Summary: Remove Unnecessary Locks Inside Of SCH Business Object 
                 Key: AMBARI-18614
             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 {{ServiceComponentHost}} business object should have the following work 
- 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

Reply via email to