Loading
README: haf_stats disk footprint and sync-time data (refs #63)
Refs #63 (closed). This is the documentation half: the issue's first fix item. #63 (closed) stays open for its second item, a hivemind-parity guard that can run on a production node.
What it adds
A "Resource requirements" section in the README, before Quick Start. It was measured on 2026-10-23, read-only, on a full-history HAF 1.28.8 node (PostgreSQL 18.6) with haf_stats at head (block 111,019,709) and develop 4a43cf5 installed.
- Logical size: 254 GB (binary units, as
pg_size_prettyprints them), all inhaf_stats_backend(106 GB heap, 148 GB indexes). - Largest tables:
active_users_daily90 GB, 542 M rows;account_custom_json_daily78 GB, 561 M;account_financial_daily29 GB, 108 M;comment_registry28 GB, 133 M;- the other 30 tables 30 GB together.
- The other app schemas on the same node:
- hivemind_app 558 GB;
- haf_fyp_app 270 GB;
- hafbe_bal 84 GB;
- hafbe_app 80 GB;
- hivesense_app 61 GB;
- reptracker_app 27 GB.
- On-disk estimate: the database is 5.3 TiB logical and 2.6 TiB on that node's compressed ZFS dataset, about 2x for the database itself. If haf_stats compresses alike, it takes roughly 125 GB on disk.
- Growth:
active_users_dailygained about 40,000 rows a day over the last 30 days, at about 180 bytes a row including indexes. - Sync time, stated as what it is: no clean from-zero measurement exists.
- The one data point is a catch-up on that node: block 77.05 M to head (about 34 M blocks) in about 36 h, an average of roughly 0.95 M blocks an hour. It ran on an 8-core box shared with every other app, partly during another app's index build. The figures are from the session that rebuilt the node.
- The step-8 one-time backfills stay "unmeasured at mainnet scale", as
install_app.shalready says.
The 354 GB that #63 (closed) quotes (2026-09-04, another install) is noted as superseded.
Review
This is a docs-only change, so it got one fact-checking reviewer. It re-derived every figure on the same node:
- the sizes, row counts, growth rate, PostgreSQL version and block all held;
- it found three errors: a wrong average sync rate (1.1 M/h should be about 0.95 M/h), mixed decimal and binary units in the TB figures, and the dataset compression ratio (2.19x) used where the database's own (about 2.03x) applies. That ratio error put the on-disk estimate at 115 GB instead of about 125 GB.
All three are fixed in the second commit.
Edited by mcfarhat