org.apache.storm.scheduler.resource.strategies.scheduling

## Class ObjectResourcesItem

- java.lang.Object
- - org.apache.storm.scheduler.resource.strategies.scheduling.ObjectResourcesItem

-     public class ObjectResourcesItem
      extends Object

  class to keep track of resources on a rack or node.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `NormalizedResourceOffer` | `availableResources`
    `double` | `avgResourcePercent` Amongst all `availableResources`, this is the average ratio of resource to the total available in group.
    `String` | `id`
    `double` | `minResourcePercent` Amongst all `availableResources`, this is the minimum ratio of resource to the total available in group.
    `NormalizedResourceOffer` | `totalResources`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ObjectResourcesItem(ObjectResourcesItem other)`
    `ObjectResourcesItem(String id)`
    `ObjectResourcesItem(String id, NormalizedResourceOffer availableResources, NormalizedResourceOffer totalResources, double minResourcePercent, double avgResourcePercent)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `add(ObjectResourcesItem other)`
    `String` | `toString()`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### id

          public final String id

    - #### availableResources

          public NormalizedResourceOffer availableResources

    - #### totalResources

          public NormalizedResourceOffer totalResources

    - #### minResourcePercent

          public double minResourcePercent

      Amongst all `availableResources`, this is the minimum ratio of resource to the total available in group. Note that nodes are grouped into hosts. Hosts into racks. And racks are grouped under the cluster.

      An example of this calculation is in `NodeSorter#sortObjectResourcesCommon(ObjectResourcesSummary, ExecutorDetails, NodeSorter.ExistingScheduleFunc)` where value is calculated by `ObjectResourcesSummary.getAvailableResourcesOverall()` using `NormalizedResourceOffer.calculateMinPercentageUsedBy(NormalizedResourceOffer)`.

    - #### avgResourcePercent

          public double avgResourcePercent

      Amongst all `availableResources`, this is the average ratio of resource to the total available in group. Note that nodes are grouped into hosts, hosts into racks, and racks are grouped under the cluster.

      An example of this calculation is in `NodeSorter#sortObjectResourcesCommon(ObjectResourcesSummary, ExecutorDetails, NodeSorter.ExistingScheduleFunc)` where value is calculated by `ObjectResourcesSummary.getAvailableResourcesOverall()` using `NormalizedResourceOffer.calculateAveragePercentageUsedBy(NormalizedResourceOffer)`.

  - ### Constructor Detail

    - #### ObjectResourcesItem

          public ObjectResourcesItem(String id)

    - #### ObjectResourcesItem

          public ObjectResourcesItem(ObjectResourcesItem other)

    - #### ObjectResourcesItem

          public ObjectResourcesItem(String id,
                                     NormalizedResourceOffer availableResources,
                                     NormalizedResourceOffer totalResources,
                                     double minResourcePercent,
                                     double avgResourcePercent)

  - ### Method Detail

    - #### add

          public void add(ObjectResourcesItem other)

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `Object`

Copyright © 2021 The Apache Software Foundation. All rights reserved.