skeg
benchmarks

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.

corpus

Simple English Wikipedia, passages ≥ 500 chars truncated to ~400 chars. Public dump preprocessed once and frozen for the bench.

embedder

Both mxbai-embed-large-v1 (1024d) and all-MiniLM-L6-v2 (384d) are used as orthogonal embedders for cross-check.

queries

1 000 hold-out passages (mxbai 1024d), separately re-embedded with all-MiniLM-L6-v2 (384d) for the minilm sub-slices.

ground truth

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.

notes

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