Skip to content
On this page

Jump Event Types Object Reference

Demand

This Demand object defines a change to service demand.

json
  {
    "EventId": 1,
    "EventType":"Demand",
    "TriggerTime": 2,
    "DemandType": "AbsTransitory",
    "DemandPercent": 20,
    "TransitoryDurationMonths": 2,
  }

 

TIP

The code block above represents a 20% jump in demand, at 2 years, which is reversed 2 months later because the demand spike is consider transitory (e.g., a special event).

Attributes

EventId - integer - required
Unique number to identify jump event.
EventType - string - required
Jump Event object of type Demand.
TriggerTime - numeric - required
Future time in time-series when jump event is invoked.
DemandType - string - required
Type of demand change.
Demand Change Type Codes
CodeDescription
GrowthPercentModifies the continuous service demand percentage in the ServiceDemandGrowthPercent property.
AbsPermanentA one-time, permanent change to absolute service demand. This shifts demand but doesn't change the ServiceDemandGrowthPercent value.
AbsTransitoryA one-time, transitory change to absolute service demand. Zypr automatically adds a second Jump Event to reverse the first Jump Event per the duration specified in the TransitoryDurationMonths property.
TransitoryDurationMonths - numeric - conditionally required
Time when absolute transitory change event is reversed. Valid only when DemandDemandType property is 'AbsTransitory'.

 

Configuration

This Configuration object modifies the NewServerConfiguration object. All racks or servers added at, or after, the trigger time will have this configuration. This object will be validated for consistency with the LotUnit property in the EvolutionRules object.

TIP

To change the performance rating of this new server configuration, add a Performance jump event with PerformanceType property set to 'Server' with the same trigger time.

 

This code block changes the configuration of inventory for a 'Server' lot unit.

json
  {
    "EventId": 2,
    "EventType": "Configuration",
    "TriggerTime": 2.25,
    "ServerCost": 10000,
    "ServerWatts": 435,
    "ServerSize": 1,
    "ProcessorSetSize": 2,
    "CoreSetSize": 12
  }

 

This code block changes the configuration of inventory for a 'Rack' lot unit.

json
  {
    "EventId": 2,
    "EventType": "Configuration",
    "TriggerTime": 2.25,
    "RackSize":  42, 
    "RackServerQty":  42,
    "RackCost": 420000, 
    "ServerWatts": 435,
    "ServerSize": 1,
    "ProcessorSetSize": 2,
    "CoreSetSize": 12
  }

 

Attributes

EventId - integer - required
Unique number to identify jump event.
EventType - string - required
Jump Event object of type Configuration.
TriggerTime - numeric - required
Future time in time-series when jump event is invoked.
RackSize - integer - optional
Quantity of available rack units using rack unit 'U' rating.
RackServerQty - integer - optional
Quantity of servers that populate the rack.#
RackCost - integer - optional
Unit cost of a populated rack added to inventory.
ServerCost - numeric - optional
Unit cost of server added to inventory.
ServerWatts - integer - required
Electrical power consumption rating in watts.
ServerSize - integer - required
Represents a "rack unit." Valid values are 1,2,4.
ProcessorSetSize - integer - required
Quantity of physical processors contained in a server's cpu socket.
CoreSetSize - integer - required
Quantity of cores contained in physical processor.

 

Performance

This Performance object defines a change to server performance.

json
  {
    "EventId": 1,
    "EventType":"Performance",
    "TriggerTime": 2,
    "PerformanceType": "Server",
    "PerformanceJumpPercent": 100,
  }

 

INFO

The code example represents a 100% jump in performance at 2 years from the model run date. All new servers added at 2 years and later will have this performance rating, unless a subsequent performance jump event exists.

Attributes
EventId - integer - required
Unique number to identify jump event.
EventType - string - required
Jump Event object of type Performance.
EventId - integer - required
Unique number to identify jump event.
TriggerTime - numeric - required
Future time in time-series when jump event is invoked.
PerformanceType - string - required
Scope of performance change.
Performance Type Codes
CodeDescription
ServerModifies the performance rating of a new server added to pool.
PoolModifies the performance rating of all existing servers in pool.

TIP

Jumps in performance to entire pool may arise from network or storage upgrades or adoption that improve throughput or latency, or adoption of new architectures, such incorporating DPUs or GPUs, that offload work.

PerformanceJumpPercent - numeric - optional
Percentage to adjust server performance/efficiency rating in ServerUnitCapacity property.

 

Process

This Process object injects an interval into the evolution process (and therefore the time-series output) at the trigger time with no required state change. Three properties provide options by which certain transactional server inventory behavior may be introduced.

json
  {
    "EventId": 6,
    "EventType": "Process",
    "TriggerTime": 1.75,
    "AttemptServerReplacement": false,
    "ReplacePercentageOfServers": null,
    "IgnoreReplacementExchangeRate": false,
  }

 

INFO

The code block above does nothing other than trigger a new interval.

Attributes

EventId - integer - required
Unique number to identify jump event.
EventType - string - required
Jump Event object of type Process.
TriggerTime - numeric - required
Future time in time-series when jump event is invoked.
AttemptServerReplacement - boolean - optional
Instructs simulation engine to attempt forcing a target server replacement rate at trigger time. Default value is false;
ReplacePercentageOfServers - numeric - optional
Percentage of servers to replace. Reaching the desired percentage is not guaranteed.
IgnoreReplacementExchangeRate - boolean - optional
Feasible remove/add transactions only occur if the exchange is deemed beneficial. A value set to 'true', will ignore this rule.

 

Utilization Boundaries

This UtilizationBoundaries object modifies the upper and/or lower percent in the EvolutionRules object.

Utilization Boundary Change Rules

  • New lower boundary percent must be greater than or equal to existing lower boundary percent
  • New upper boundary must be greater than the new lower boundary percent.

 

json
  {
    "EventId": 1,
    "EventType":"UtilizationBoundaries",
    "TriggerTime": 1.00,
    "PoolUtilizationBoundaryPercentLower": 63.5,
    "PoolUtilizationBoundaryPercentUpper": 65.5,
    "RemoveServers": true
  }

Attributes

EventId - integer - required
Unique number to identify jump event.
EventType - string - required
Jump Event object of type UtilizationBoundaries.
TriggerTime - numeric - required
Future time in time-series when jump event is invoked.
ServerUtilizationPercentBase - numeric - required
Targeted aggregate minimum utilization percent for pool.
ServerUtilizationPercentPeak - numeric - required
Targeted aggregate maximum utilization percent for pool.
RemoveServers - boolean - optional
Attempt to remove excess capacity from pool if boundary change results in negative incremental capacity requirement for interval. Default is false.

What's a negative incremental capacity requirement?

The duration of every time interval Zypr creates is maximally bound by lower and upper utilization rates with respect to demand growth. However, the length of this duration is not guaranteed. Other jump events may exist that shorten an interval's duration in order to accept an injection of state change to the pool.

Whatever the duration, Zypr calculates how much incremental capacity is required to satisfy future demand for the time interval.

A negative incremental capacity requirement occurs when the additional capacity available, caused by an upward utilization boundary shift, exceeds the expected service demand growth for the expected time interval.

TIP

Shifting utilization boundaries upward has the effect of making more capacity available within the pool that, conceptually, should result in delaying when additional capacity is added to a pool. That is one feasible solution among many, and not necessarily the lowest cost solution available.

When the simulation type is 'OptimalYield', Zypr will evaluate other solutions that involve add/remove transactions, which modify server unit balances at, and around, the trigger time of this jump event.

If the objective is let excess capacity "run-out" until reaching the new, higher upper utilization rate boundary, try setting a constraint that doesn't permit server inventory balance to decrease until the time interval triggered by this jump event completes.

 

Software Stack Add

This SoftwareStackAdd object adds one or more software items to the software stack registry.

json
  {
    "EventId": 1,
    "EventType": "SoftwareStackAdd",
    "TriggerTime": 2.0,
    "LicenseIds": [5]
  }

 

INFO

The code block above adds SoftwareItemTerms object, for LicenseId 5, to the software stack at 2 years.

Attributes

EventId - integer - required
Unique number to identify jump event.
EventType - string - required
Jump Event object of type SoftwareStackAdd.
TriggerTime - numeric - required
Future time in time-series when jump event is invoked.
LicenseIds - integer list - required
One or more license ids.

WARNING

When adding software to the software stack registry, the license id must have a corresponding SoftwareItemTerms object in the SoftwareResources list.

Software Stack Remove

This SoftwareStackRemove object removes one or more software items from the software stack registry.

json
  {
    "EventId": 1,
    "EventType": "SoftwareStackRemove",
    "TriggerTime": 2.0,
    "LicenseIds": [2]
  }

 

INFO

The code example removes SoftwareItemTerms object, with LicenseId property value of 2, from the software stack at 2 years.

Attributes

EventId - integer - required
Unique number to identify jump event.
EventType - string - required
Jump Event object of type SoftwareStackRemove.
TriggerTime - numeric - required
Future time in time-series when jump event is invoked.
LicenseIds - integer list - required
One or more license ids.

 

Software Price Change

This SoftwarePriceChange object modifies the license fee only in the SoftwareItemTerms object.

json
  {
    "EventId": 1,
    "EventType":"SoftwarePriceChange",
    "TriggerTime": 1.5,
    "LicenseId":"4",
    "Fee": 750,
    "PerpetualSupportPercent": 28
  }

 

INFO

The code block above modifies the SoftwareItemTerms object for license id 4 at 1.5 years. Properties Fee and PerpetualSupportPercent may be changed from their original values.

Attributes

EventId - integer - required
Unique number to identify jump event.
EventType - string - required
Jump Event object of type SoftwarePriceChange.
TriggerTime - numeric - required
Future time in time-series when jump event is invoked.
LicenseId - integer - required
Unique number for identifying the specific license terms.
Fee - numeric - required
Amount paid per license. Fee may represent a one-time perpetual license fee, or annual price for a subscription.
PerpetualSupportPercent - numeric - optional
Percentage of one-time perpetual license fee that is paid annually.

Ravello Analytics, LLC