mentat scale benchmark: after
Environment (abridged; full detail in env.txt)
instance_type: c7i.8xlarge
kernel: 6.12.103-129.197.amzn2023.x86_64
cpu_model: Intel(R) Xeon(R) Platinum 8488C
cpus: 24
sockets/numa: 1 1
mem_total_gib: 61.8
hugepages: HugePages_Total:=0 HugePages_Free:=0 Hugepagesize:=2048
data_fs: /dev/nvme0n1p1 xfs 150G 22G 129G 15% /
mentat_git: 6fed515a
duckdb: n/a
postgres: n/a
Dataset and PG size vs shared_buffers
s: 984803 datoms (1600 users, 130000 issues, 6492 history updates)
m: 9850258 datoms (16000 users, 1300000 issues, 64986 history updates)
bulk_load
| backend |
scale |
datoms |
wall s |
datoms/s |
ANALYZE s |
VACUUM s |
store size |
note |
|---|
| embedded |
s |
984,803 |
86.6 |
11,373 |
|
|
0.20 GiB |
|
| embedded |
m |
9,850,258 |
2,041 |
4,825 |
|
|
2.00 GiB |
|
point_lookup
| backend |
scale |
datoms |
clients |
op |
n |
p50 ms |
p95 ms |
p99 ms |
max ms |
ops/s |
errors |
reps |
|---|
| embedded |
s |
984,803 |
1 |
read |
512356 |
0.019 |
0.021 |
0.025 |
0.381 |
51,236 |
0 |
3 |
| embedded |
m |
9,850,258 |
1 |
read |
508308 |
0.019 |
0.022 |
0.025 |
0.110 |
50,831 |
0 |
3 |
ref_traversal
| backend |
scale |
datoms |
clients |
op |
n |
p50 ms |
p95 ms |
p99 ms |
max ms |
ops/s |
errors |
reps |
|---|
| embedded |
s |
984,803 |
1 |
read |
450 |
22.575 |
23.163 |
23.340 |
23.643 |
44.9 |
0 |
3 |
| embedded |
m |
9,850,258 |
1 |
read |
35 |
290.191 |
307.288 |
317.436 |
317.436 |
3.4 |
0 |
3 |
aggregate
| backend |
scale |
datoms |
clients |
op |
n |
p50 ms |
p95 ms |
p99 ms |
max ms |
ops/s |
errors |
reps |
|---|
| embedded |
s |
984,803 |
1 |
read |
321 |
31.214 |
31.567 |
31.763 |
32.356 |
32.0 |
0 |
3 |
| embedded |
m |
9,850,258 |
1 |
read |
30 |
371.578 |
373.067 |
373.500 |
373.500 |
2.7 |
0 |
3 |
predicate_scan
| backend |
scale |
datoms |
clients |
op |
n |
p50 ms |
p95 ms |
p99 ms |
max ms |
ops/s |
errors |
reps |
|---|
| embedded |
s |
984,803 |
1 |
read |
417 |
24.003 |
24.215 |
24.381 |
25.094 |
41.6 |
0 |
3 |
| embedded |
m |
9,850,258 |
1 |
read |
37 |
275.251 |
277.258 |
278.134 |
278.134 |
3.6 |
0 |
3 |
pull
| backend |
scale |
datoms |
clients |
op |
n |
p50 ms |
p95 ms |
p99 ms |
max ms |
ops/s |
errors |
reps |
|---|
| embedded |
s |
984,803 |
1 |
read |
271614 |
0.036 |
0.041 |
0.050 |
0.396 |
27,161 |
0 |
3 |
| embedded |
m |
9,850,258 |
1 |
read |
226901 |
0.044 |
0.052 |
0.061 |
0.236 |
22,690 |
0 |
3 |
as_of
| backend |
scale |
datoms |
clients |
op |
n |
p50 ms |
p95 ms |
p99 ms |
max ms |
ops/s |
errors |
reps |
|---|
| embedded |
s |
984,803 |
1 |
read |
114 |
88.058 |
88.805 |
89.195 |
89.366 |
11.4 |
0 |
3 |
| embedded |
m |
9,850,258 |
1 |
read |
30 |
1,040 |
1,046 |
1,048 |
1,048 |
1.0 |
0 |
3 |
since
| backend |
scale |
datoms |
clients |
op |
n |
p50 ms |
p95 ms |
p99 ms |
max ms |
ops/s |
errors |
reps |
|---|
| embedded |
s |
984,803 |
1 |
read |
2403 |
4.159 |
4.259 |
4.303 |
4.661 |
240.2 |
0 |
3 |
| embedded |
m |
9,850,258 |
1 |
read |
191 |
52.509 |
52.943 |
54.645 |
55.074 |
19.0 |
0 |
3 |
| backend |
scale |
datoms |
clients |
op |
n |
p50 ms |
p95 ms |
p99 ms |
max ms |
ops/s |
errors |
reps |
|---|
| embedded |
s |
984,803 |
1 |
read |
25631 |
0.383 |
0.429 |
0.438 |
0.509 |
2,563 |
0 |
3 |
| embedded |
m |
9,850,258 |
1 |
read |
4675 |
2.125 |
2.277 |
2.348 |
2.531 |
467.5 |
0 |
3 |
write_mixed
| backend |
scale |
datoms |
clients |
op |
n |
p50 ms |
p95 ms |
p99 ms |
max ms |
ops/s |
errors |
reps |
|---|
| embedded |
s |
984,803 |
1 |
write |
17647 |
3.392 |
3.815 |
4.040 |
22.434 |
294.1 |
0 |
3 |
| embedded |
s |
984,803 |
8 |
read |
34668 |
10.211 |
30.983 |
41.230 |
110.381 |
577.5 |
0 |
3 |
| embedded |
m |
9,850,258 |
1 |
write |
15646 |
3.410 |
6.973 |
8.611 |
25.330 |
260.8 |
0 |
3 |
| embedded |
m |
9,850,258 |
8 |
read |
2234 |
6.323 |
585.528 |
1,149 |
2,076 |
36.9 |
0 |
3 |
concurrency_sweep
| backend |
scale |
datoms |
clients |
op |
n |
p50 ms |
p95 ms |
p99 ms |
max ms |
ops/s |
errors |
reps |
|---|
| embedded |
s |
984,803 |
1 |
read |
1367 |
0.114 |
22.847 |
23.184 |
23.586 |
136.6 |
0 |
3 |
| embedded |
s |
984,803 |
8 |
read |
9986 |
0.081 |
24.433 |
24.735 |
26.542 |
996.3 |
0 |
3 |
| embedded |
s |
984,803 |
32 |
read |
21040 |
0.101 |
54.502 |
64.187 |
94.136 |
2,095 |
0 |
3 |
| embedded |
s |
984,803 |
64 |
read |
21084 |
0.103 |
115.099 |
144.955 |
175.393 |
2,093 |
0 |
3 |
| embedded |
s |
984,803 |
128 |
read |
21260 |
0.101 |
235.201 |
284.737 |
385.131 |
2,101 |
0 |
3 |
| embedded |
m |
9,850,258 |
1 |
read |
108 |
0.162 |
300.034 |
305.347 |
306.313 |
10.6 |
0 |
3 |
| embedded |
m |
9,850,258 |
8 |
read |
742 |
0.168 |
324.908 |
330.539 |
396.560 |
72.3 |
0 |
3 |
| embedded |
m |
9,850,258 |
32 |
read |
1639 |
0.176 |
661.280 |
701.176 |
765.435 |
157.1 |
0 |
3 |
| embedded |
m |
9,850,258 |
64 |
read |
1725 |
0.148 |
1,543 |
1,648 |
1,708 |
161.0 |
0 |
3 |
| embedded |
m |
9,850,258 |
128 |
read |
1792 |
0.158 |
2,814 |
3,005 |
3,279 |
160.4 |
0 |
3 |
cold_vs_warm
| backend |
scale |
datoms |
clients |
op |
n |
p50 ms |
p95 ms |
p99 ms |
max ms |
ops/s |
errors |
reps |
|---|
| embedded |
s |
984,803 |
1 |
cold_aggregate |
1 |
41.181 |
41.181 |
41.181 |
41.181 |
24.3 |
0 |
1 |
| embedded |
s |
984,803 |
1 |
cold_point_lookup |
1 |
8.894 |
8.894 |
8.894 |
8.894 |
112.4 |
0 |
1 |
| embedded |
s |
984,803 |
1 |
cold_pull |
1 |
4.608 |
4.608 |
4.608 |
4.608 |
217.0 |
0 |
1 |
| embedded |
s |
984,803 |
1 |
cold_ref_traversal |
1 |
523.707 |
523.707 |
523.707 |
523.707 |
1.9 |
0 |
1 |
| embedded |
s |
984,803 |
1 |
open |
1 |
44.886 |
44.886 |
44.886 |
44.886 |
22.3 |
0 |
1 |
| embedded |
s |
984,803 |
1 |
warm_aggregate |
30 |
31.196 |
31.599 |
31.667 |
31.667 |
32.0 |
0 |
1 |
| embedded |
s |
984,803 |
1 |
warm_point_lookup |
30 |
0.020 |
1.126 |
1.385 |
1.385 |
7,225 |
0 |
1 |
| embedded |
s |
984,803 |
1 |
warm_pull |
30 |
1.416 |
4.676 |
5.348 |
5.348 |
507.9 |
0 |
1 |
| embedded |
s |
984,803 |
1 |
warm_ref_traversal |
30 |
24.840 |
98.729 |
132.994 |
132.994 |
27.9 |
0 |
1 |
| embedded |
m |
9,850,258 |
1 |
cold_aggregate |
1 |
4,984 |
4,984 |
4,984 |
4,984 |
0.2 |
0 |
1 |
| embedded |
m |
9,850,258 |
1 |
cold_point_lookup |
1 |
12.646 |
12.646 |
12.646 |
12.646 |
79.1 |
0 |
1 |
| embedded |
m |
9,850,258 |
1 |
cold_pull |
1 |
1.421 |
1.421 |
1.421 |
1.421 |
703.8 |
0 |
1 |
| embedded |
m |
9,850,258 |
1 |
cold_ref_traversal |
1 |
4,941 |
4,941 |
4,941 |
4,941 |
0.2 |
0 |
1 |
| embedded |
m |
9,850,258 |
1 |
open |
1 |
50.201 |
50.201 |
50.201 |
50.201 |
19.9 |
0 |
1 |
| embedded |
m |
9,850,258 |
1 |
warm_aggregate |
30 |
374.378 |
375.532 |
375.533 |
375.533 |
2.7 |
0 |
1 |
| embedded |
m |
9,850,258 |
1 |
warm_point_lookup |
30 |
1.080 |
2.573 |
2.592 |
2.592 |
928.5 |
0 |
1 |
| embedded |
m |
9,850,258 |
1 |
warm_pull |
30 |
5.078 |
8.393 |
8.643 |
8.643 |
186.0 |
0 |
1 |
| embedded |
m |
9,850,258 |
1 |
warm_ref_traversal |
30 |
392.530 |
477.170 |
520.620 |
520.620 |
2.5 |
0 |
1 |
Correctness checks
52 PASS, 0 FAIL, 0 SKIP; 4 backend check runs OK, 0 FAILED (all FAIL/FAILED lines, with annotations, in checks.txt)