ResolutionRung
Namespace: Meshmakers.Octo.Runtime.Contracts.StreamData
One candidate archive in a series' resolution family — either the base archive (raw or
time-range) or one of its rollups. The SeriesResolutionPlanner reasons purely over a list
of these to pick the archive to query. See concept-resolution-aware-series-queries.md §4.
public record ResolutionRung : IEquatable<ResolutionRung>
Inheritance Object → ResolutionRung
Implements IEquatable<ResolutionRung>
Properties
ArchiveRtId
The archive entity id to query if this rung is chosen.
public OctoObjectId ArchiveRtId { get; set; }
Property Value
OctoObjectId
GrainMs
The rung's native bucket width in milliseconds — a rollup's BucketSize, or a
time-range base archive's Period. null when the grain is unknown (a raw archive, or
a time-range archive whose advisory Period is unset); such a rung is treated as "finest,
unknown resolution".
public Nullable<long> GrainMs { get; set; }
Property Value
Alignment
Bucket alignment. BucketAlignment.FixedSize means ResolutionRung.GrainMs fully determines the width; calendar variants derive an effective width from the wall clock (and the reference time zone) instead.
public BucketAlignment Alignment { get; set; }
Property Value
StoredFunctionsForSeries
All aggregation functions this rung stores for the requested series' column — a rollup may carry several aggregations on the same source path (AB#4188), e.g. AVG and MAX side by side. Empty for a base archive (which stores no aggregation) or when the rung does not aggregate the requested path. A rollup rung is a valid reduction source only when this contains the caller's requested aggregation.
public IReadOnlyCollection<CkRollupFunction> StoredFunctionsForSeries { get; set; }
Property Value
IReadOnlyCollection<CkRollupFunction>
IsBase
True for the base archive (raw or time-range) the rollups are derived from; false for rollups. The base is never reduced by the resolver (decision O2-followup) — it is returned unreduced when no compatible rollup exists, or when its native data already fits the requested point count.
public bool IsBase { get; set; }
Property Value
ReferenceTimeZone
IANA time-zone id used to align calendar buckets (day/month/year) to local wall-clock
boundaries. null ⇒ UTC. Only consulted for calendar ResolutionRung.Alignment variants.
(AB#4290 Phase 4 / decision O6.)
public string ReferenceTimeZone { get; set; }
Property Value
AvailableFrom
Measured earliest timestamp this rung actually holds data for (AB#5157) —
ArchiveCoverage.AvailableFrom as probed from the storage layer. null when the
rung has no data (no table, no rows) or coverage was not probed at all. The planner reads
this field to drop rungs that cannot serve the requested start; when no rung in the family
reports coverage the filter is inert and the pre-AB#5157 plan is returned unchanged.
public Nullable<DateTime> AvailableFrom { get; set; }
Property Value
AvailableTo
Measured latest timestamp this rung holds data for (AB#5157) —
ArchiveCoverage.AvailableTo. null under the same conditions as
ResolutionRung.AvailableFrom. Carried for diagnostics and client display only; the planner
deliberately does not consider the requested end, so a rung whose coverage ends before it
stays eligible.
public Nullable<DateTime> AvailableTo { get; set; }
Property Value
Constructors
ResolutionRung(OctoObjectId, Nullable<Int64>, BucketAlignment, IReadOnlyCollection<CkRollupFunction>, Boolean)
One candidate archive in a series' resolution family — either the base archive (raw or
time-range) or one of its rollups. The SeriesResolutionPlanner reasons purely over a list
of these to pick the archive to query. See concept-resolution-aware-series-queries.md §4.
public ResolutionRung(OctoObjectId ArchiveRtId, Nullable<long> GrainMs, BucketAlignment Alignment, IReadOnlyCollection<CkRollupFunction> StoredFunctionsForSeries, bool IsBase)
Parameters
ArchiveRtId OctoObjectId
The archive entity id to query if this rung is chosen.
GrainMs Nullable<Int64>
The rung's native bucket width in milliseconds — a rollup's BucketSize, or a
time-range base archive's Period. null when the grain is unknown (a raw archive, or
a time-range archive whose advisory Period is unset); such a rung is treated as "finest,
unknown resolution".
Alignment BucketAlignment
Bucket alignment. BucketAlignment.FixedSize means ResolutionRung.GrainMs fully
determines the width; calendar variants derive an effective width from the wall clock (and the
reference time zone) instead.
StoredFunctionsForSeries IReadOnlyCollection<CkRollupFunction>
All aggregation functions this rung stores for the requested series' column — a rollup may carry
several aggregations on the same source path (AB#4188), e.g. AVG and MAX side by side. Empty for
a base archive (which stores no aggregation) or when the rung does not aggregate the requested
path. A rollup rung is a valid reduction source only when this contains the caller's requested
aggregation.
IsBase Boolean
True for the base archive (raw or time-range) the rollups are derived from; false for rollups.
The base is never reduced by the resolver (decision O2-followup) — it is returned unreduced when
no compatible rollup exists, or when its native data already fits the requested point count.