Uploaded image for project: 'Ambari'
  1. Ambari
  2. AMBARI-18603

Remove Unnecessary Locks Inside Of ServiceComponent Business Object Implementations

    Details

    • Type: Task
    • Status: Resolved
    • Priority: Critical
    • Resolution: Fixed
    • Affects Version/s: 2.5.0
    • Fix Version/s: 2.5.0
    • Component/s: ambari-server
    • Labels:
      None

      Description

      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)

        Attachments

        1. AMBARI-18603.patch
          91 kB
          Jonathan Hurley

          Issue Links

            Activity

              People

              • Assignee:
                jonathan.hurley Jonathan Hurley
                Reporter:
                jonathan.hurley Jonathan Hurley
              • Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: