Skip to content

feat: [2322] Dashboard data store - Chart performance - #2324

Open
n-lark wants to merge 2 commits into
249-data-storefrom
2322-data-store-charts
Open

n-lark wants to merge 2 commits into
249-data-storefrom
2322-data-store-charts

Conversation

@n-lark

@n-lark n-lark commented Oct 20, 2026 •

Copy link
Copy Markdown
Contributor

Description

Covers problems 1 and 3 of #2322; problem 2 (flow writes) follows in a separate PR.

Every chart point was a proxy, so filters read points through proxies and every 60th trim re-cloned the series. Now points are stored plain and wrapped only when read, as Vue 3 does, and trims are exact on every message without cloning. Other values are unchanged.

µs, 4 lines main Before After
Time window, 1,000/line 46 230 45
Time window, 5,000/line 127 1,567 229
Point limit, 5,000/line 1,308 1,141 449
Both limits, 5,000/line 1,477 2,060 665
Page load, 5,000/line 11,637 29,891 12,639

Contract changes

  • A stored message's _datapoint is the same object as the chart's point, not the same proxy. Writes are still reported; match points by value, not ===.
  • filter / keepLatestPerTopic callbacks get plain points, so changing them isn't reported (as on main). No third-party widget calls filter.

Test plan

  • Harness also checks each chart's value matches its messages' points
  • Breaking each part of the change fails a spec (14 checks)
  • Benchmarks against main
  • Live Node-RED against main: same page-load data and reload for point-limit, time-window and categorical charts, text and gauge
  • Flow reads and writes through function and change nodes, exact limits and windows

Related Issue(s)

Part of #2322

Checklist

  • I have read the contribution guidelines
  • Suitable unit/system level tests have been added and they pass
  • Documentation has been updated
    • Upgrade instructions
    • Configuration details
    • Concepts
  • Changes flowforge.yml?
    • Issue/PR raised on FlowFuse/helm to update ConfigMap Template
    • Issue/PR raised on FlowFuse/CloudProject to update values for Staging/Production
  • Link to Changelog Entry PR, or note why one is not needed.

Labels

  • Includes a DB migration? -> add the area:migration label

@n-lark n-lark self-assigned this Oct 20, 2026
@n-lark
n-lark changed the base branch from main to 249-data-store October 20, 2026 20:28
@n-lark
n-lark force-pushed the 2322-data-store-charts branch from b456397 to 61059c4 Compare October 21, 2026 21:49
@n-lark n-lark changed the title feat: [2322] Dashboard data store - Chart performance and flow writes to charts feat: [2322] Dashboard data store - Chart performance Oct 21, 2026
@n-lark
n-lark requested a review from cstns October 21, 2026 22:04
@n-lark
n-lark marked this pull request as ready for review October 21, 2026 22:04
@n-lark
n-lark added this pull request to stack #2331 October 22, 2026 20:50

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Dashboard data store - Chart performance and flow writes to charts

1 participant