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/14 19:01:20 UTC
[jira] [Created] (AMBARI-18603) Remove Unnecessary Locks Inside Of
ServiceComponent Business Object Implementations
Jonathan Hurley created AMBARI-18603:
----------------------------------------
Summary: Remove Unnecessary Locks Inside Of ServiceComponent Business Object Implementations
Key: AMBARI-18603
URL: https://issues.apache.org/jira/browse/AMBARI-18603
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 {{ServiceComponent}} 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)