SPB Git forge
15commits 1branches 0releases
29.7 MBsize
maindefault branch
10 days agolast push
TypeScript 36.3% Python 31.8% Go 18% JavaScript 9.8% Shell 1.9% SQL 1.4% CSS 0.5%

docs: registry size, cadence, keep-forever retention

Simon-Pierre Boucher committed 12 days ago (Sep 12, 2026) parent a0eb033

2 changed files +9 −6

modified README.md +1 −1
@@ -12,7 +12,7 @@ Live: https://www.internetpressure.io · API: `/api/v1/*` (see `docs/API.md`) ·
12 12 | `apps/api` | Python package `internetpressure`: ingestion API, pressure engine, event engine, BGP ingestor, corroboration connectors, public/admin API, SSE |
13 13 | `services/probe-agent` | Go probe agent (HTTP/DNS/ICMP/traceroute, signed gzip batches, spool, self-update) |
14 14 | `packages/config/pressure.yaml` | weights, levels, engine & scheduler parameters |
15 | `data/` | region model, target registry seed (326 targets), services, probes |
15 +| `data/` | region model, target registry seed (2 128 targets, 165 services), services, probes |
16 16 | `infra/` · `deploy/` | Docker Compose stack, edge Caddy, deploy & probe scripts |
17 17 | `docs/` | SPEC (product), ARCHITECTURE, API, PROBE-PROTOCOL, DEPLOY |
18 18
modified docs/ARCHITECTURE.md +8 −5
@@ -65,9 +65,9 @@
65 65
66 66 ## Ethics & load
67 67
68 Per probe with 326 targets: ~7 HTTP/s, ~11 DNS/s (4 resolvers / 120 s), ~5 ICMP runs/s, ≤ 1 traceroute in flight (every 15 min
68 +Per probe with 2 128 targets (tiers 20 s / 45 s / 300 s): ~18 HTTP/s, ~14 DNS/s (4 resolvers / 600 s), ~18 ICMP runs/s (every 120 s), ≤ 1 traceroute in flight (every 15 min
69 69 for the 30 `tr: true` targets). Keep-alive disabled (to measure TCP/TLS), body read capped at 16 KiB, no retries, no parallel
70 checks to one host, intervals never below 10 s. Total ≈ 25 measurements/s/probe → ~17 M rows/day for 8 probes (~1 GB/day
70 +checks to one host, intervals never below 10 s. Total ≈ 50 measurements/s/probe → ~35 M rows/day for 8 probes (~1–2 GB/day
71 71 compressed in ClickHouse).
72 72
73 73 ## Replay
@@ -76,7 +76,10 @@ compressed in ClickHouse).
76 76 history with alternative weights. Re-deriving components from raw measurements with alternative engine parameters is an
77 77 offline job to add when enough history exists (raw is kept 180 days for exactly that purpose).
78 78
79 ## Retention
79 +## Retention — we never erase (founder decision, 2026-09-12, migration `0002_keep_forever.sql`)
80 80
81 measurements 180 d · measurements_1m 1 y · traceroutes 1 y · bgp_events 3 d (1/25 sampled announcements, all withdrawals) ·
82 bgp_stats_10s ∞ · bgp_origin_1m 30 d · pressure_history ∞ · signal_features 1 y · probe_health 180 d · engine_runs 90 d.
81 +Every table is kept indefinitely: measurements, measurements_1m, traceroutes, probe_health, bgp_stats_10s, bgp_origin_1m,
82 +pressure_history, signal_features, engine_runs. The single exception is `bgp_events`, the *raw* RIS Live stream (≈ 10 k
83 +prefixes/s at the source, already sampled 1/25 for announcements): 90 days. Nightly backups (`deploy/bin/backup.sh`) copy
84 +Postgres and the irreplaceable ClickHouse tables off-node to BHS128. Disk growth ≈ 1–2 GB/day on BHS64b's 878 GB RAID-1;
85 +plan a second ClickHouse volume (or a cold tier on BHS128) within a year.
83 86