Uses of Interface
com.eqixiac.equinix.design.spi.DesignContext
Packages that use DesignContext
Package
Description
The built-in hard limits of the Metro Optimizer: one small, pure
Constraint per field of
DesignConstraints, plus the workload rules, the
single-currency budget and the every-metro-used rule.Pricing of candidate designs:
RateCardCostModel is the
CostModel the Metro Optimizer uses, pricing each metro's
needs from a RateCard with every line's source and a range from
PriceBands.The built-in objectives of the Metro Optimizer: latency, cost, provider coverage, resilience and
compliance.
The facts of a Metro Optimizer run:
CatalogDesignContext
(an in-memory DesignContext with a builder),
FabricCatalogLoader (builds one from live Fabric
data, read-only) and ProviderCatalog (which metros
each cloud is reachable from).Workload placement on a chosen set of metros:
WorkloadPlacer
decides where each workload runs (honouring pinnedMetro, per-workload maxLatencyMs and
cloud reachability) and which cloud connections that implies, as a
PlacementPlan.Failure analysis of a design.
Extension points of the design engines.
Sustainability plug-ins for the design engines.
-
Uses of DesignContext in com.eqixiac.equinix.design.constraint
Methods in com.eqixiac.equinix.design.constraint with parameters of type DesignContextModifier and TypeMethodDescriptionbooleanComplianceZonesConstraint.admits(MetroFacts metro, DesignContext context) booleanExcludedMetrosConstraint.admits(MetroFacts metro, DesignContext context) booleanExcludedRegionsConstraint.admits(MetroFacts metro, DesignContext context) booleanGeoZonesConstraint.admits(MetroFacts metro, DesignContext context) BudgetConstraint.check(MetroPortfolio portfolio, DesignContext context) ComplianceZonesConstraint.check(MetroPortfolio portfolio, DesignContext context) EveryMetroUsedConstraint.check(MetroPortfolio portfolio, DesignContext context) ExcludedMetrosConstraint.check(MetroPortfolio portfolio, DesignContext context) ExcludedRegionsConstraint.check(MetroPortfolio portfolio, DesignContext context) GeoZonesConstraint.check(MetroPortfolio portfolio, DesignContext context) MaxSiteLatencyConstraint.check(MetroPortfolio portfolio, DesignContext context) MetroCountConstraint.check(MetroPortfolio portfolio, DesignContext context) MinimumRedundancyConstraint.check(MetroPortfolio portfolio, DesignContext context) PinnedWorkloadsConstraint.check(MetroPortfolio portfolio, DesignContext context) RequiredCloudsConstraint.check(MetroPortfolio portfolio, DesignContext context) RequiredMetrosConstraint.check(MetroPortfolio portfolio, DesignContext context) RequiredRegionsConstraint.check(MetroPortfolio portfolio, DesignContext context) WorkloadLatencyConstraint.check(MetroPortfolio portfolio, DesignContext context) -
Uses of DesignContext in com.eqixiac.equinix.design.cost
Methods in com.eqixiac.equinix.design.cost with parameters of type DesignContextModifier and TypeMethodDescriptionstatic CostComparabilityCostComparability.assess(Collection<MetroPortfolio> feasible, DesignContext context, double costWeight) Assesses a set of feasible designs.static GrowthPlannerGrowthPlanner.forSpec(DesignSpec spec, MetroPortfolio portfolio, DesignContext context, RateCard rateCard, ReferenceRateCard providerFees) Plans a design.static GrowthPlannerGrowthPlanner.forSpec(DesignSpec spec, MetroPortfolio portfolio, DesignContext context, RateCard rateCard, ReferenceRateCard providerFees, CurrencyConverter converter) Plans a design with a converter for prices in other currencies (ranked below rates pinned in the spec and above the default sources; seeCurrencyConverters).voidRateCardCostModel.prepare(Collection<MetroPortfolio> portfolios, DesignContext context) Prices, in one batch, every distinct item these portfolios need that has not been priced yet: each (item, metro, bandwidth, term) once, on a small bounded pool (RateCardCostModel.Builder.prefetch(int, Duration, int)).RateCardCostModel.price(MetroPortfolio portfolio, DesignContext context) -
Uses of DesignContext in com.eqixiac.equinix.design.objective
Methods in com.eqixiac.equinix.design.objective with parameters of type DesignContextModifier and TypeMethodDescriptionComplianceObjective.evaluate(MetroPortfolio portfolio, DesignContext context) CostObjective.evaluate(MetroPortfolio portfolio, DesignContext context) LatencyObjective.evaluate(MetroPortfolio portfolio, DesignContext context) ProviderCoverageObjective.evaluate(MetroPortfolio portfolio, DesignContext context) ResilienceObjective.evaluate(MetroPortfolio portfolio, DesignContext context) ComplianceObjective.scale(DesignContext context) A percentage is its own score.CostObjective.scale(DesignContext context) Scored by ratio to the cheapest feasible design: 7% dearer scores about 93, twice as dear 50.LatencyObjective.scale(DesignContext context) A fixed scale: 0 ms scores 100 and the spec's latency ceiling scores 0, or 200.0 ms round trip when the spec states none (an SDK assumption: about where interactive traffic stops feeling local).ProviderCoverageObjective.scale(DesignContext context) A percentage is its own score.ResilienceObjective.scale(DesignContext context) A percentage is its own score. -
Uses of DesignContext in com.eqixiac.equinix.design.optimizer.context
Classes in com.eqixiac.equinix.design.optimizer.context that implement DesignContextModifier and TypeClassDescriptionfinal classTheDesignContextof one Metro Optimizer run: the metro catalogue, Fabric's measured metro-to-metro round trips, cloud reachability per metro and the cost model, held in memory and never changed afterCatalogDesignContext.Builder.build(). -
Uses of DesignContext in com.eqixiac.equinix.design.placement
Methods in com.eqixiac.equinix.design.placement with parameters of type DesignContextModifier and TypeMethodDescriptionstatic PlacementPlanWorkloadPlacer.place(MetroPortfolio portfolio, DesignContext context) static doubleWorkloadPlacer.weightedLatency(MetroId metro, DesignContext context) static OptionalDoubleWorkloadPlacer.worstSiteLatency(MetroId metro, DesignContext context) -
Uses of DesignContext in com.eqixiac.equinix.design.resilience
Methods in com.eqixiac.equinix.design.resilience with parameters of type DesignContextModifier and TypeMethodDescriptionstatic ResilienceReportResilienceAnalyzer.analyze(DesignContext context, MetroPortfolio metros, ResilienceOptions options) The analysis itself, pure: no I/O, deterministic apart fromtimingsMs.static DesignGraphDesignGraphBuilder.build(DesignContext context, MetroPortfolio portfolio, PlacementPlan plan, ResilienceOptions options, List<PeerPresence> peers) Builds the graph.static DesignGraphDesignGraphBuilder.build(DesignContext context, MetroPortfolio portfolio, ResilienceOptions options) Builds the graph, placing the workloads withWorkloadPlacer.FailoverGeoZonesConstraint.check(MetroPortfolio portfolio, DesignContext context) MinSurvivalConstraint.check(MetroPortfolio portfolio, DesignContext context) SimulatedResilienceObjective.evaluate(MetroPortfolio portfolio, DesignContext context) static ResilienceAnalyzerResilienceAnalyzer.forContext(DesignContext context) Analyses over facts already gathered (no network unless the optimiser has to price and the context has no cost model).static N1SurvivalN1Survival.of(MetroPortfolio portfolio, DesignContext context, ResilienceOptions options) Builds the portfolio's graph (placing workloads with theWorkloadPlacer) and simulates every single-element failure.SimulatedResilienceObjective.scale(DesignContext context) A percentage is its own score. -
Uses of DesignContext in com.eqixiac.equinix.design.spi
Methods in com.eqixiac.equinix.design.spi that return DesignContextModifier and TypeMethodDescriptionSolveProblem.context()Returns the value of thecontextrecord component.Methods in com.eqixiac.equinix.design.spi with parameters of type DesignContextModifier and TypeMethodDescriptiondefault booleanConstraint.admits(MetroFacts metro, DesignContext context) Cheap per-metro pruning before portfolios are formed.CandidateGenerator.candidates(DesignContext context) Constraint.check(MetroPortfolio portfolio, DesignContext context) Checks a whole portfolio.Objective.evaluate(MetroPortfolio portfolio, DesignContext context) Measures a portfolio.default voidCostModel.prepare(Collection<MetroPortfolio> portfolios, DesignContext context) Prices ahead of time whatCostModel.price(MetroPortfolio, DesignContext)will need for these portfolios, so later calls answer from memory.CostModel.price(MetroPortfolio portfolio, DesignContext context) default ValueScaleObjective.scale(DesignContext context) How this objective's values become 0..100 scores for the weighted ranking.Constructors in com.eqixiac.equinix.design.spi with parameters of type DesignContextModifierConstructorDescriptionSolveProblem(DesignContext context, List<MetroFacts> candidates, List<Objective> objectives, List<Constraint> constraints, Map<String, Double> weights, int minMetros, int maxMetros) Validates the sizes and makes the collections immutable. -
Uses of DesignContext in com.eqixiac.equinix.design.sustainability
Methods in com.eqixiac.equinix.design.sustainability with parameters of type DesignContextModifier and TypeMethodDescriptionCarbonObjective.evaluate(MetroPortfolio portfolio, DesignContext context)