Skip to content

P4: Results storage layout in goceleris/docs (version/date/arch/run, summary+timeseries split, manifest) #164

Description

@FumingPower3925

Part of #151.

Goal. A versioned, arch-segmented, searchable result store committed to goceleris/docs, optimised for an interactive dashboard.

Proposed layout:

results/
  index.json                          # manifest: versions → dates → arches → run-ids → file pointers + headline numbers
  latest/                             # copy of newest version's newest date
  v1.4.12/
    20260530/
      x86_64/
        summary.json                  # aggregates per (scenario×server): rps, latency pctls, RSS, CPU, GC
        timeseries.json.gz            # per-second rps/p99/errors/RSS over each run (gzipped, lazy-loaded)
        histograms.json.gz            # merged HdrHistograms (base64) for exact-percentile recompute
        env.json                      # kernel, go, cpu, NUMA, compile flags
      arm64/ ...
      run-2/ run-3/ ...               # when a release triggers back-to-back N runs (#170)

Decisions to lock:

  • Arch leaf naming x86_64 / arm64 (migrate the existing x86/arm64 data + index.json + environment.architecture).
  • latest/ = copy of newest (dumb-client simple).
  • Split summary (small, always loaded) from timeseries/histograms (large, gzipped, on-demand) so the dashboard stays fast.
  • index.json schema drives 'browse by latest / version / arch / date / run' without reading every file.

Acceptance. Documented layout + index.json schema + migration of the existing v1.0.0 data to the new naming.

Refs: docs results/ (current index.json, latest/, v1.0.0/), report/schema.go.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions