docs(index): OtOpcUa batch #681–#684 — Gateway per-sample from raw, advertised aggregates, QuestDB tag index, Good-only aggregates

This commit is contained in:
Joseph Doherty
2026-10-12 13:59:34 -04:00
parent aa7093b53b
commit 681606dad0
@@ -278,3 +278,17 @@ AddRoute of the dev Mac (`oee-tagdump-mac`, `10.181.206.245.1.1`) on the two tes
- **Follow-ups:** #681 (Gateway per-sample aggregates from raw), #682 (advertise per-backend aggregates), #683 - **Follow-ups:** #681 (Gateway per-sample aggregates from raw), #682 (advertise per-backend aggregates), #683
(QuestDB data-range lookup cost), #684 (Average/Min/Max include Uncertain). (QuestDB data-range lookup cost), #684 (Average/Min/Max include Uncertain).
- **ScadaBridge impact:** none — it issues no processed history reads. - **ScadaBridge impact:** none — it issues no processed history reads.
- **2026-10-12 batch #681–#684 (OtOpcUa `70fb1f1f`).** #682/#683/#684 closed; #681 open only for the live AVEVA leg
(VPN). Live gate 9 passed on docker-dev (both centrals); its one defect (a SqlServer plan cliff) was fixed before push.
- **#681 (Gateway):** the ten per-sample aggregates (incl. Average, Count) are back, computed from raw AVEVA reads by
the shared SQL-backend evaluator — same semantics as SqlServer/QuestDB. ⚠️ Min/Max now come from raw (were AVEVA
modes); reads are capped by `MaxTimeWeightedRawRows`. Every gateway stream is drained — an abandoned stream evicts
the gateway's shared historian session (historiangw#26).
- **#682:** `HistoryServerCapabilities/AggregateFunctions` lists only the backend's aggregates (SqlServer/QuestDB
17, Gateway 12, none without a historian); `ServerCapabilities/AggregateFunctions` keeps the SDK's 37. ⚠️ No
historian ⇒ processed reads `BadAggregateNotSupported` (was `GoodNoData`).
- **#683:** QuestDB `tag` SYMBOL indexed (added to existing tables at boot); SqlServer Start/End via a FORCESEEK PK
join-back (1 d @ 1 min 60 s timeout → 0.13 s on a long-history tag).
- **#684:** ⚠️ Average/Min/Max/Range/*ActualTime use Good samples only (Part 13); Uncertain values beyond the Good
extreme make Min/Max `Uncertain_DataSubNormal`.
- **ScadaBridge impact:** none — no processed history reads.