slice E · skeg internals
tier menu, low-ram mode, cold-start
One engine, many configurations. Slice E sweeps skeg's compression tiers
(int8, pq-128,
turboquant-{1,2,4}-bit) at three scales, in both
default-ram and low-ram modes, and surfaces the
cold-start cost (first query RSS). Same corpus as slice A; here we look
inside the system instead of competing against others.
data provenance
Where the numbers come from. Same source, same generator, same ground truth for every engine in the comparison.
Simple English Wikipedia, passages ≥ 500 chars truncated to ~400 chars. Public dump preprocessed once and frozen for the bench.
Both mxbai-embed-large-v1 (1024d) and all-MiniLM-L6-v2 (384d) are used as orthogonal embedders for cross-check.
1 000 hold-out passages (mxbai 1024d), separately re-embedded with all-MiniLM-L6-v2 (384d) for the minilm sub-slices.
Top-100 nearest neighbours computed with exact brute-force cosine over float32 vectors. Computed once per scale, reused by every engine, frozen as a parquet next to the corpus.
Slice E uses two embedders to validate that skeg's behaviour generalises across dimensionalities. The mxbai (1024d) result is the production-target story; the minilm (384d) replication confirms the tier menu holds at smaller dim too. M-A is the scaling matrix, M-D/M-E are embedder validations at 100K, M-F is the multi-tenant disjoint variant.
RSS by tier and scale
Resident memory per tier as the corpus grows from 100K to 1M vectors, in default-ram mode. The compression chosen at build time decides how much RAM the engine wants for the index.
recall by tier and scale
recall@10 across the same matrix. Cheaper tiers do not collapse · the design is honest in this regime. Watch the gap close at higher N where everything pulls into the 0.99+ band.
cold start (first-query p99)
The latency the first user query pays · index pages still on SSD, nothing warm. After this point queries hit warm pages. Lower means the first response after a restart is closer to steady-state.
tier menu at 1M · RSS vs recall
Each tier is one operating point. Lower-right = better (less RAM,
higher recall). int8 sits at the high-fidelity corner
(best recall, biggest working set). pq-128 and the
turboquant variants collapse to a third of the RAM, with a
moderate recall hit. The disk footprint is the same across tiers
· skeg keeps raw f32 vectors on SSD for re-rank regardless, so
what really changes between tiers is the in-RAM code table.
low-ram vs default-ram at 1M
Same tier, same dataset, two memory modes. Steady RSS, cold-start RSS, and p99 latency · what does the M0 "low-ram" mode cost and save?
| tier | mode | RSS first-query MiB | RSS steady MiB | recall@10 | p99 µs | qps | disk total MiB |
|---|---|---|---|---|---|---|---|
| int8 | default-ram | 429.1 | 1206.3 | 0.9941 | 4546 | 805 | 4161.8 |
| int8 | low-ram | 212.9 | 1202.9 | 0.9937 | 16492 | 251 | 4161.8 |
| pq-128 | default-ram | 174.5 | 361.5 | 0.9879 | 1660 | 950 | 4161.8 |
| pq-128 | low-ram | 173.0 | 360.9 | 0.9879 | 9313 | 386 | 4161.8 |
| tq-1bit | default-ram | 185.4 | 367.8 | 0.9842 | 6061 | 257 | 4161.8 |
| tq-1bit | low-ram | 80.0 | 364.9 | 0.9838 | 5553 | 273 | 4283.9 |
| tq-2bit | default-ram | 307.5 | 486.6 | 0.9948 | 2489 | 623 | 4161.8 |
| tq-2bit | low-ram | 82.5 | 483.2 | 0.9943 | 8942 | 309 | 4406.0 |
| tq-4bit | default-ram | 364.6 | 724.8 | 0.9944 | 4833 | 474 | 4161.8 |
| tq-4bit | low-ram | 85.4 | 725.0 | 0.9943 | 10479 | 438 | 4650.1 |
all numbers
Full matrix · click headers to sort.
| slice | dataset | distribution | tier | mode | concurrency | recall@10 | recall@100 | p50 µs | p99 µs | qps | RSS steady MiB | RSS first MiB | disk total MiB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| M-A | mxbai-100k | mxbai | int8 | default-ram | 1 | 0.9970 | 0.9762 | 737 | 1016 | 1362 | 130.0 | 129.7 | 416.2 |
| M-A | mxbai-100k | mxbai | int8 | low-ram | 1 | 0.9975 | 0.9768 | 755 | 1124 | 1317 | 129.9 | 106.3 | 416.2 |
| M-A | mxbai-100k | mxbai | pq-128 | default-ram | 1 | 0.9960 | 0.7614 | 825 | 1134 | 1202 | 62.7 | 62.5 | 416.2 |
| M-A | mxbai-100k | mxbai | pq-128 | low-ram | 1 | 0.9965 | 0.7617 | 801 | 1035 | 1244 | 62.7 | 39.1 | 416.2 |
| M-A | mxbai-100k | mxbai | tq-1bit | default-ram | 1 | 0.9955 | 0.7306 | 2879 | 4216 | 342 | 44.9 | 44.7 | 416.2 |
| M-A | mxbai-100k | mxbai | tq-1bit | low-ram | 1 | 0.9960 | 0.7310 | 2921 | 4240 | 339 | 44.9 | 18.5 | 428.4 |
| M-A | mxbai-100k | mxbai | tq-2bit | default-ram | 1 | 0.9985 | 0.8617 | 1309 | 1852 | 755 | 57.1 | 56.9 | 416.2 |
| M-A | mxbai-100k | mxbai | tq-2bit | low-ram | 1 | 0.9975 | 0.8611 | 1306 | 1821 | 755 | 57.0 | 23.8 | 440.6 |
| M-A | mxbai-100k | mxbai | tq-4bit | default-ram | 1 | 0.9975 | 0.9548 | 1370 | 2125 | 715 | 81.6 | 81.3 | 416.2 |
| M-A | mxbai-100k | mxbai | tq-4bit | low-ram | 1 | 0.9985 | 0.9552 | 1340 | 1929 | 737 | 81.5 | 29.4 | 465.0 |
| M-A | mxbai-1m | mxbai | int8 | default-ram | 1 | 0.9941 | 0.9603 | 1050 | 4546 | 805 | 1206.3 | 429.1 | 4161.8 |
| M-A | mxbai-1m | mxbai | int8 | low-ram | 1 | 0.9937 | 0.9603 | 2913 | 16492 | 251 | 1202.9 | 212.9 | 4161.8 |
| M-A | mxbai-1m | mxbai | pq-128 | default-ram | 1 | 0.9879 | 0.7175 | 1028 | 1660 | 950 | 361.5 | 174.5 | 4161.8 |
| M-A | mxbai-1m | mxbai | pq-128 | low-ram | 1 | 0.9879 | 0.7177 | 1994 | 9313 | 386 | 360.9 | 173.0 | 4161.8 |
| M-A | mxbai-1m | mxbai | tq-1bit | default-ram | 1 | 0.9842 | 0.6783 | 3900 | 6061 | 257 | 367.8 | 185.4 | 4161.8 |
| M-A | mxbai-1m | mxbai | tq-1bit | low-ram | 1 | 0.9838 | 0.6783 | 3640 | 5553 | 273 | 364.9 | 80.0 | 4283.9 |
| M-A | mxbai-1m | mxbai | tq-2bit | default-ram | 1 | 0.9948 | 0.8258 | 1595 | 2489 | 623 | 486.6 | 307.5 | 4161.8 |
| M-A | mxbai-1m | mxbai | tq-2bit | low-ram | 1 | 0.9943 | 0.8258 | 2832 | 8942 | 309 | 483.2 | 82.5 | 4406.0 |
| M-A | mxbai-1m | mxbai | tq-4bit | default-ram | 1 | 0.9944 | 0.9369 | 1973 | 4833 | 474 | 724.8 | 364.6 | 4161.8 |
| M-A | mxbai-1m | mxbai | tq-4bit | low-ram | 1 | 0.9943 | 0.9374 | 1898 | 10479 | 438 | 725.0 | 85.4 | 4650.1 |
| M-A | mxbai-500k | mxbai | int8 | default-ram | 1 | 0.9953 | 0.9654 | 669 | 1564 | 1400 | 623.4 | 288.7 | 2080.9 |
| M-A | mxbai-500k | mxbai | int8 | low-ram | 1 | 0.9952 | 0.9652 | 650 | 1347 | 1457 | 623.5 | 374.7 | 2080.9 |
| M-A | mxbai-500k | mxbai | pq-128 | default-ram | 1 | 0.9906 | 0.7291 | 969 | 1516 | 1014 | 206.9 | 97.9 | 2080.9 |
| M-A | mxbai-500k | mxbai | pq-128 | low-ram | 1 | 0.9906 | 0.7292 | 836 | 1336 | 1170 | 206.6 | 97.2 | 2080.9 |
| M-A | mxbai-500k | mxbai | tq-1bit | default-ram | 1 | 0.9858 | 0.6937 | 3419 | 5331 | 296 | 200.2 | 60.9 | 2080.9 |
| M-A | mxbai-500k | mxbai | tq-1bit | low-ram | 1 | 0.9853 | 0.6937 | 3638 | 5838 | 275 | 199.6 | 49.3 | 2142.0 |
| M-A | mxbai-500k | mxbai | tq-2bit | default-ram | 1 | 0.9936 | 0.8348 | 1532 | 2409 | 653 | 259.5 | 86.0 | 2080.9 |
| M-A | mxbai-500k | mxbai | tq-2bit | low-ram | 1 | 0.9932 | 0.8346 | 1517 | 2333 | 660 | 259.4 | 53.9 | 2203.0 |
| M-A | mxbai-500k | mxbai | tq-4bit | default-ram | 1 | 0.9949 | 0.9418 | 1520 | 2630 | 651 | 381.6 | 210.2 | 2080.9 |
| M-A | mxbai-500k | mxbai | tq-4bit | low-ram | 1 | 0.9951 | 0.9417 | 1469 | 2436 | 673 | 381.6 | 56.9 | 2325.1 |
| M-C | mxbai-100k | mxbai | int8 | default-ram | 1 | 0.9970 | 0.9768 | 713 | 1011 | 1384 | 130.0 | 129.7 | 416.2 |
| M-C | mxbai-100k | mxbai | int8 | default-ram | 4 | 0.9970 | 0.9768 | 2272 | 2706 | 1503 | 130.3 | 129.7 | 416.2 |
| M-C | mxbai-100k | mxbai | int8 | default-ram | 16 | 0.9965 | 0.9768 | 9193 | 10848 | 1679 | 131.4 | 129.8 | 416.2 |
| M-C | mxbai-100k | mxbai | int8 | default-ram | 32 | 0.9975 | 0.9769 | 18081 | 19169 | 1700 | 131.8 | 129.7 | 416.2 |
| M-C | mxbai-100k | mxbai | pq-128 | default-ram | 1 | 0.9965 | 0.7619 | 776 | 990 | 1275 | 62.5 | 62.5 | 416.2 |
| M-C | mxbai-100k | mxbai | pq-128 | default-ram | 4 | 0.9960 | 0.7614 | 2735 | 3129 | 1449 | 53.4 | 53.2 | 416.2 |
| M-C | mxbai-100k | mxbai | pq-128 | default-ram | 16 | 0.9965 | 0.7619 | 10832 | 12583 | 1443 | 62.8 | 62.5 | 416.2 |
| M-C | mxbai-100k | mxbai | pq-128 | default-ram | 32 | 0.9960 | 0.7614 | 21492 | 24420 | 1416 | 62.9 | 62.5 | 416.2 |
| M-C | mxbai-100k | mxbai | tq-2bit | default-ram | 1 | 0.9985 | 0.8614 | 1263 | 1773 | 786 | 57.2 | 56.9 | 416.2 |
| M-C | mxbai-100k | mxbai | tq-2bit | default-ram | 4 | 0.9975 | 0.8609 | 4528 | 5302 | 877 | 57.4 | 56.9 | 416.2 |
| M-C | mxbai-100k | mxbai | tq-2bit | default-ram | 16 | 0.9980 | 0.8611 | 18049 | 19175 | 881 | 58.3 | 56.9 | 416.2 |
| M-C | mxbai-100k | mxbai | tq-2bit | default-ram | 32 | 0.9985 | 0.8616 | 36431 | 42651 | 839 | 59.1 | 56.9 | 416.2 |
| M-C | mxbai-500k | mxbai | int8 | default-ram | 1 | 0.9946 | 0.9652 | 687 | 1522 | 1359 | 622.8 | 301.4 | 2080.9 |
| M-C | mxbai-500k | mxbai | int8 | default-ram | 4 | 0.9948 | 0.9652 | 2270 | 4557 | 1721 | 623.6 | 365.4 | 2080.9 |
| M-C | mxbai-500k | mxbai | int8 | default-ram | 16 | 0.9950 | 0.9652 | 9565 | 14295 | 1725 | 624.7 | 514.1 | 2080.9 |
| M-C | mxbai-500k | mxbai | int8 | default-ram | 32 | 0.9949 | 0.9652 | 21837 | 43004 | 1433 | 626.9 | 514.3 | 2080.9 |
| M-C | mxbai-500k | mxbai | pq-128 | default-ram | 1 | 0.9904 | 0.7294 | 912 | 1340 | 1079 | 219.6 | 219.6 | 2080.9 |
| M-C | mxbai-500k | mxbai | pq-128 | default-ram | 4 | 0.9903 | 0.7292 | 3160 | 4546 | 1265 | 200.7 | 92.2 | 2080.9 |
| M-C | mxbai-500k | mxbai | pq-128 | default-ram | 16 | 0.9906 | 0.7292 | 12261 | 16500 | 1311 | 205.2 | 95.9 | 2080.9 |
| M-C | mxbai-500k | mxbai | pq-128 | default-ram | 32 | 0.9904 | 0.7292 | 25734 | 33856 | 1262 | 209.0 | 99.9 | 2080.9 |
| M-C | mxbai-500k | mxbai | tq-2bit | default-ram | 1 | 0.9944 | 0.8351 | 1442 | 2322 | 691 | 259.2 | 76.5 | 2080.9 |
| M-C | mxbai-500k | mxbai | tq-2bit | default-ram | 4 | 0.9944 | 0.8351 | 5804 | 8843 | 701 | 259.5 | 97.6 | 2080.9 |
| M-C | mxbai-500k | mxbai | tq-2bit | default-ram | 16 | 0.9934 | 0.8346 | 21995 | 30074 | 750 | 261.9 | 120.3 | 2080.9 |
| M-C | mxbai-500k | mxbai | tq-2bit | default-ram | 32 | 0.9944 | 0.8349 | 44053 | 58968 | 750 | 276.9 | 273.3 | 2080.9 |
| M-D | minilm-100k | minilm | int8 | default-ram | 1 | 0.9905 | 0.9675 | 489 | 1327 | 1819 | 72.6 | 72.4 | 172.0 |
| M-D | minilm-100k | minilm | int8 | low-ram | 1 | 0.9890 | 0.9677 | 492 | 1345 | 1836 | 72.6 | 49.1 | 172.0 |
| M-D | minilm-100k | minilm | pq-128 | default-ram | 1 | 0.9875 | 0.8649 | 838 | 1129 | 1185 | 49.1 | 49.0 | 172.0 |
| M-D | minilm-100k | minilm | pq-128 | low-ram | 1 | 0.9880 | 0.8653 | 835 | 1051 | 1203 | 51.8 | 28.3 | 172.0 |
| M-D | minilm-100k | minilm | tq-1bit | default-ram | 1 | 0.9740 | 0.6572 | 1474 | 1996 | 688 | 41.0 | 40.8 | 172.0 |
| M-D | minilm-100k | minilm | tq-1bit | low-ram | 1 | 0.9700 | 0.6578 | 1458 | 1980 | 691 | 45.5 | 21.8 | 176.6 |
| M-D | minilm-100k | minilm | tq-2bit | default-ram | 1 | 0.9860 | 0.8195 | 743 | 994 | 1337 | 45.5 | 45.3 | 172.0 |
| M-D | minilm-100k | minilm | tq-2bit | low-ram | 1 | 0.9905 | 0.8197 | 734 | 936 | 1355 | 45.6 | 20.5 | 181.2 |
| M-D | minilm-100k | minilm | tq-4bit | default-ram | 1 | 0.9885 | 0.9367 | 773 | 1020 | 1285 | 54.7 | 54.5 | 172.0 |
| M-D | minilm-100k | minilm | tq-4bit | low-ram | 1 | 0.9910 | 0.9384 | 795 | 1029 | 1263 | 54.7 | 25.7 | 190.4 |
| M-E | minilm-100k | minilm | int8 | default-ram | 4 | 0.1950 | 0.1869 | 1041 | 1382 | 3644 | 129.7 | 128.3 | 172.0 |
| M-E | minilm-100k | minilm | int8 | low-ram | 4 | 0.1945 | 0.1868 | 967 | 1318 | 3902 | 130.0 | 104.6 | 172.0 |
| M-E | minilm-100k | minilm | pq-128 | default-ram | 4 | 0.1950 | 0.1868 | 2386 | 2752 | 1646 | 104.7 | 104.8 | 172.0 |
| M-E | minilm-100k | minilm | pq-128 | low-ram | 4 | 0.1940 | 0.1865 | 2464 | 2888 | 1590 | 105.2 | 178.5 | 172.0 |
| M-E | minilm-100k | minilm | tq-1bit | default-ram | 4 | 0.1935 | 0.1777 | 4898 | 5653 | 814 | 98.2 | 96.7 | 172.0 |
| M-E | minilm-100k | minilm | tq-1bit | low-ram | 4 | 0.1945 | 0.1779 | 4724 | 5461 | 843 | 102.8 | 74.3 | 176.6 |
| M-E | minilm-100k | minilm | tq-2bit | default-ram | 4 | 0.1945 | 0.1864 | 2257 | 2605 | 1743 | 102.7 | 101.2 | 172.0 |
| M-E | minilm-100k | minilm | tq-2bit | low-ram | 4 | 0.1945 | 0.1865 | 2223 | 2647 | 1761 | 111.2 | 79.9 | 181.2 |
| M-E | minilm-100k | minilm | tq-4bit | default-ram | 4 | 0.1950 | 0.1872 | 2356 | 2904 | 1672 | 112.1 | 110.5 | 172.0 |
| M-E | minilm-100k | minilm | tq-4bit | low-ram | 4 | 0.1945 | 0.1872 | 2336 | 2849 | 1696 | 129.7 | 91.4 | 190.4 |
| M-E | mxbai-100k | mxbai | int8 | default-ram | 4 | 0.2075 | 0.2160 | 1517 | 1952 | 2531 | 169.8 | 167.8 | 416.2 |
| M-E | mxbai-100k | mxbai | int8 | low-ram | 4 | 0.2075 | 0.2161 | 1514 | 1916 | 2542 | 169.5 | 144.0 | 416.2 |
| M-E | mxbai-100k | mxbai | pq-128 | default-ram | 4 | 0.2065 | 0.2121 | 2134 | 2442 | 1841 | 123.7 | 123.2 | 416.2 |
| M-E | mxbai-100k | mxbai | pq-128 | low-ram | 4 | 0.2065 | 0.2118 | 2127 | 2443 | 1858 | 126.8 | 102.7 | 416.2 |
| M-E | mxbai-100k | mxbai | tq-1bit | default-ram | 4 | 0.2075 | 0.2109 | 9009 | 10890 | 442 | 84.7 | 82.7 | 416.2 |
| M-E | mxbai-100k | mxbai | tq-1bit | low-ram | 4 | 0.2075 | 0.2109 | 8940 | 10839 | 444 | 93.5 | 59.9 | 428.4 |
| M-E | mxbai-100k | mxbai | tq-2bit | default-ram | 4 | 0.2075 | 0.2157 | 3647 | 4386 | 1084 | 96.9 | 95.0 | 416.2 |
| M-E | mxbai-100k | mxbai | tq-2bit | low-ram | 4 | 0.2075 | 0.2157 | 3666 | 4436 | 1080 | 118.6 | 75.0 | 440.6 |
| M-E | mxbai-100k | mxbai | tq-4bit | default-ram | 4 | 0.2075 | 0.2161 | 3720 | 4561 | 1060 | 121.2 | 119.3 | 416.2 |
| M-E | mxbai-100k | mxbai | tq-4bit | low-ram | 4 | 0.2075 | 0.2161 | 3717 | 4535 | 1061 | 121.1 | 57.8 | 465.0 |
| M-F | mxbai-tenant-disjoint | mxbai | int8 | default-ram | 4 | 0.9981 | 0.9717 | 523 | 900 | 1776 | 520.3 | 518.2 | 1664.7 |
| M-F | mxbai-tenant-disjoint | mxbai | int8 | low-ram | 4 | 0.9981 | 0.9714 | 503 | 847 | 1848 | 514.3 | 399.2 | 1664.7 |
| M-F | mxbai-tenant-disjoint | mxbai | pq-128 | default-ram | 4 | 0.9951 | 0.7433 | 724 | 1020 | 1329 | 234.8 | 136.9 | 1664.7 |
| M-F | mxbai-tenant-disjoint | mxbai | pq-128 | low-ram | 4 | 0.9954 | 0.7433 | 746 | 1750 | 1234 | 223.0 | 790.3 | 1664.7 |
| M-F | mxbai-tenant-disjoint | mxbai | tq-1bit | default-ram | 4 | 0.9931 | 0.7131 | 2928 | 4348 | 338 | 179.9 | 177.9 | 1664.7 |
| M-F | mxbai-tenant-disjoint | mxbai | tq-1bit | low-ram | 4 | 0.9928 | 0.7132 | 2938 | 4329 | 339 | 179.5 | 39.6 | 1713.6 |
| M-F | mxbai-tenant-disjoint | mxbai | tq-2bit | default-ram | 4 | 0.9979 | 0.8493 | 1253 | 1868 | 782 | 223.5 | 123.3 | 1664.7 |
| M-F | mxbai-tenant-disjoint | mxbai | tq-2bit | low-ram | 4 | 0.9976 | 0.8492 | 1247 | 1818 | 788 | 228.1 | 44.2 | 1762.4 |
| M-F | mxbai-tenant-disjoint | mxbai | tq-4bit | default-ram | 4 | 0.9982 | 0.9487 | 1252 | 1830 | 784 | 326.6 | 324.7 | 1664.7 |
| M-F | mxbai-tenant-disjoint | mxbai | tq-4bit | low-ram | 4 | 0.9983 | 0.9484 | 1338 | 2753 | 707 | 325.6 | 48.6 | 1860.0 |
methodology in one minute
- Engine: skeg only, sweeping its internal knobs.
- Tiers:
int8(full-precision quantized vectors),pq:128:256(128-byte PQ codes, 256 centroids per subspace),turboquant-{1,2,4}(k-bit lattice quantization). - Modes:
default-ram(steady working set in RAM) vslow-ram(more pages live on SSD, paid on first query). - Sub-slices: M-A scaling matrix (100K/500K/1M, mxbai), M-D / M-E embedder validation (minilm vs mxbai at 100K), M-F multi-tenant disjoint.
- Distributions: mxbai-embed-large 1024d (production target) and minilm-l6-v2 384d (smaller, replication check).