Class AfterEventStationPool

java.lang.Object
jline.lang.state.AfterEventStationPool

public final class AfterEventStationPool extends Object
Event handler and state enumerator of a station with heterogeneous server pools, as rewritten for the CTMC by jline.solvers.ctmc.handlers.Solver_ctmc_pools. Port of MATLAB State.afterEventStationPool and State.fromMarginalPool.

The local state is [buffer | servers | local variables]. The buffer holds the WAITING jobs only (1-based class ids right-aligned, the rightmost is the oldest; per-class counts under SIRO), and the class-r server block holds one sub-block of phases per compatible pool. The semantics are those of LDES:

  • ARV: the candidates are the compatible pools with a free server. None: the job waits. Otherwise ORDER takes the lowest index, ALFS the least flexible pool, FSF the pool with the highest rate for the class (ties by index), RAIS each candidate with equal probability, and ALIS/FAIRNESS the first candidate of the rotating pool order, which then moves to the back when there was more than one candidate.
  • DEP: the freed server of pool t takes the first waiting job, in the discipline's service order, that pool t can serve.
  • PHASE: a transition inside the block of the job's pool.

Invariant: no waiting job has a free compatible server.

  • Method Summary

    Modifier and Type
    Method
    Description
    afterEventStationPool(NetworkStruct sn, int ind, int ist, Matrix inspace, EventType event, int jobClass, int R, int V, boolean isSimulation)
    Successors of EVENT for class JOBCLASS at pooled station IND (0-based).
    static Matrix
    Local states [buffer | servers | pool order] with marginal n at pooled station ind: every split of the jobs into in-service (per class and pool) and waiting ones such that no waiting job has a free compatible server, every phase assignment of the jobs in service, every order of the waiting jobs (per-class counts under SIRO), and every pool order index when the order rotates.
    static boolean
    isPooled(NetworkStruct sn, int ind)
    True when node ind is a pooled station of this (CTMC) struct.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Method Details

    • isPooled

      public static boolean isPooled(NetworkStruct sn, int ind)
      True when node ind is a pooled station of this (CTMC) struct.
    • afterEventStationPool

      public static Ret.EventResult afterEventStationPool(NetworkStruct sn, int ind, int ist, Matrix inspace, EventType event, int jobClass, int R, int V, boolean isSimulation)
      Successors of EVENT for class JOBCLASS at pooled station IND (0-based).
    • fromMarginalPool

      public static Matrix fromMarginalPool(NetworkStruct sn, int ind, Matrix n)
      Local states [buffer | servers | pool order] with marginal n at pooled station ind: every split of the jobs into in-service (per class and pool) and waiting ones such that no waiting job has a free compatible server, every phase assignment of the jobs in service, every order of the waiting jobs (per-class counts under SIRO), and every pool order index when the order rotates. The ordered buffer is max(1, min(sum(n), cap)) wide.