Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Fairshare is a tree.  There are fairshare groups and entities (e.g., users).  A job belongs to one entity.  Each fairshare group has children which can be either another fairshare group or an entity.  All entities don't have to be at the same level.  For example, root can have 3 children which are two groups and one entity.  The two groups will have entities within them.  Each group or entity has a number of shares assigned to them.  This is a relative percentage between the siblings of that group.  The relative percentage between siblings times the parents fairshare_perc is the entity/group's fairshare_perc.  The shares are turned into a fairshare target(fairshare_perc) which is a percentage number between 0 and 1.  If you add up all the fairshare_percs targets of all of the entities, you will reach 100%.

...

The most deserving entity is determined by walking the tree.  At each level in the tree, the most deserving group is chosen, and we descend to its children and continue on until we reach an entity.  The most deserving group/entity is a function of the fairshare_perc target and the usage.  What does this mean?  It means that low usage entities in high usage groups will be negatively affected by its sibling entities/groups.

...