Skip to content
About
Main content
Model

Incremental or full recompute

The factor c/c′ is the reciprocal of the merge penalty. The factor (1 − F/(S·c)) is a discount for the fixed cost. At small scale incremental is strictly worse.

State size
the state size (rows)
Scan cost
the per-row cost on a sequential scan
Merge cost
the per-row cost of a random-access merge into existing state
Changed fraction
the changed fraction
Fixed overhead
offset tracking, state storage, metadata commits, capture infrastructure, people

Trade-off: Precompute vs. compute-on-read

How it behaves

One input on the horizontal axis, the others held fixed.

full rebuildincremental merge
Data table
Run time by changed fraction (500M rows, 2 µs scan, 40 µs merge, F = 0)
Changed fraction ΔseriesRun time
0.001full rebuild1,000 s
0.001full rebuild1,000 s
0.001full rebuild1,000 s
0.001full rebuild1,000 s
0.001full rebuild1,000 s
0.001full rebuild1,000 s
0.002full rebuild1,000 s
0.002full rebuild1,000 s
0.002full rebuild1,000 s
0.002full rebuild1,000 s
0.002full rebuild1,000 s
0.002full rebuild1,000 s
0.003full rebuild1,000 s
0.003full rebuild1,000 s
0.003full rebuild1,000 s
0.003full rebuild1,000 s
0.003full rebuild1,000 s
0.004full rebuild1,000 s
0.004full rebuild1,000 s
0.004full rebuild1,000 s
0.005full rebuild1,000 s
0.005full rebuild1,000 s
0.006full rebuild1,000 s
0.006full rebuild1,000 s
0.006full rebuild1,000 s
0.007full rebuild1,000 s
0.008full rebuild1,000 s
0.008full rebuild1,000 s
0.009full rebuild1,000 s
0.01full rebuild1,000 s
0.01full rebuild1,000 s
0.011full rebuild1,000 s
0.012full rebuild1,000 s
0.013full rebuild1,000 s
0.014full rebuild1,000 s
0.015full rebuild1,000 s
0.016full rebuild1,000 s
0.018full rebuild1,000 s
0.019full rebuild1,000 s
0.021full rebuild1,000 s
0.022full rebuild1,000 s
0.024full rebuild1,000 s
0.026full rebuild1,000 s
0.028full rebuild1,000 s
0.031full rebuild1,000 s
0.033full rebuild1,000 s
0.036full rebuild1,000 s
0.039full rebuild1,000 s
0.042full rebuild1,000 s
0.045full rebuild1,000 s
0.049full rebuild1,000 s
0.053full rebuild1,000 s
0.057full rebuild1,000 s
0.061full rebuild1,000 s
0.066full rebuild1,000 s
0.072full rebuild1,000 s
0.078full rebuild1,000 s
0.084full rebuild1,000 s
0.091full rebuild1,000 s
0.098full rebuild1,000 s
0.106full rebuild1,000 s
0.114full rebuild1,000 s
0.124full rebuild1,000 s
0.133full rebuild1,000 s
0.144full rebuild1,000 s
0.156full rebuild1,000 s
0.169full rebuild1,000 s
0.182full rebuild1,000 s
0.197full rebuild1,000 s
0.213full rebuild1,000 s
0.23full rebuild1,000 s
0.249full rebuild1,000 s
0.269full rebuild1,000 s
0.29full rebuild1,000 s
0.314full rebuild1,000 s
0.339full rebuild1,000 s
0.366full rebuild1,000 s
0.396full rebuild1,000 s
0.428full rebuild1,000 s
0.463full rebuild1,000 s
0.5full rebuild1,000 s
0.001incremental merge20 s
0.001incremental merge21.6 s
0.001incremental merge23.4 s
0.001incremental merge25.2 s
0.001incremental merge27.3 s
0.001incremental merge29.5 s
0.002incremental merge31.9 s
0.002incremental merge34.5 s
0.002incremental merge37.2 s
0.002incremental merge40.2 s
0.002incremental merge43.5 s
0.002incremental merge47 s
0.003incremental merge50.8 s
0.003incremental merge54.9 s
0.003incremental merge59.3 s
0.003incremental merge64.1 s
0.003incremental merge69.3 s
0.004incremental merge74.9 s
0.004incremental merge81 s
0.004incremental merge87.5 s
0.005incremental merge94.6 s
0.005incremental merge102 s
0.006incremental merge110 s
0.006incremental merge119 s
0.006incremental merge129 s
0.007incremental merge139 s
0.008incremental merge151 s
0.008incremental merge163 s
0.009incremental merge176 s
0.01incremental merge190 s
0.01incremental merge206 s
0.011incremental merge222 s
0.012incremental merge240 s
0.013incremental merge260 s
0.014incremental merge281 s
0.015incremental merge303 s
0.016incremental merge328 s
0.018incremental merge354 s
0.019incremental merge383 s
0.021incremental merge414 s
0.022incremental merge447 s
0.024incremental merge483 s
0.026incremental merge522 s
0.028incremental merge565 s
0.031incremental merge610 s
0.033incremental merge659 s
0.036incremental merge713 s
0.039incremental merge770 s
0.042incremental merge833 s
0.045incremental merge900 s
0.049incremental merge972 s
0.053incremental merge1,050 s
0.057incremental merge1,140 s
0.061incremental merge1,230 s
0.066incremental merge1,330 s
0.072incremental merge1,430 s
0.078incremental merge1,550 s
0.084incremental merge1,680 s
0.091incremental merge1,810 s
0.098incremental merge1,960 s
0.106incremental merge2,110 s
0.114incremental merge2,290 s
0.124incremental merge2,470 s
0.133incremental merge2,670 s
0.144incremental merge2,890 s
0.156incremental merge3,120 s
0.169incremental merge3,370 s
0.182incremental merge3,640 s
0.197incremental merge3,940 s
0.213incremental merge4,250 s
0.23incremental merge4,600 s
0.249incremental merge4,970 s
0.269incremental merge5,370 s
0.29incremental merge5,810 s
0.314incremental merge6,270 s
0.339incremental merge6,780 s
0.366incremental merge7,330 s
0.396incremental merge7,920 s
0.428incremental merge8,560 s
0.463incremental merge9,250 s
0.5incremental merge10,000 s

Worked examples, recomputed

Every number the mechanisms quote for this relationship is recomputed from it, so none of them disagrees with it.

Where it appears

Each mechanism states it in its own names. The general symbol each name stands for is shown with it.