Skip to content

Add the m1 command and the first M1 numbers of rupg - #22

Merged
tamnd merged 3 commits into
mainfrom
m1-numbers
Oct 7, 2026
Merged

tamnd merged 3 commits into
mainfrom
m1-numbers

Conversation

@tamnd

@tamnd tamnd commented Oct 7, 2026

Copy link
Copy Markdown
Owner

Part of #2.

What changes

  • Add rupg-bench m1, the in-process driver of spec/22 §22.12. It links the rupg facade at the commit of pins.toml (238dd51, the head of tamnd/rupg after #130) and has four steps: empty, latency, throughput and recovery. A test checks that the commit in Cargo.toml and the commit in pins.toml are the same.
  • recovery starts rupg-bench m1-fill in a child process. The child updates 256 rows of 2,000 bytes in each commit until 1 GiB of values is in the log, and it exits with no close. The driver then drops the file from the page cache with dd iflag=nocache and times the open that replays the log. The report has log_bytes from rupg check.
  • The report goes to reports/<date>/<commit>-<machine>-m1.md with a JSON file. The commit in the name is the rupg commit.
  • The README has a section on m1.
  • Smoke reports of server1 and server2 in reports/2026-10-07/. They are smoke runs and not baselines.

Test

srvtest passed on server1 at the head of this branch: fmt, clippy, cargo deny and 71 tests. Both runs were on 2026-10-07 at about 19:35 UTC, at rupg 238dd51.

server1 server2
cores 4 6
empty file 80.05 MiB, 300 KiB allocated 80.05 MiB, 300 KiB allocated
commit latency p50 3098 us 2029 us
commit latency p99 35891 us 6219 us
commits per second, one writer per core 541 1241
open after 1 GiB of log, cold cache 9.40 s 4.09 s

At rupg aed939c, before #129 and #130, the open on server1 took 15.33 s.

Notes

  • Both servers are shared and have no local NVMe, so the latency and throughput numbers follow the fdatasync time of the disk and say nothing about a reference machine. The driver does not print the fdatasync p50 of the device yet, so the latency line of M1: Storage and commit floors #2 stays open.
  • The empty file is sparse: 80 MiB of length, and 300 KiB allocated. The budget of spec/17 §17.10 is 256 KiB. I report the allocated bytes in rupg#2, where the budget is tracked.
  • gpc is not available, so the throughput line of M1: Storage and commit floors #2 stays open, and so does the PostgreSQL 18.6 commit curve next to it.

@tamnd tamnd added this to the M1: Storage and commit floors milestone Oct 7, 2026
@tamnd tamnd added kind/feature It does not do something that it must do. area/engines PostgreSQL, ClickHouse, DuckDB and the other baselines. area/report Per-query tables, gate evaluation and the transport column. labels Oct 7, 2026
@tamnd
tamnd merged commit 1465043 into main Oct 7, 2026
2 checks passed
@tamnd
tamnd deleted the m1-numbers branch October 7, 2026 18:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/engines PostgreSQL, ClickHouse, DuckDB and the other baselines. area/report Per-query tables, gate evaluation and the transport column. kind/feature It does not do something that it must do.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant