Delay

Time in transit. Input and output.

How it works#

The Delay holds each entity for a time and then passes it on. It stands for anything that takes time without being a resource: a network hop, a conveyor, a courier, a lead time between two stages. Left alone, the time is the same for every entity; choose a Distribution and it varies around the latency you set.

Unlike a server, a delay has no capacity limit and nothing waits in front of it. It accepts every entity the moment it arrives, however many are already in flight, and each one leaves when its own time is up. It adds time to the cycle but never creates a queue.

Under the default, Deterministic, every entity leaves exactly one latency after it arrived, so entities leave in the order they arrived. With a random latency they can overtake each other: a later arrival may draw a shorter time and leave first. Because the delay still carries every entity at once, a delay with a random latency models an infinite-server station — self-service, think time, a transfer whose duration varies. When the time should grow with the number of entities being held, use a Shared Server instead.

A delay is passive on its input and active on its output: it is fed like a queue, and it pushes onward like a generator. So it can follow a generator, a server, a router, a shared server, an Acquire, a Release or another delay, and hand on to a queue, a router, a shared server, an Acquire, a Release or another delay — but a server cannot pull from it. To serve what comes out of a delay, put a queue between them.

A delay must have an incoming connection. Its outgoing side is optional: with nothing connected, entities count as completed when their latency is up, so a delay can be the exit from a model. A delay does not wait at a full queue: an entity the queue has no room for is dropped at once and counted against the delay.

Settings#

Latencyseconds — default 1
How long an entity is held before it is passed on. Fixed by default: every entity waits exactly this long. When a distribution other than Deterministic is chosen, it is the mean time an entity spends in the delay.
Distributiondefault Deterministic
How the times entities spend in the delay are spread around the latency: Deterministic, Exponential, Uniform, Erlang or Lognormal. Deterministic holds every entity for exactly the latency.
Spreadshare of the mean, 0 to 1 — default 0.5
Shown when the distribution is Uniform. How far either side of the latency a time can fall.
Stagesexponential stages, 1 to 100 — default 2
Shown when the distribution is Erlang. More stages, less variation.
Variabilitystandard deviation over the mean, 0.1 to 10 — default 1
Shown when the distribution is Lognormal. The coefficient of variation of the times.

Latency can be changed while the simulation runs. So can Spread, Stages and Variability; the distribution itself is fixed for the length of a run. Under Deterministic the latency is constant, so a delay shifts the cycle time histogram to the right without making it any wider; under any other distribution it widens it too. Distributions describes each one and what its shape setting does.

Statistics#

  • Entities in flight — how many entities the delay held on average over the chart window. By Little's law it settles at the rate entities arrive multiplied by the latency.
  • Entity rate — entities passed on and entities dropped per second over time. Drops here mean the queue after the delay was full.