Skip to content
About
Main content
Model

Fixed cost per operation

total cost = fixed cost + (cost per byte × size)

Fixed cost
the setup cost paid for each operation, whatever its size
Transfer rate
bytes per second once data streams
Size
bytes moved per operation
Natural transfer size
the size at which half of your time is setup

Recurring principle: Fixed cost per operation

How it behaves

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

object storage (F ≈ 50 ms, B ≈ 80 MB/s)hard disk (F ≈ 13 ms, B ≈ 100 MB/s)
Data table
Share of time spent moving data, by request size
Request size xseriesTime spent transferring
1,000 Bobject storage (F ≈ 50 ms, B ≈ 80 MB/s)0.025%
1.16 KBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)0.03%
1.38 KBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)0.035%
1.64 KBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)0.042%
1.95 KBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)0.05%
2.32 KBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)0.059%
2.75 KBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)0.07%
3.27 KBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)0.084%
3.89 KBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)0.099%
4.62 KBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)0.118%
5.49 KBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)0.14%
6.53 KBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)0.167%
7.76 KBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)0.198%
9.22 KBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)0.235%
11 KBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)0.28%
13 KBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)0.332%
15.5 KBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)0.395%
18.4 KBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)0.469%
21.9 KBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)0.557%
26 KBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)0.661%
30.9 KBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)0.784%
36.7 KBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)0.931%
43.6 KBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)1.1%
51.8 KBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)1.31%
61.6 KBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)1.55%
73.2 KBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)1.84%
87 KBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)2.18%
103 KBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)2.58%
123 KBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)3.05%
146 KBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)3.61%
174 KBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)4.26%
206 KBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)5.02%
245 KBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)5.91%
292 KBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)6.95%
346 KBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)8.15%
412 KBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)9.54%
489 KBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)11.1%
582 KBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)13%
691 KBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)15%
822 KBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)17.4%
977 KBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)20%
1.13 MBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)22.9%
1.35 MBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)26.1%
1.6 MBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)29.6%
1.9 MBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)33.3%
2.26 MBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)37.2%
2.69 MBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)41.3%
3.19 MBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)45.6%
3.8 MBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)49.9%
4.51 MBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)54.2%
5.36 MBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)58.4%
6.37 MBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)62.6%
7.58 MBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)66.5%
9 MBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)70.2%
10.7 MBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)73.7%
12.7 MBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)76.9%
15.1 MBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)79.8%
18 MBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)82.5%
21.4 MBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)84.8%
25.4 MBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)86.9%
30.2 MBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)88.8%
35.8 MBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)90.4%
42.6 MBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)91.8%
50.6 MBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)93%
60.2 MBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)94%
71.5 MBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)94.9%
85 MBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)95.7%
101 MBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)96.4%
120 MBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)96.9%
143 MBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)97.4%
170 MBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)97.8%
202 MBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)98.1%
240 MBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)98.4%
285 MBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)98.7%
338 MBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)98.9%
402 MBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)99.1%
478 MBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)99.2%
568 MBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)99.3%
675 MBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)99.4%
802 MBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)99.5%
954 MBobject storage (F ≈ 50 ms, B ≈ 80 MB/s)99.6%
1,000 Bhard disk (F ≈ 13 ms, B ≈ 100 MB/s)0.077%
1.16 KBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)0.091%
1.38 KBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)0.109%
1.64 KBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)0.129%
1.95 KBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)0.153%
2.32 KBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)0.182%
2.75 KBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)0.216%
3.27 KBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)0.257%
3.89 KBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)0.305%
4.62 KBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)0.363%
5.49 KBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)0.431%
6.53 KBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)0.511%
7.76 KBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)0.607%
9.22 KBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)0.721%
11 KBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)0.856%
13 KBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)1.02%
15.5 KBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)1.2%
18.4 KBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)1.43%
21.9 KBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)1.69%
26 KBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)2.01%
30.9 KBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)2.37%
36.7 KBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)2.81%
43.6 KBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)3.32%
51.8 KBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)3.92%
61.6 KBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)4.63%
73.2 KBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)5.45%
87 KBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)6.42%
103 KBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)7.53%
123 KBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)8.83%
146 KBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)10.3%
174 KBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)12%
206 KBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)14%
245 KBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)16.2%
292 KBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)18.7%
346 KBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)21.4%
412 KBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)24.5%
489 KBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)27.8%
582 KBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)31.4%
691 KBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)35.3%
822 KBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)39.3%
977 KBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)43.5%
1.13 MBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)47.8%
1.35 MBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)52.1%
1.6 MBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)56.4%
1.9 MBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)60.5%
2.26 MBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)64.6%
2.69 MBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)68.4%
3.19 MBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)72%
3.8 MBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)75.4%
4.51 MBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)78.4%
5.36 MBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)81.2%
6.37 MBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)83.7%
7.58 MBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)85.9%
9 MBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)87.9%
10.7 MBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)89.6%
12.7 MBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)91.1%
15.1 MBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)92.4%
18 MBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)93.5%
21.4 MBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)94.5%
25.4 MBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)95.3%
30.2 MBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)96.1%
35.8 MBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)96.7%
42.6 MBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)97.2%
50.6 MBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)97.6%
60.2 MBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)98%
71.5 MBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)98.3%
85 MBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)98.6%
101 MBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)98.8%
120 MBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)99%
143 MBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)99.1%
170 MBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)99.3%
202 MBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)99.4%
240 MBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)99.5%
285 MBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)99.6%
338 MBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)99.6%
402 MBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)99.7%
478 MBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)99.7%
568 MBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)99.8%
675 MBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)99.8%
802 MBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)99.8%
954 MBhard disk (F ≈ 13 ms, B ≈ 100 MB/s)99.9%

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.

  • Physical Substrate & Performance Laws

    Why do trade-offs exist at all?

    Read it in place →

  • Physical Substrate & Performance Laws

    Why do trade-offs exist at all?

    Read it in place →

  • Data Movement

    How do records cross between two systems that have independent rates, independent availability and independent lifetimes, and what are you willing to lose when the assumption underneath the crossing breaks?

    F = · B (batch size) = · c (marginal cost per row) =

    Read it in place →

  • Data Movement

    How do records cross between two systems that have independent rates, independent availability and independent lifetimes, and what are you willing to lose when the assumption underneath the crossing breaks?

    Read it in place →

  • Storage: Physical Organization

    What should sit next to what, given that I must decide at write time and find out at read time?

    latency = · bandwidth = · characteristic size =

    Read it in place →

  • Persistence & Durability

    When a system says "yes, your data is safe", what exactly has it promised, and what did it have to do to keep that promise?

    T_flush = · bandwidth = · B (records per flush) =

    Read it in place →

  • Execution Engine Runtime

    Once a query plan is chosen, why does the machine still sit idle, and what does each mechanism of a query runtime pay to buy that idle time back?

    F (boundary cost) = · N (tuples per call) =

    Read it in place →

  • Execution Engine Runtime

    Once a query plan is chosen, why does the machine still sit idle, and what does each mechanism of a query runtime pay to buy that idle time back?

    Read it in place →

  • Cost Mechanics

    What is metered, and what is the smallest increment you are charged for?

    c_req = · 1 / c_byte = · S =

    Read it in place →

  • Table & Storage Maintenance

    Who pays for the gap between the order data arrives in and the order it is read in: the writer, every reader, or a background job, and what is the break-even?

    F (per-file cost) = · b (stream rate) = · s (file size) =

    Read it in place →

  • Orchestration & Workflow

    How do you make unreliable, unobservable, irreversible side effects behave like a pure function of a time interval?

    launch cost = · work =

    Read it in place →