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

Remove Unnecessary Locks Inside Of ServiceComponent Business Object Implementations

    XMLWordPrintableJSON

Details

    • Task
    • Status: Resolved
    • Critical
    • Resolution: Fixed
    • 2.5.0
    • 2.5.0
    • ambari-server
    • 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

              jonathanhurley Jonathan Hurley
              jonathanhurley Jonathan Hurley
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: