Skip to content
About
Main content

Triage plot, salting and the join product

Simulate a modelNeeds Python with NumPy, matplotlib

Problem

A stage is only as fast as its last task, so a long is the first thing to explain. Three different causes look alike on a progress bar: random variation between tasks, one slow machine (a ), and one task with far more data than the rest (, often one hot key). They need different fixes. Speculation, which starts a duplicate of a late task and keeps whichever finishes first, helps a straggler. Only splitting the data helps skew. A scatter plot of each task's duration against the bytes it read tells the causes apart. Joins make skew worse: for a key with L rows on the left and R rows on the right, the join output has L × R rows.

Classify three kinds of long tail, then fix skew by , and see that join skew multiplies.

  1. Simulate 1,000 tasks. Case A: equal bytes, random durations. Case B: equal bytes, one task 10× slower. Case C: durations proportional to bytes, one task with 7% of all bytes. Plot duration against bytes (matplotlib scatter) for each. You should see a cloud, one outlier above the line, and a point far to the right on the line.
  2. For case C, simulate speculation: the duplicate of the big task takes as long as the original, so the stage time does not change. Then split the hot key into k = 16 salts and confirm the largest task falls by about 16×.
  3. Join arithmetic: with L = 10 × share_left × rows_left and R = 10 × share_right × rows_right rows for one key, the work is L × R. Compute it for a key with 10× its fair share on both sides and verify it is 100× the fair work, while each side alone looks only 10× too big.

The question. Can you tell the three causes apart from one plot, and which fix, a duplicate or a split, actually shortens the hot-key tail?


Predict

For the stage held up by one hot key, what does speculative execution do to the stage time?

Run it

  1. 1Install uv once. It fetches Python and the lab's packages for you.

    Terminal
    curl -LsSf https://astral.sh/uv/install.sh | sh
  2. 2Get the script. It is the whole lab: read it, then download it.

    triage-salting-and-the-join-product.py83 linesDownload
    View the code
    triage-salting-and-the-join-product.py
    # /// script
    # requires-python = ">=3.10"
    # dependencies = ["numpy", "matplotlib"]
    # ///
    # Copyright (c) 2026 Aayush Sharma · SPDX-License-Identifier: MIT
    # https://thedataengineering.com/lab-code/LICENSE.txt
    """Triage plot, salting and the join product.
    
    Three kinds of long tail on a duration-against-bytes plot; speculation against
    salting for the hot key; and why join skew multiplies.
    """
    import argparse, json
    import numpy as np
    
    p = argparse.ArgumentParser(description=__doc__.splitlines()[0])
    p.add_argument("--tasks", type=int, default=1000, help="Tasks in the stage.")
    p.add_argument("--hot-share", type=float, default=0.07, help="Case C: share of all bytes in the one hot task.")
    p.add_argument("--slow-factor", type=float, default=10.0, help="Case B: how much slower the one slow task is.")
    p.add_argument("--salts", type=int, default=16, help="k: salts the hot key is split into.")
    p.add_argument("--join-skew", type=float, default=10.0, help="A key's multiple of its fair share, on each side of the join.")
    p.add_argument("--plot", help="Save the triage scatter plots to this PNG file.")
    p.add_argument("--seed", type=int, default=0, help="Random seed.")
    p.add_argument("--json", help="Also write the results to this JSON file.")
    args = p.parse_args()
    rng = np.random.default_rng(args.seed)
    n = args.tasks
    MB_PER_S = 2.0                                          # processing rate: duration = bytes / rate
    
    # 1. Three long tails
    # A: equal bytes, random durations
    a_bytes = np.full(n, 100.0)
    a_secs = rng.lognormal(np.log(50), 0.25, n)
    # B: equal bytes, one task many times slower (a slow machine)
    b_bytes = np.full(n, 100.0)
    b_secs = b_bytes / MB_PER_S * rng.normal(1, 0.05, n)
    b_secs[0] *= args.slow_factor
    # C: durations proportional to bytes, one task holding hot_share of all bytes (a hot key)
    c_bytes = rng.normal(100, 10, n).clip(10)
    c_bytes[0] = args.hot_share * c_bytes[1:].sum() / (1 - args.hot_share)
    c_secs = c_bytes / MB_PER_S * rng.normal(1, 0.05, n)
    
    cases = {"A · random durations": (a_bytes, a_secs), "B · one slow task": (b_bytes, b_secs),
             "C · one hot key": (c_bytes, c_secs)}
    tasks, tails = [], []
    for name, (bts, secs) in cases.items():
        med = np.median(secs)
        print(f"{name:<22} slowest task {secs.max():6.0f} s = {secs.max() / med:4.1f}x median, "
              f"holding {bts[secs.argmax()]:,.0f} MB ({bts[secs.argmax()] / np.median(bts):.1f}x median bytes)")
        tasks += [{"case": name, "mb": float(b), "seconds": float(s)} for b, s in zip(bts, secs)]
        tails.append(float(secs.max() / med))
    
    # 2. Case C: speculation against salting
    stage = c_secs.max()
    speculated = max(c_secs.max(), c_secs[0])               # the duplicate reads the same bytes: as slow as the original
    salted = c_secs.copy()
    salted[0] = c_secs[0] / args.salts                       # the hot key split into k salts ...
    salted = np.append(salted, [salted[0]] * (args.salts - 1))   # ... k smaller tasks
    print(f"\nhot task: {c_secs[0]:.0f} s   with speculation: stage {speculated:.0f} s (unchanged)   "
          f"salted k={args.salts}: largest task {c_secs[0] / args.salts:.0f} s ({c_secs[0] / (c_secs[0] / args.salts):.0f}x smaller), "
          f"stage {salted.max():.0f} s")
    
    # 3. The join product: one key's work is L x R
    s = args.join_skew
    print(f"\njoin: a key at {s:g}x its fair share on each side -> each side {s:g}x too big, "
          f"work L x R = {s * s:g}x the fair work")
    
    if args.plot:
        import matplotlib.pyplot as plt
        fig, axes = plt.subplots(1, 3, figsize=(12, 3.5))
        for ax, (name, (bts, secs)) in zip(axes, cases.items()):
            ax.scatter(bts, secs, s=6); ax.set_title(name); ax.set_xlabel("MB read"); ax.set_ylabel("seconds")
        fig.tight_layout(); fig.savefig(args.plot)
    
    if args.json:
        with open(args.json, "w") as f:
            json.dump({"tables": {
                "tasks": tasks,
                "fix": [{"hot_task_s": float(c_secs[0]), "stage_s": float(stage), "speculated_stage_s": float(speculated),
                         "salted_largest_task_s": float(c_secs[0] / args.salts), "salted_stage_s": float(salted.max())}],
                "join": [{"skew_each_side": s, "work_multiple": s * s}],
                "summary": [{"a_tail": tails[0], "b_tail": tails[1], "c_tail": tails[2], "hot_mb": float(c_bytes[0])}],
            }}, f)
    
  3. 3Run it in the folder you saved it to, with the defaults first. Then change a knob from the table below and run it again.

    Terminal
    uv run triage-salting-and-the-join-product.py
    uv run triage-salting-and-the-join-product.py --help     # every knob
Knobs
Knob · defaultWhat it changes
--tasks1000 Tasks in the stage.
--hot-share0.07 Case C: share of all bytes in the one hot task.
--slow-factor10 Case B: how much slower the one slow task is.
--salts16 k: salts the hot key is split into.
--join-skew10 A key's multiple of its fair share, on each side of the join.
--plot— Save the triage scatter plots to this PNG file.
--seed0 Random seed.

Our run

Duration against bytes read, one dot per task · each plot on its own scaleApple M2 · 8 cores · 8 GB

A · random durations

B · one slow task

C · one hot key

Data table
Duration against bytes read, one dot per task · each plot on its own scale
caseMB readSeconds
A · random durations10051.6
A · random durations10048.4
A · random durations10058.7
A · random durations10051.3
A · random durations10043.7
A · random durations10054.7
A · random durations10069.3
A · random durations10063.4
A · random durations10041.9
A · random durations10036.4
A · random durations10042.8
A · random durations10050.5
A · random durations10028
A · random durations10047.3
A · random durations10036.6
A · random durations10041.6
A · random durations10043.6
A · random durations10046.2
A · random durations10055.4
A · random durations10064.9
A · random durations10048.4
A · random durations10070.4
A · random durations10042.3
A · random durations10054.6
A · random durations10062.7
A · random durations10051.2
A · random durations10041.5
A · random durations10039.7
A · random durations10044.6
A · random durations10052.8
A · random durations10038.8
A · random durations10047.5
A · random durations10048
A · random durations10057.2
A · random durations10052.8
A · random durations10054.6
A · random durations10042.5
A · random durations10048.4
A · random durations10060.8
A · random durations10072.6
A · random durations10036.5
A · random durations10073
A · random durations10070
A · random durations10060.8
A · random durations10053.4
A · random durations10046.2
A · random durations10072
A · random durations10081.6
A · random durations10078.4
A · random durations10069.5
A · random durations10054.7
A · random durations10037
A · random durations10049.9
A · random durations10058.9
A · random durations10036.2
A · random durations10055.2
A · random durations10055.7
A · random durations10059.5
A · random durations10037.2
A · random durations10042.4
A · random durations10044.8
A · random durations10037.3
A · random durations10077.2
A · random durations10044.2
A · random durations10054.3
A · random durations10046.9
A · random durations10074.3
A · random durations10069.6
A · random durations10058.6
A · random durations10028.8
A · random durations10050.7
A · random durations10059.3
A · random durations10064.3
A · random durations10042.8
A · random durations10078.8
A · random durations10035.9
A · random durations10042.4
A · random durations10063.2
A · random durations10050.6
A · random durations10082.5
A · random durations10052.4
A · random durations10042.7
A · random durations10045.5
A · random durations10038.1
A · random durations10036.3
A · random durations10058.5
A · random durations10057.8
A · random durations10069.1
A · random durations10041.4
A · random durations10076.3
A · random durations10046.5
A · random durations10074.1
A · random durations10044.9
A · random durations10041.6
A · random durations10053.2
A · random durations10064.7
A · random durations10052.1
A · random durations10043.2
A · random durations10035.8
A · random durations10035.2
A · random durations10056.7
A · random durations10064
A · random durations10048
A · random durations10038.2
A · random durations10062.2
A · random durations10036.3
A · random durations10041.8
A · random durations10058.4
A · random durations10028.5
A · random durations10055.1
A · random durations10043.2
A · random durations10051.4
A · random durations10049.1
A · random durations10052.6
A · random durations10059.5
A · random durations10041.4
A · random durations10071.3
A · random durations10060
A · random durations10061.7
A · random durations10066.9
A · random durations10060.9
A · random durations10061.7
A · random durations10051
A · random durations10035
A · random durations10048.3
A · random durations10041.2
A · random durations10035
A · random durations10053.3
A · random durations10043.4
A · random durations10038.7
A · random durations10038.5
A · random durations10053.5
A · random durations10054.7
A · random durations10069.6
A · random durations10049.8
A · random durations10064.9
A · random durations10071
A · random durations10066.7
A · random durations10027.7
A · random durations10068
A · random durations10054.4
A · random durations10055.6
A · random durations10054.9
A · random durations10055
A · random durations10054.2
A · random durations10045.7
A · random durations10031.1
A · random durations10048.7
A · random durations10040.9
A · random durations10065.5
A · random durations10046.5
A · random durations10051.1
A · random durations10040.4
A · random durations10044
A · random durations10049.9
A · random durations10034.5
A · random durations10053.9
A · random durations10048.7
A · random durations10037.2
A · random durations10027.5
A · random durations10056.8
A · random durations10046.4
A · random durations10043.8
A · random durations10047.1
A · random durations10078.7
A · random durations10049.4
A · random durations10051.1
A · random durations10034.5
A · random durations10075.5
A · random durations10062.9
A · random durations10065.3
A · random durations10050.6
A · random durations10062.9
A · random durations10054.9
A · random durations10058.3
A · random durations10048.1
A · random durations10034.6
A · random durations10064.7
A · random durations10030.8
A · random durations10047.1
A · random durations10047.5
A · random durations10038.5
A · random durations10058.3
A · random durations10047.6
A · random durations10044.8
A · random durations10056.9
A · random durations10044.4
A · random durations10070.8
A · random durations10054.6
A · random durations10044.4
A · random durations10030.8
A · random durations10036.1
A · random durations10065.6
A · random durations10049.4
A · random durations10046.6
A · random durations10075.4
A · random durations10036.3
A · random durations10043.2
A · random durations10044.4
A · random durations10057.9
A · random durations10042.4
A · random durations10042.9
A · random durations10033.5
A · random durations10060
A · random durations10061.2
A · random durations10044.4
A · random durations10052.1
A · random durations10036.2
A · random durations10044.4
A · random durations10070.6
A · random durations10051.7
A · random durations10089.1
A · random durations10041.1
A · random durations10057.8
A · random durations10047.6
A · random durations10057.6
A · random durations10049.9
A · random durations10043.5
A · random durations10040.3
A · random durations100108
A · random durations10049
A · random durations10030.2
A · random durations10042.5
A · random durations10059.2
A · random durations10044.1
A · random durations10070.3
A · random durations10064.2
A · random durations10048.1
A · random durations10044.4
A · random durations10038.9
A · random durations10042
A · random durations10034.6
A · random durations10067.6
A · random durations10074.4
A · random durations10036.5
A · random durations10037.2
A · random durations10032.1
A · random durations10039.3
A · random durations10023
A · random durations10037.6
A · random durations10069.1
A · random durations10045.9
A · random durations10061.9
A · random durations10044.2
A · random durations10077.6
A · random durations10052.6
A · random durations10045.4
A · random durations10094.6
A · random durations10046.1
A · random durations10036.8
A · random durations10052.6
A · random durations10049.5
A · random durations10065.3
A · random durations10039.7
A · random durations10061.1
A · random durations10061.9
A · random durations10042.3
A · random durations10052.1
A · random durations10040.6
A · random durations10089.9
A · random durations10041.9
A · random durations10044.6
A · random durations10038.3
A · random durations10045.9
A · random durations10049.9
A · random durations10060.6
A · random durations10042.9
A · random durations10047.7
A · random durations10035.1
A · random durations10040.7
A · random durations10099.6
A · random durations10064.9
A · random durations10041.1
A · random durations10035.8
A · random durations10039.2
A · random durations10049.7
A · random durations10050.4
A · random durations10041.5
A · random durations10036.2
A · random durations10071.4
A · random durations10056
A · random durations10045.5
A · random durations10047.3
A · random durations10043.8
A · random durations10024
A · random durations10051.5
A · random durations10038.3
A · random durations10038.9
A · random durations10042.6
A · random durations10060
A · random durations10037.3
A · random durations10034.9
A · random durations10058.7
A · random durations10060.4
A · random durations10039.3
A · random durations10057.5
A · random durations10046.5
A · random durations10053.9
A · random durations10036.5
A · random durations10061.6
A · random durations10067.5
A · random durations10058.6
A · random durations10057.5
A · random durations10019.5
A · random durations10053.4
A · random durations10049.7
A · random durations10048.2
A · random durations10042.7
A · random durations10050.7
A · random durations10055.4
A · random durations10046.8
A · random durations10044.5
A · random durations10068
A · random durations10037.9
A · random durations10064.7
A · random durations10052.3
A · random durations10040.9
A · random durations10046.5
A · random durations10039.7
A · random durations10059.2
A · random durations10054.5
A · random durations10043.5
A · random durations10038
A · random durations10053.9
A · random durations10063.5
A · random durations10048.6
A · random durations10055.5
A · random durations10045.5
A · random durations10050.9
A · random durations10046.5
A · random durations10053.8
A · random durations10034.3
A · random durations10058.7
A · random durations10047.2
A · random durations10054.7
A · random durations10045.9
A · random durations10054.2
A · random durations10038.2
A · random durations10067.3
A · random durations10032.7
A · random durations10038.6
A · random durations10053
A · random durations10072.1
A · random durations10053.6
A · random durations10047
A · random durations10035
A · random durations10047.7
A · random durations10049.8
A · random durations10076.3
A · random durations10058.4
A · random durations10034.1
A · random durations10083
A · random durations10045.3
A · random durations10040.1
A · random durations10072.3
A · random durations10049.4
A · random durations10045.6
A · random durations10052.8
A · random durations10061.8
A · random durations10064.1
A · random durations10035.5
A · random durations10082.4
A · random durations10063.4
A · random durations10045.5
A · random durations10040.7
A · random durations10039.2
A · random durations10051.6
A · random durations10042.5
A · random durations10041.3
A · random durations10061.2
A · random durations10054.8
A · random durations10045.3
A · random durations10060.1
A · random durations10070.4
A · random durations10038
A · random durations10043
A · random durations10063.3
A · random durations10059.8
A · random durations10052.9
A · random durations10066.9
A · random durations10038.1
A · random durations10034.5
A · random durations10040.3
A · random durations10051.6
A · random durations10041
A · random durations10044.3
A · random durations10039.2
A · random durations10042.8
A · random durations10038.9
A · random durations10054.8
A · random durations10061
A · random durations10044.3
A · random durations10047.5
A · random durations10043.2
A · random durations10057.1
A · random durations10051.1
A · random durations10074.5
A · random durations10038
A · random durations10054.7
A · random durations10055.9
A · random durations10045.7
A · random durations10057.9
A · random durations10034.9
A · random durations10084.9
A · random durations10035.7
A · random durations10062.9
A · random durations10037.8
A · random durations10066.7
A · random durations10045.4
A · random durations10052
A · random durations10050.7
A · random durations10065.8
A · random durations10046.1
A · random durations10023.8
A · random durations10041.3
A · random durations10052.3
A · random durations10044.8
A · random durations10060.6
A · random durations10064.4
A · random durations10048.2
A · random durations10034.5
A · random durations10070.7
A · random durations10065.5
A · random durations10046.4
A · random durations10084.7
A · random durations10045.8
A · random durations10037.6
A · random durations10048.1
A · random durations10065.5
A · random durations10039.6
A · random durations10081.4
A · random durations10040
A · random durations10063.5
A · random durations10057.3
A · random durations10048.1
A · random durations10065.5
A · random durations10034.4
A · random durations10070.2
A · random durations10049.2
A · random durations10043.7
A · random durations10060.3
A · random durations10065.2
A · random durations10060.6
A · random durations10082.4
A · random durations10065.5
A · random durations10068.9
A · random durations10043.7
A · random durations10051.3
A · random durations10057.6
A · random durations10049.8
A · random durations10053.9
A · random durations10055.6
A · random durations10061.7
A · random durations10048.7
A · random durations10045.8
A · random durations10040.6
A · random durations10040
A · random durations10067
A · random durations10049
A · random durations10060.9
A · random durations10036.2
A · random durations10030.8
A · random durations10038.5
A · random durations10066.6
A · random durations10065.3
A · random durations10054.3
A · random durations10040.9
A · random durations10048.4
A · random durations10046.4
A · random durations10045.9
A · random durations10026.7
A · random durations10040.3
A · random durations10047.7
A · random durations10073
A · random durations10052.1
A · random durations10071
A · random durations10045.3
A · random durations10046.9
A · random durations10018.9
A · random durations10056.1
A · random durations10057.3
A · random durations10077.7
A · random durations10044.3
A · random durations10051.2
A · random durations10041.9
A · random durations10037.3
A · random durations10041.8
A · random durations10045.9
A · random durations10070.2
A · random durations10050
A · random durations10041
A · random durations10051.8
A · random durations10052.8
A · random durations10042.2
A · random durations10066.5
A · random durations10031.2
A · random durations10047.4
A · random durations10059
A · random durations10035.8
A · random durations10054.7
A · random durations10069.1
A · random durations10056
A · random durations10032.8
A · random durations10041.7
A · random durations10068
A · random durations10053.9
A · random durations10049.9
A · random durations10055.8
A · random durations10059.9
A · random durations10041.9
A · random durations10046.5
A · random durations10051.8
A · random durations10043.6
A · random durations10048.4
A · random durations10069.2
A · random durations10039.3
A · random durations10080.9
A · random durations10080
A · random durations10032.6
A · random durations10048.3
A · random durations10054.5
A · random durations10041.3
A · random durations10041.5
A · random durations10047.1
A · random durations10060.1
A · random durations10044
A · random durations10078.9
A · random durations10053.8
A · random durations10048.7
A · random durations10071.8
A · random durations10058.5
A · random durations10054.8
A · random durations10046
A · random durations10078.7
A · random durations10061.3
A · random durations10047.5
A · random durations10033.7
A · random durations10054.9
A · random durations10037.6
A · random durations10032.6
A · random durations10046.6
A · random durations10053.6
A · random durations10068.9
A · random durations10053.7
A · random durations10061.2
A · random durations10036.8
A · random durations10049.7
A · random durations10051.6
A · random durations10062
A · random durations10051.5
A · random durations10061.1
A · random durations10044.1
A · random durations10054.7
A · random durations10055.5
A · random durations10036.6
A · random durations10052.2
A · random durations10046.2
A · random durations10031.1
A · random durations10063.5
A · random durations10045.7
A · random durations10040.4
A · random durations10045.5
A · random durations10051.8
A · random durations10072.9
A · random durations10048
A · random durations10056.3
A · random durations10070.5
A · random durations10057.1
A · random durations10065.3
A · random durations10044.4
A · random durations10060.6
A · random durations10049.3
A · random durations10065.4
A · random durations10038.9
A · random durations10041.1
A · random durations10068.7
A · random durations10047.6
A · random durations10045.7
A · random durations10051
A · random durations10042.1
A · random durations10069.8
A · random durations10036.6
A · random durations10048.2
A · random durations10054.5
A · random durations10048.7
A · random durations10040.9
A · random durations10040.2
A · random durations10055.6
A · random durations10038.6
A · random durations10058.8
A · random durations10034.2
A · random durations10043.5
A · random durations10050.5
A · random durations10036.6
A · random durations10058.9
A · random durations10049.8
A · random durations10038.6
A · random durations10034.2
A · random durations10033.8
A · random durations10050.6
A · random durations10037.4
A · random durations10035.5
A · random durations10047.2
A · random durations10088.4
A · random durations10053.6
A · random durations10060.5
A · random durations10052.7
A · random durations10060.8
A · random durations10035.7
A · random durations10044.9
A · random durations10053.4
A · random durations10049.8
A · random durations10047.7
A · random durations10042.3
A · random durations10046.9
A · random durations10041.2
A · random durations10027.3
A · random durations10037.1
A · random durations10056.3
A · random durations10073.8
A · random durations10078.7
A · random durations10051.2
A · random durations10062.5
A · random durations10062.7
A · random durations10042.1
A · random durations10032.7
A · random durations10050.4
A · random durations10032.2
A · random durations10046.2
A · random durations10058.2
A · random durations10035.1
A · random durations10050.4
A · random durations10068.2
A · random durations10054.7
A · random durations10057
A · random durations10062.7
A · random durations10077.1
A · random durations10051.9
A · random durations10068
A · random durations10049.2
A · random durations10043.6
A · random durations10054.1
A · random durations10043
A · random durations10043.3
A · random durations10043
A · random durations10028.2
A · random durations10051.3
A · random durations10036.5
A · random durations10048.7
A · random durations10071.8
A · random durations10043.9
A · random durations10043.7
A · random durations10070.3
A · random durations10057.3
A · random durations10063.8
A · random durations10045.8
A · random durations10060.3
A · random durations10042.1
A · random durations10042.2
A · random durations10058
A · random durations10043.1
A · random durations10060.6
A · random durations10090.9
A · random durations10032.8
A · random durations10041.4
A · random durations10066.2
A · random durations10048.2
A · random durations10066.8
A · random durations10038.8
A · random durations10054.3
A · random durations10048.2
A · random durations10051.8
A · random durations10054.3
A · random durations10036.9
A · random durations10038.2
A · random durations10070.9
A · random durations10053.8
A · random durations10051.3
A · random durations10049.5
A · random durations10054.7
A · random durations10037.5
A · random durations10038.9
A · random durations10069.3
A · random durations10051.9
A · random durations10061.8
A · random durations10043
A · random durations10070.5
A · random durations10054.5
A · random durations10056.4
A · random durations10057.4
A · random durations10041
A · random durations10031.4
A · random durations10038.2
A · random durations10075.2
A · random durations10069.2
A · random durations10045.8
A · random durations10046.4
A · random durations10064.8
A · random durations10047.9
A · random durations10036.1
A · random durations10068.6
A · random durations10056.3
A · random durations10026.7
A · random durations10046.2
A · random durations10051.8
A · random durations10056.4
A · random durations10051.9
A · random durations10042.7
A · random durations10048.6
A · random durations10053.8
A · random durations10046.8
A · random durations10045.6
A · random durations10068.4
A · random durations10039.5
A · random durations10045.8
A · random durations10030.1
A · random durations10057.2
A · random durations10061.5
A · random durations10057.3
A · random durations10062.9
A · random durations10055.8
A · random durations10054.5
A · random durations10056.3
A · random durations10046.8
A · random durations10067.3
A · random durations10045.8
A · random durations10034.7
A · random durations10061.8
A · random durations10079.4
A · random durations10039.3
A · random durations10048.7
A · random durations10042.1
A · random durations10045.5
A · random durations10050.6
A · random durations10036.7
A · random durations10046.6
A · random durations10034.7
A · random durations10043.4
A · random durations10037.2
A · random durations10038.4
A · random durations10032.5
A · random durations10067.8
A · random durations10056.8
A · random durations10031
A · random durations10043.1
A · random durations10042.3
A · random durations10042.1
A · random durations10034.8
A · random durations10060.4
A · random durations10045.3
A · random durations10056.2
A · random durations10057
A · random durations10070.5
A · random durations10031.8
A · random durations10077.2
A · random durations10068.7
A · random durations10057.7
A · random durations10090.7
A · random durations10052.6
A · random durations10061.4
A · random durations10041.6
A · random durations10066.4
A · random durations10052.1
A · random durations10044.7
A · random durations10084.9
A · random durations10046.3
A · random durations10050.1
A · random durations10047.6
A · random durations10041.4
A · random durations10057.1
A · random durations10060.1
A · random durations10054.6
A · random durations10027.7
A · random durations10064.3
A · random durations10045.8
A · random durations10036.9
A · random durations10058.1
A · random durations10057.6
A · random durations10038.5
A · random durations10092.8
A · random durations10037
A · random durations10032.4
A · random durations10037.5
A · random durations10071.3
A · random durations10047.8
A · random durations10045.6
A · random durations10049.2
A · random durations10043.1
A · random durations10042.1
A · random durations10042.6
A · random durations10059.7
A · random durations10064.5
A · random durations10038.4
A · random durations10053.1
A · random durations10060.9
A · random durations10038.2
A · random durations10044.1
A · random durations10038.6
A · random durations10036.2
A · random durations10051.3
A · random durations10041.6
A · random durations10058.5
A · random durations10049.6
A · random durations10055.4
A · random durations10046.5
A · random durations10042.7
A · random durations10048.9
A · random durations10049.9
A · random durations10041.9
A · random durations10055.6
A · random durations10060.3
A · random durations10052
A · random durations10076.7
A · random durations10042.7
A · random durations10056.9
A · random durations10045.1
A · random durations10053
A · random durations10040.6
A · random durations10066.1
A · random durations10052.2
A · random durations10067.4
A · random durations10036.4
A · random durations10044.2
A · random durations10040
A · random durations10043.8
A · random durations10042.1
A · random durations10048.5
A · random durations10049.8
A · random durations10049.5
A · random durations10043.5
A · random durations10052.4
A · random durations10062.2
A · random durations10039.9
A · random durations10050
A · random durations10049.1
A · random durations10056.2
A · random durations10049.2
A · random durations10049.8
A · random durations10039
A · random durations10050.3
A · random durations10039.7
A · random durations10056.9
A · random durations10048.7
A · random durations10050.5
A · random durations10040
A · random durations10061.1
A · random durations10059.4
A · random durations10062
A · random durations10087.3
A · random durations10049.3
A · random durations10067.6
A · random durations10048.5
A · random durations10055.2
A · random durations10054.8
A · random durations10053.4
A · random durations10058.9
A · random durations10046.3
A · random durations10050.5
A · random durations10057.2
A · random durations10077.4
A · random durations10040.5
A · random durations10031.8
A · random durations10044.3
A · random durations10051.1
A · random durations10052.2
A · random durations10051.2
A · random durations10067.2
A · random durations10063.8
A · random durations10049.4
A · random durations10044.5
A · random durations10045.9
A · random durations10045.7
A · random durations10047.3
A · random durations10033.7
A · random durations10044.6
A · random durations10045
A · random durations10047.7
A · random durations10046.9
A · random durations10059.1
A · random durations10043.8
A · random durations10044.8
A · random durations10057.3
A · random durations10047.1
A · random durations10052.8
A · random durations10059.1
A · random durations10055.6
A · random durations10053.2
A · random durations10047.6
A · random durations10059.3
A · random durations10052.2
A · random durations10044.1
A · random durations10048.1
A · random durations10036.9
A · random durations10039.3
A · random durations10031.2
A · random durations10042.2
A · random durations10069.8
A · random durations10043.5
A · random durations10060.9
A · random durations10050
A · random durations10042
A · random durations10069.9
A · random durations10057.8
A · random durations10032.3
A · random durations10064.9
A · random durations10038.2
A · random durations10047.8
A · random durations10059.1
A · random durations10046.4
A · random durations10066.1
A · random durations10060.5
A · random durations10033.7
A · random durations10044.4
A · random durations10053.7
A · random durations10043.3
A · random durations10047.4
A · random durations10061.1
A · random durations10054.1
A · random durations10039.7
A · random durations10052.2
A · random durations10042.9
A · random durations10036.9
A · random durations10037.7
A · random durations10053.7
A · random durations10049.6
A · random durations10050.1
A · random durations10037.5
A · random durations10047.8
A · random durations10038.6
A · random durations10039.7
A · random durations10048
A · random durations10035.4
A · random durations10059.1
A · random durations10093.1
A · random durations10056.1
A · random durations10038.5
A · random durations10046.7
A · random durations10033.9
A · random durations10045.5
A · random durations10056.8
A · random durations10057.9
A · random durations10038.6
A · random durations10053.9
A · random durations10066.8
A · random durations10077.5
A · random durations10042
A · random durations10040.3
A · random durations10050.7
A · random durations10024
A · random durations10043.8
A · random durations10046.7
A · random durations10044.6
A · random durations10033.7
A · random durations10047
A · random durations10041.2
A · random durations10060.4
A · random durations10039.7
A · random durations10046.6
A · random durations10047.2
A · random durations10057.6
A · random durations10026.5
A · random durations10045.9
A · random durations10060.5
A · random durations10045.7
A · random durations10034.1
A · random durations10054.3
A · random durations10054.4
A · random durations10046.7
A · random durations10037.4
A · random durations10041.5
A · random durations10046.2
A · random durations10040.2
A · random durations10030.9
A · random durations10041.3
A · random durations10049.2
A · random durations10044
A · random durations10049.1
A · random durations10051.1
A · random durations10062.6
A · random durations10086.7
A · random durations10060
A · random durations10035.2
A · random durations10025.7
A · random durations10048.8
A · random durations10050.9
A · random durations10037.4
A · random durations10053.5
A · random durations10041.3
A · random durations10055.3
A · random durations10046.1
A · random durations10055.2
A · random durations10032.3
A · random durations10044.8
A · random durations10048.2
A · random durations10035
A · random durations10080
A · random durations10043.7
A · random durations10070.8
A · random durations10042.3
A · random durations10047.2
B · one slow task100530
B · one slow task10050.8
B · one slow task10050.5
B · one slow task10050.7
B · one slow task10046.6
B · one slow task10049
B · one slow task10047.6
B · one slow task10050.5
B · one slow task10048.6
B · one slow task10049.9
B · one slow task10049.8
B · one slow task10049.9
B · one slow task10049.9
B · one slow task10048.4
B · one slow task10047.4
B · one slow task10048.3
B · one slow task10052.7
B · one slow task10050.9
B · one slow task10051.5
B · one slow task10053.4
B · one slow task10047.1
B · one slow task10051.3
B · one slow task10047.3
B · one slow task10049.2
B · one slow task10051.2
B · one slow task10054
B · one slow task10048
B · one slow task10049.8
B · one slow task10052.9
B · one slow task10046.3
B · one slow task10050.9
B · one slow task10049.2
B · one slow task10047.8
B · one slow task10050.4
B · one slow task10051.5
B · one slow task10047.7
B · one slow task10050.9
B · one slow task10050.4
B · one slow task10046.9
B · one slow task10053.9
B · one slow task10052.7
B · one slow task10047.9
B · one slow task10048.5
B · one slow task10051.9
B · one slow task10048.8
B · one slow task10045.4
B · one slow task10052.6
B · one slow task10050
B · one slow task10054.8
B · one slow task10050.9
B · one slow task10050.5
B · one slow task10057.2
B · one slow task10049.6
B · one slow task10047.6
B · one slow task10050.6
B · one slow task10052.8
B · one slow task10047.1
B · one slow task10047.7
B · one slow task10051.1
B · one slow task10042
B · one slow task10047.3
B · one slow task10052
B · one slow task10048.5
B · one slow task10045.9
B · one slow task10054.8
B · one slow task10046.5
B · one slow task10048.7
B · one slow task10049.1
B · one slow task10050.2
B · one slow task10049.1
B · one slow task10049.8
B · one slow task10050.1
B · one slow task10049.8
B · one slow task10050.2
B · one slow task10044.1
B · one slow task10051.1
B · one slow task10046.5
B · one slow task10044.6
B · one slow task10053.5
B · one slow task10046.8
B · one slow task10050.4
B · one slow task10048.1
B · one slow task10048.3
B · one slow task10051.2
B · one slow task10047.4
B · one slow task10050.9
B · one slow task10051
B · one slow task10052.9
B · one slow task10049.2
B · one slow task10052.6
B · one slow task10054.3
B · one slow task10054
B · one slow task10051.5
B · one slow task10051.1
B · one slow task10057.1
B · one slow task10055.6
B · one slow task10048.1
B · one slow task10052.3
B · one slow task10051.5
B · one slow task10050.2
B · one slow task10050.4
B · one slow task10051.2
B · one slow task10052.3
B · one slow task10050.5
B · one slow task10050.8
B · one slow task10053.5
B · one slow task10050.8
B · one slow task10051.4
B · one slow task10052.5
B · one slow task10054.1
B · one slow task10053.1
B · one slow task10050.9
B · one slow task10050.5
B · one slow task10046.9
B · one slow task10050.7
B · one slow task10047.4
B · one slow task10047.4
B · one slow task10051.6
B · one slow task10049.7
B · one slow task10051.2
B · one slow task10048.4
B · one slow task10053
B · one slow task10050.4
B · one slow task10053
B · one slow task10051.7
B · one slow task10050.4
B · one slow task10048.8
B · one slow task10050.1
B · one slow task10052.1
B · one slow task10051.7
B · one slow task10047
B · one slow task10052.6
B · one slow task10049.5
B · one slow task10052
B · one slow task10048.3
B · one slow task10051.6
B · one slow task10048
B · one slow task10050.3
B · one slow task10049.3
B · one slow task10049.3
B · one slow task10048.6
B · one slow task10049.6
B · one slow task10045.6
B · one slow task10052.2
B · one slow task10052.4
B · one slow task10048.9
B · one slow task10046.6
B · one slow task10048.4
B · one slow task10052.4
B · one slow task10051.6
B · one slow task10049.2
B · one slow task10052.2
B · one slow task10047.4
B · one slow task10048.5
B · one slow task10051.2
B · one slow task10049.8
B · one slow task10048.5
B · one slow task10043.7
B · one slow task10051.7
B · one slow task10050.8
B · one slow task10045.6
B · one slow task10051.5
B · one slow task10050
B · one slow task10050.7
B · one slow task10052.4
B · one slow task10048.2
B · one slow task10051.8
B · one slow task10051.7
B · one slow task10051.9
B · one slow task10054.1
B · one slow task10051.6
B · one slow task10048.6
B · one slow task10054.5
B · one slow task10047.2
B · one slow task10048.8
B · one slow task10047.6
B · one slow task10049.7
B · one slow task10052.7
B · one slow task10053.2
B · one slow task10051.2
B · one slow task10048.5
B · one slow task10048.6
B · one slow task10048.5
B · one slow task10052.4
B · one slow task10047.7
B · one slow task10052.2
B · one slow task10049.9
B · one slow task10050.4
B · one slow task10053.8
B · one slow task10048.8
B · one slow task10054.2
B · one slow task10046.5
B · one slow task10047.9
B · one slow task10046.1
B · one slow task10048.1
B · one slow task10051.5
B · one slow task10051.8
B · one slow task10050.8
B · one slow task10050.7
B · one slow task10047.1
B · one slow task10046.7
B · one slow task10050.8
B · one slow task10053.4
B · one slow task10049.1
B · one slow task10046.8
B · one slow task10046.2
B · one slow task10048.3
B · one slow task10053.9
B · one slow task10049.5
B · one slow task10047.4
B · one slow task10048.5
B · one slow task10048.8
B · one slow task10050.7
B · one slow task10048.3
B · one slow task10047.8
B · one slow task10049.5
B · one slow task10051.2
B · one slow task10051.8
B · one slow task10051.4
B · one slow task10048.9
B · one slow task10045.8
B · one slow task10048
B · one slow task10050.7
B · one slow task10046.7
B · one slow task10050.6
B · one slow task10048.5
B · one slow task10048.5
B · one slow task10052.8
B · one slow task10050.5
B · one slow task10053.4
B · one slow task10047.7
B · one slow task10052.8
B · one slow task10052.3
B · one slow task10042.5
B · one slow task10049.8
B · one slow task10053.9
B · one slow task10051.9
B · one slow task10048.9
B · one slow task10049.4
B · one slow task10046.7
B · one slow task10050.5
B · one slow task10045.5
B · one slow task10047.5
B · one slow task10052.8
B · one slow task10049.9
B · one slow task10049.1
B · one slow task10049.7
B · one slow task10056.9
B · one slow task10052.6
B · one slow task10048.1
B · one slow task10054.2
B · one slow task10049.8
B · one slow task10051.8
B · one slow task10048.5
B · one slow task10047.7
B · one slow task10052
B · one slow task10048.1
B · one slow task10048
B · one slow task10052.2
B · one slow task10047.1
B · one slow task10046.5
B · one slow task10051.4
B · one slow task10045.1
B · one slow task10048.1
B · one slow task10049.1
B · one slow task10046.6
B · one slow task10047.2
B · one slow task10051.7
B · one slow task10050.7
B · one slow task10047.6
B · one slow task10051.3
B · one slow task10053.8
B · one slow task10046.8
B · one slow task10050.2
B · one slow task10054.9
B · one slow task10051.5
B · one slow task10052
B · one slow task10049.5
B · one slow task10048
B · one slow task10052.9
B · one slow task10051.6
B · one slow task10049.9
B · one slow task10048.8
B · one slow task10045.6
B · one slow task10050.4
B · one slow task10048.3
B · one slow task10049.7
B · one slow task10051.7
B · one slow task10052.1
B · one slow task10051.8
B · one slow task10055.6
B · one slow task10052.9
B · one slow task10048.1
B · one slow task10048
B · one slow task10055.8
B · one slow task10048.3
B · one slow task10049.9
B · one slow task10054.4
B · one slow task10054.3
B · one slow task10049.9
B · one slow task10050.6
B · one slow task10045.9
B · one slow task10047.7
B · one slow task10049.1
B · one slow task10050
B · one slow task10049.2
B · one slow task10050.4
B · one slow task10055.5
B · one slow task10051.2
B · one slow task10050.8
B · one slow task10050
B · one slow task10049.6
B · one slow task10053.1
B · one slow task10047.5
B · one slow task10049.7
B · one slow task10047.3
B · one slow task10050.2
B · one slow task10050.3
B · one slow task10052.3
B · one slow task10053
B · one slow task10051.7
B · one slow task10054.1
B · one slow task10054
B · one slow task10050.8
B · one slow task10050.9
B · one slow task10045.2
B · one slow task10050.8
B · one slow task10050
B · one slow task10045.8
B · one slow task10048.9
B · one slow task10052.4
B · one slow task10046.9
B · one slow task10053.2
B · one slow task10051.2
B · one slow task10049.4
B · one slow task10049.6
B · one slow task10052.1
B · one slow task10046.4
B · one slow task10055.1
B · one slow task10048
B · one slow task10048.1
B · one slow task10053.1
B · one slow task10052
B · one slow task10053.3
B · one slow task10052.6
B · one slow task10050.9
B · one slow task10046.8
B · one slow task10048.8
B · one slow task10050.5
B · one slow task10050
B · one slow task10044.9
B · one slow task10052.6
B · one slow task10054.3
B · one slow task10053.7
B · one slow task10047.5
B · one slow task10051.1
B · one slow task10044.7
B · one slow task10054.2
B · one slow task10045.2
B · one slow task10051
B · one slow task10052.9
B · one slow task10053.2
B · one slow task10050.9
B · one slow task10046.4
B · one slow task10049.7
B · one slow task10049.3
B · one slow task10050.9
B · one slow task10052.5
B · one slow task10051.7
B · one slow task10055.3
B · one slow task10051.7
B · one slow task10049
B · one slow task10054.1
B · one slow task10049.2
B · one slow task10050.7
B · one slow task10050.5
B · one slow task10044.3
B · one slow task10050.7
B · one slow task10050.7
B · one slow task10049.5
B · one slow task10049.6
B · one slow task10046.8
B · one slow task10050.2
B · one slow task10053.8
B · one slow task10049.6
B · one slow task10048.7
B · one slow task10048.5
B · one slow task10055
B · one slow task10046.6
B · one slow task10052.1
B · one slow task10050.3
B · one slow task10054.8
B · one slow task10053.3
B · one slow task10049.8
B · one slow task10046.1
B · one slow task10053.6
B · one slow task10053.6
B · one slow task10047.2
B · one slow task10051.9
B · one slow task10048
B · one slow task10048.1
B · one slow task10046
B · one slow task10052.3
B · one slow task10050.7
B · one slow task10051.2
B · one slow task10053.6
B · one slow task10051.7
B · one slow task10051.5
B · one slow task10051.9
B · one slow task10047.3
B · one slow task10049.9
B · one slow task10047
B · one slow task10047.8
B · one slow task10049.8
B · one slow task10052.7
B · one slow task10055.1
B · one slow task10047.3
B · one slow task10050.4
B · one slow task10049.8
B · one slow task10051.3
B · one slow task10051.5
B · one slow task10050.9
B · one slow task10047.6
B · one slow task10051
B · one slow task10052.2
B · one slow task10048.7
B · one slow task10054.9
B · one slow task10049.4
B · one slow task10048.4
B · one slow task10050.7
B · one slow task10049.4
B · one slow task10046.6
B · one slow task10049.9
B · one slow task10054
B · one slow task10055
B · one slow task10048.6
B · one slow task10052.3
B · one slow task10050.3
B · one slow task10050.7
B · one slow task10053.2
B · one slow task10052.1
B · one slow task10050.4
B · one slow task10047.7
B · one slow task10047.2
B · one slow task10049.8
B · one slow task10050.8
B · one slow task10051.3
B · one slow task10052
B · one slow task10052.4
B · one slow task10044
B · one slow task10052.3
B · one slow task10047.4
B · one slow task10052.8
B · one slow task10050.8
B · one slow task10051.6
B · one slow task10048.6
B · one slow task10050.7
B · one slow task10045.3
B · one slow task10052.7
B · one slow task10049.2
B · one slow task10043.5
B · one slow task10052.7
B · one slow task10054.2
B · one slow task10047.8
B · one slow task10053
B · one slow task10048.1
B · one slow task10044.3
B · one slow task10049.1
B · one slow task10050.8
B · one slow task10050.3
B · one slow task10050.3
B · one slow task10050.7
B · one slow task10050.5
B · one slow task10049.5
B · one slow task10048.5
B · one slow task10049.3
B · one slow task10049.1
B · one slow task10049.2
B · one slow task10047.2
B · one slow task10048.6
B · one slow task10050.2
B · one slow task10050.8
B · one slow task10049.8
B · one slow task10049.5
B · one slow task10051.3
B · one slow task10052
B · one slow task10051.7
B · one slow task10045.6
B · one slow task10048.9
B · one slow task10051.8
B · one slow task10051.3
B · one slow task10051.7
B · one slow task10050.8
B · one slow task10047.9
B · one slow task10053.1
B · one slow task10046.6
B · one slow task10052.5
B · one slow task10050
B · one slow task10046.3
B · one slow task10049
B · one slow task10053
B · one slow task10048.5
B · one slow task10047
B · one slow task10049.3
B · one slow task10048
B · one slow task10046.9
B · one slow task10051.1
B · one slow task10052
B · one slow task10048.6
B · one slow task10051.3
B · one slow task10049
B · one slow task10049.8
B · one slow task10050.3
B · one slow task10053.7
B · one slow task10051.3
B · one slow task10047.5
B · one slow task10051.3
B · one slow task10049.4
B · one slow task10048.8
B · one slow task10047.9
B · one slow task10049.9
B · one slow task10049.8
B · one slow task10049
B · one slow task10046.5
B · one slow task10045.7
B · one slow task10050.3
B · one slow task10050.4
B · one slow task10055.5
B · one slow task10049.6
B · one slow task10052.6
B · one slow task10053
B · one slow task10049.8
B · one slow task10050.2
B · one slow task10048.9
B · one slow task10054.4
B · one slow task10046.2
B · one slow task10049.9
B · one slow task10053.5
B · one slow task10049.7
B · one slow task10048.6
B · one slow task10050.6
B · one slow task10051.3
B · one slow task10051.4
B · one slow task10050.7
B · one slow task10051.9
B · one slow task10052.4
B · one slow task10047.2
B · one slow task10049.1
B · one slow task10052.2
B · one slow task10051.2
B · one slow task10050.6
B · one slow task10051.7
B · one slow task10052.4
B · one slow task10047.9
B · one slow task10046.9
B · one slow task10047.1
B · one slow task10054.6
B · one slow task10047.4
B · one slow task10049.4
B · one slow task10049.5
B · one slow task10052.6
B · one slow task10045.7
B · one slow task10049.9
B · one slow task10053
B · one slow task10052.8
B · one slow task10051
B · one slow task10049.3
B · one slow task10054.4
B · one slow task10045.8
B · one slow task10052.5
B · one slow task10051.3
B · one slow task10051.5
B · one slow task10050.7
B · one slow task10050.5
B · one slow task10052.3
B · one slow task10047.1
B · one slow task10046.9
B · one slow task10050.4
B · one slow task10050.1
B · one slow task10050.4
B · one slow task10054
B · one slow task10048.6
B · one slow task10051.9
B · one slow task10051
B · one slow task10055.9
B · one slow task10046.5
B · one slow task10048.6
B · one slow task10048.9
B · one slow task10053.3
B · one slow task10048
B · one slow task10054.1
B · one slow task10054
B · one slow task10052.2
B · one slow task10051.1
B · one slow task10046.1
B · one slow task10050.5
B · one slow task10046.4
B · one slow task10049.1
B · one slow task10050.5
B · one slow task10049.2
B · one slow task10052.4
B · one slow task10049.7
B · one slow task10046.1
B · one slow task10047.3
B · one slow task10046.8
B · one slow task10049.2
B · one slow task10053.1
B · one slow task10051.3
B · one slow task10050.8
B · one slow task10046.8
B · one slow task10055.9
B · one slow task10049.9
B · one slow task10056
B · one slow task10047.8
B · one slow task10048.6
B · one slow task10056.5
B · one slow task10047.3
B · one slow task10051
B · one slow task10049.2
B · one slow task10048
B · one slow task10055.4
B · one slow task10047.5
B · one slow task10052.2
B · one slow task10052.8
B · one slow task10047.5
B · one slow task10045.3
B · one slow task10045.5
B · one slow task10048
B · one slow task10050.6
B · one slow task10050.8
B · one slow task10049.5
B · one slow task10049.7
B · one slow task10052.4
B · one slow task10051.9
B · one slow task10050.9
B · one slow task10048.5
B · one slow task10051.9
B · one slow task10050.5
B · one slow task10048.1
B · one slow task10048.6
B · one slow task10053.1
B · one slow task10054.6
B · one slow task10048.7
B · one slow task10044.8
B · one slow task10051.5
B · one slow task10047.7
B · one slow task10051.8
B · one slow task10049.1
B · one slow task10055.6
B · one slow task10050.3
B · one slow task10052.3
B · one slow task10047
B · one slow task10043
B · one slow task10050.3
B · one slow task10050.7
B · one slow task10051.8
B · one slow task10048.6
B · one slow task10046.8
B · one slow task10046
B · one slow task10051.4
B · one slow task10051.8
B · one slow task10047.8
B · one slow task10048.7
B · one slow task10048.2
B · one slow task10045.3
B · one slow task10050.5
B · one slow task10052.1
B · one slow task10049.4
B · one slow task10046.4
B · one slow task10049.5
B · one slow task10053.4
B · one slow task10055.3
B · one slow task10050.7
B · one slow task10048
B · one slow task10045
B · one slow task10046.1
B · one slow task10049.8
B · one slow task10050.6
B · one slow task10050.6
B · one slow task10049.3
B · one slow task10046.1
B · one slow task10046.1
B · one slow task10050.4
B · one slow task10047.9
B · one slow task10053.3
B · one slow task10046.4
B · one slow task10054.2
B · one slow task10048.3
B · one slow task10050.6
B · one slow task10050.6
B · one slow task10049.1
B · one slow task10045
B · one slow task10048.8
B · one slow task10053.8
B · one slow task10046.8
B · one slow task10045.4
B · one slow task10049.5
B · one slow task10049
B · one slow task10046.8
B · one slow task10048.1
B · one slow task10048.8
B · one slow task10049
B · one slow task10050.4
B · one slow task10051.8
B · one slow task10051
B · one slow task10050.9
B · one slow task10054.2
B · one slow task10052.7
B · one slow task10042.7
B · one slow task10049.1
B · one slow task10046.1
B · one slow task10048.3
B · one slow task10051.9
B · one slow task10049.5
B · one slow task10048.9
B · one slow task10053.3
B · one slow task10046.2
B · one slow task10049.8
B · one slow task10051.4
B · one slow task10050.1
B · one slow task10047.1
B · one slow task10049.9
B · one slow task10052
B · one slow task10050.9
B · one slow task10050.8
B · one slow task10050.8
B · one slow task10050.3
B · one slow task10046.9
B · one slow task10049.2
B · one slow task10051.1
B · one slow task10042.2
B · one slow task10051.9
B · one slow task10050.8
B · one slow task10047.3
B · one slow task10048.1
B · one slow task10049.5
B · one slow task10051
B · one slow task10049.1
B · one slow task10052.9
B · one slow task10051
B · one slow task10048
B · one slow task10048.8
B · one slow task10050.6
B · one slow task10051.8
B · one slow task10051.7
B · one slow task10049.8
B · one slow task10050.4
B · one slow task10049.9
B · one slow task10052.1
B · one slow task10047.5
B · one slow task10051.5
B · one slow task10045.4
B · one slow task10051.1
B · one slow task10050.6
B · one slow task10050
B · one slow task10044.7
B · one slow task10053.9
B · one slow task10052.2
B · one slow task10050.1
B · one slow task10051.1
B · one slow task10047.7
B · one slow task10051.3
B · one slow task10053.9
B · one slow task10047.1
B · one slow task10056.7
B · one slow task10048.9
B · one slow task10052.1
B · one slow task10047.9
B · one slow task10051
B · one slow task10046.8
B · one slow task10048.4
B · one slow task10049.4
B · one slow task10048.4
B · one slow task10049.4
B · one slow task10052.4
B · one slow task10046.8
B · one slow task10047
B · one slow task10050.1
B · one slow task10048.6
B · one slow task10047.5
B · one slow task10050.3
B · one slow task10048.6
B · one slow task10050.8
B · one slow task10049.9
B · one slow task10049.5
B · one slow task10049.8
B · one slow task10052.6
B · one slow task10053.3
B · one slow task10049.6
B · one slow task10047.4
B · one slow task10046.2
B · one slow task10044.4
B · one slow task10047.1
B · one slow task10047.9
B · one slow task10049.9
B · one slow task10045.3
B · one slow task10053.6
B · one slow task10052.7
B · one slow task10053.1
B · one slow task10048.7
B · one slow task10050.6
B · one slow task10047.6
B · one slow task10053.9
B · one slow task10047
B · one slow task10048.7
B · one slow task10053.6
B · one slow task10056.2
B · one slow task10049.8
B · one slow task10049
B · one slow task10043.7
B · one slow task10054.3
B · one slow task10050.8
B · one slow task10045.3
B · one slow task10052.2
B · one slow task10051.5
B · one slow task10049.1
B · one slow task10048.6
B · one slow task10051.8
B · one slow task10050.6
B · one slow task10051.2
B · one slow task10053.1
B · one slow task10053
B · one slow task10051.9
B · one slow task10051.5
B · one slow task10046.8
B · one slow task10047.2
B · one slow task10052
B · one slow task10051.6
B · one slow task10051.3
B · one slow task10052.1
B · one slow task10048.6
B · one slow task10051.4
B · one slow task10047.5
B · one slow task10050.2
B · one slow task10052.3
B · one slow task10048.3
B · one slow task10054.9
B · one slow task10052.8
B · one slow task10053.4
B · one slow task10049.5
B · one slow task10046.5
B · one slow task10048.3
B · one slow task10051.4
B · one slow task10049.3
B · one slow task10051.8
B · one slow task10050.4
B · one slow task10048.5
B · one slow task10052.3
B · one slow task10053.4
B · one slow task10048.2
B · one slow task10051.3
B · one slow task10050.4
B · one slow task10050.7
B · one slow task10049.7
B · one slow task10046.9
B · one slow task10053.5
B · one slow task10047.4
B · one slow task10047.8
B · one slow task10051.6
B · one slow task10050.4
B · one slow task10048
B · one slow task10048.4
B · one slow task10049.6
B · one slow task10048.9
B · one slow task10051.6
B · one slow task10047.1
B · one slow task10050.9
B · one slow task10053.8
B · one slow task10050.5
B · one slow task10047.8
B · one slow task10048.2
B · one slow task10050.1
B · one slow task10048.4
B · one slow task10053.1
B · one slow task10045.4
B · one slow task10054.1
B · one slow task10044.9
B · one slow task10049.9
B · one slow task10047.3
B · one slow task10052.1
B · one slow task10048.1
B · one slow task10047.2
B · one slow task10049.1
B · one slow task10049
B · one slow task10045.2
B · one slow task10051.1
B · one slow task10044
B · one slow task10052.9
B · one slow task10049.2
B · one slow task10052.4
B · one slow task10048.5
B · one slow task10048
B · one slow task10051.6
B · one slow task10048.5
B · one slow task10046.1
B · one slow task10049.8
B · one slow task10046.6
B · one slow task10050
B · one slow task10053.4
B · one slow task10052.4
B · one slow task10050
B · one slow task10049.6
B · one slow task10049.2
B · one slow task10048.4
B · one slow task10050.9
B · one slow task10049.6
B · one slow task10049
B · one slow task10050.7
B · one slow task10045
B · one slow task10054.9
B · one slow task10051.6
B · one slow task10046.5
B · one slow task10050.3
B · one slow task10047.2
B · one slow task10048.7
B · one slow task10047.8
B · one slow task10052.7
B · one slow task10045.2
B · one slow task10049.1
B · one slow task10045.9
B · one slow task10049.9
B · one slow task10049.2
B · one slow task10046.5
B · one slow task10053.6
B · one slow task10053.9
B · one slow task10048.6
B · one slow task10051.3
B · one slow task10049.6
B · one slow task10050.6
B · one slow task10053.8
B · one slow task10049.3
B · one slow task10054.5
B · one slow task10049.3
B · one slow task10049.8
B · one slow task10054.7
B · one slow task10050.7
B · one slow task10044.9
B · one slow task10050.6
B · one slow task10046.8
B · one slow task10045.8
B · one slow task10047.6
B · one slow task10050.8
B · one slow task10047.2
B · one slow task10046.5
B · one slow task10049.1
B · one slow task10051
B · one slow task10048.3
B · one slow task10046.7
B · one slow task10044.6
B · one slow task10048.1
B · one slow task10052.1
B · one slow task10052.5
B · one slow task10052
B · one slow task10049.6
B · one slow task10050.3
B · one slow task10053.2
B · one slow task10047.8
B · one slow task10050.9
B · one slow task10045.3
B · one slow task10051.7
B · one slow task10048.9
B · one slow task10047.1
B · one slow task10051.9
B · one slow task10047.2
B · one slow task10047.8
B · one slow task10053.8
B · one slow task10047.4
B · one slow task10048.4
B · one slow task10048.3
B · one slow task10052
B · one slow task10045.4
B · one slow task10053.1
B · one slow task10049.4
B · one slow task10049.2
B · one slow task10047.8
B · one slow task10049.6
B · one slow task10053.7
B · one slow task10050.5
B · one slow task10047.7
B · one slow task10049.1
B · one slow task10051.3
B · one slow task10050.2
B · one slow task10049.4
B · one slow task10051.5
B · one slow task10050.9
B · one slow task10047.3
B · one slow task10045.2
B · one slow task10051.3
B · one slow task10054.6
B · one slow task10047.9
B · one slow task10049.6
B · one slow task10053.4
B · one slow task10054.3
B · one slow task10050.2
B · one slow task10053.1
B · one slow task10051.9
B · one slow task10048.6
B · one slow task10045
B · one slow task10047.7
B · one slow task10050.9
C · one hot key7,4803,670
C · one hot key9546.8
C · one hot key91.442.9
C · one hot key8440.3
C · one hot key83.241.7
C · one hot key98.844.6
C · one hot key84.342.3
C · one hot key99.851.4
C · one hot key9249.2
C · one hot key95.749
C · one hot key12164.1
C · one hot key10051
C · one hot key96.651.9
C · one hot key98.349.4
C · one hot key85.347.1
C · one hot key11358.4
C · one hot key10852.7
C · one hot key94.747.8
C · one hot key10246.7
C · one hot key93.349.5
C · one hot key10451.3
C · one hot key86.646
C · one hot key10357
C · one hot key11557.5
C · one hot key10452.3
C · one hot key94.146.7
C · one hot key10955.8
C · one hot key12066.4
C · one hot key10757.1
C · one hot key10151.1
C · one hot key9248.4
C · one hot key10446.8
C · one hot key11960
C · one hot key79.834.3
C · one hot key11058
C · one hot key10145.2
C · one hot key11559.1
C · one hot key98.747.1
C · one hot key78.444.2
C · one hot key12056.2
C · one hot key88.443.5
C · one hot key10858.6
C · one hot key98.750.5
C · one hot key99.650.3
C · one hot key10150.1
C · one hot key94.547.5
C · one hot key10249
C · one hot key10351.1
C · one hot key10853.9
C · one hot key10152.5
C · one hot key10351.8
C · one hot key11359
C · one hot key9142.1
C · one hot key10153.9
C · one hot key10553.6
C · one hot key11059.7
C · one hot key99.451
C · one hot key10150.2
C · one hot key96.648.6
C · one hot key11253
C · one hot key96.847.8
C · one hot key10753.9
C · one hot key9949.8
C · one hot key10046.1
C · one hot key87.845
C · one hot key10147.8
C · one hot key99.749.3
C · one hot key85.244.4
C · one hot key92.644.7
C · one hot key95.547.4
C · one hot key84.741.4
C · one hot key87.845.1
C · one hot key11554
C · one hot key89.741.4
C · one hot key91.441
C · one hot key8647.7
C · one hot key11258
C · one hot key10959
C · one hot key10350.6
C · one hot key10153.3
C · one hot key95.146.5
C · one hot key97.245.5
C · one hot key93.348.6
C · one hot key10752.5
C · one hot key10754.2
C · one hot key10955.7
C · one hot key12062
C · one hot key10753
C · one hot key10647
C · one hot key11051.8
C · one hot key84.643.5
C · one hot key10054.9
C · one hot key84.942.4
C · one hot key11661.9
C · one hot key95.141.9
C · one hot key11863.3
C · one hot key11152.2
C · one hot key94.544.8
C · one hot key83.441.1
C · one hot key88.845
C · one hot key11051.9
C · one hot key96.850.8
C · one hot key85.239.5
C · one hot key97.849.2
C · one hot key11755.9
C · one hot key11658.7
C · one hot key95.342.8
C · one hot key10349
C · one hot key10649.7
C · one hot key85.244.5
C · one hot key94.742
C · one hot key95.952.1
C · one hot key10450.7
C · one hot key94.947.9
C · one hot key8637.5
C · one hot key10349.6
C · one hot key93.648.7
C · one hot key87.747.2
C · one hot key87.741.7
C · one hot key97.851.7
C · one hot key11557.8
C · one hot key98.350.7
C · one hot key11154.8
C · one hot key77.541.7
C · one hot key91.641.9
C · one hot key87.445.1
C · one hot key97.352.4
C · one hot key10855.9
C · one hot key94.546.6
C · one hot key87.644.9
C · one hot key10955.5
C · one hot key92.445.6
C · one hot key10354.1
C · one hot key93.449.8
C · one hot key10549
C · one hot key96.252.6
C · one hot key10854.1
C · one hot key10652.7
C · one hot key12263.9
C · one hot key99.247.7
C · one hot key90.246.2
C · one hot key88.443.5
C · one hot key9446.9
C · one hot key10452.9
C · one hot key92.946.5
C · one hot key11556.6
C · one hot key10254.1
C · one hot key90.246.4
C · one hot key95.448.9
C · one hot key93.648.9
C · one hot key10245.6
C · one hot key89.746.9
C · one hot key11362.9
C · one hot key96.445.7
C · one hot key97.655
C · one hot key10949.7
C · one hot key92.544.6
C · one hot key10051.7
C · one hot key11857.2
C · one hot key10449.7
C · one hot key10351.9
C · one hot key95.248.7
C · one hot key90.147
C · one hot key11757.9
C · one hot key98.444.2
C · one hot key11961.2
C · one hot key93.249.6
C · one hot key11355
C · one hot key97.950.9
C · one hot key10448.5
C · one hot key11254.1
C · one hot key10449.1
C · one hot key10854.3
C · one hot key84.439.7
C · one hot key95.451.6
C · one hot key12061.8
C · one hot key97.749
C · one hot key10353.4
C · one hot key98.452.3
C · one hot key93.847.8
C · one hot key85.140.8
C · one hot key88.644.5
C · one hot key11757.1
C · one hot key99.250.9
C · one hot key88.143.2
C · one hot key9145.6
C · one hot key10957.2
C · one hot key90.543.5
C · one hot key93.746.5
C · one hot key88.843.9
C · one hot key87.442.4
C · one hot key11665.7
C · one hot key98.652.2
C · one hot key96.846.8
C · one hot key9445.5
C · one hot key10754.5
C · one hot key10153.5
C · one hot key10351.2
C · one hot key10152.8
C · one hot key96.444
C · one hot key95.248.6
C · one hot key82.744.1
C · one hot key95.147.9
C · one hot key12258.9
C · one hot key87.646.2
C · one hot key10047.6
C · one hot key10350.9
C · one hot key11257.7
C · one hot key12760.4
C · one hot key9654.4
C · one hot key91.245.2
C · one hot key11149.7
C · one hot key10253.9
C · one hot key12061.1
C · one hot key10753.5
C · one hot key93.347.8
C · one hot key9850.6
C · one hot key10451.9
C · one hot key10554.3
C · one hot key88.745.2
C · one hot key80.842.3
C · one hot key8441
C · one hot key10652.1
C · one hot key98.550.8
C · one hot key81.742.3
C · one hot key94.547.2
C · one hot key80.640.5
C · one hot key97.451
C · one hot key91.343.7
C · one hot key94.444.4
C · one hot key99.251.6
C · one hot key10251.9
C · one hot key10148.5
C · one hot key11355.7
C · one hot key12459.7
C · one hot key10952.9
C · one hot key98.152.3
C · one hot key10853.9
C · one hot key92.743.8
C · one hot key91.747.1
C · one hot key91.346.9
C · one hot key10351.3
C · one hot key11256
C · one hot key12262.7
C · one hot key11358.8
C · one hot key10753.2
C · one hot key93.145.2
C · one hot key10149.8
C · one hot key10555.3
C · one hot key98.851.3
C · one hot key11958.1
C · one hot key91.852.4
C · one hot key92.952.3
C · one hot key10449.2
C · one hot key12063.1
C · one hot key81.938.9
C · one hot key91.545.9
C · one hot key11360.8
C · one hot key93.248.4
C · one hot key12156.7
C · one hot key91.847.1
C · one hot key11148.6
C · one hot key99.145.6
C · one hot key10552.4
C · one hot key89.643
C · one hot key83.945.3
C · one hot key10854.2
C · one hot key94.750.4
C · one hot key90.845.7
C · one hot key88.944.9
C · one hot key89.545.2
C · one hot key11462.3
C · one hot key90.849.1
C · one hot key94.644.6
C · one hot key12059.1
C · one hot key95.751.9
C · one hot key99.946.2
C · one hot key10456.6
C · one hot key9750.1
C · one hot key93.144.2
C · one hot key11350.1
C · one hot key10351.8
C · one hot key93.750.9
C · one hot key86.143.6
C · one hot key88.445.4
C · one hot key89.846
C · one hot key78.438.7
C · one hot key11257
C · one hot key10148.9
C · one hot key10551.2
C · one hot key85.840.9
C · one hot key95.146.7
C · one hot key97.647.9
C · one hot key10150.8
C · one hot key97.948.1
C · one hot key87.640.1
C · one hot key11152.4
C · one hot key10752.8
C · one hot key10151.7
C · one hot key11054.4
C · one hot key11257.1
C · one hot key11452.6
C · one hot key10253.8
C · one hot key96.947.3
C · one hot key95.245.7
C · one hot key10954.6
C · one hot key9347.5
C · one hot key90.944.9
C · one hot key10654.5
C · one hot key10548
C · one hot key10652.9
C · one hot key91.547.7
C · one hot key10352.7
C · one hot key10953.8
C · one hot key95.248.4
C · one hot key97.352.9
C · one hot key9745.8
C · one hot key11558.4
C · one hot key10954.8
C · one hot key86.644.8
C · one hot key84.840
C · one hot key10757.5
C · one hot key97.951.1
C · one hot key10558.8
C · one hot key10351.5
C · one hot key11053.4
C · one hot key83.738.1
C · one hot key94.546.1
C · one hot key10348
C · one hot key10246
C · one hot key90.543.3
C · one hot key94.746.7
C · one hot key94.146.7
C · one hot key10056.7
C · one hot key10757.7
C · one hot key97.249.1
C · one hot key98.551
C · one hot key79.138.8
C · one hot key89.443.8
C · one hot key11960.7
C · one hot key82.941.2
C · one hot key11461.4
C · one hot key9750.3
C · one hot key80.438.1
C · one hot key11553
C · one hot key11356.9
C · one hot key9550.3
C · one hot key10951.5
C · one hot key96.446
C · one hot key10156.3
C · one hot key10250.9
C · one hot key97.748
C · one hot key10559.2
C · one hot key10451.2
C · one hot key94.844.7
C · one hot key10351.7
C · one hot key94.844.4
C · one hot key10146.7
C · one hot key9549.8
C · one hot key10149.1
C · one hot key11659.4
C · one hot key93.544.1
C · one hot key85.442.2
C · one hot key11654.4
C · one hot key10349
C · one hot key93.550.8
C · one hot key97.550.6
C · one hot key90.947
C · one hot key10954.6
C · one hot key10752.6
C · one hot key10653.1
C · one hot key10250
C · one hot key79.540.8
C · one hot key88.143.9
C · one hot key10351.9
C · one hot key73.541.6
C · one hot key99.249.6
C · one hot key89.742.4
C · one hot key10657.4
C · one hot key9846.5
C · one hot key11152.4
C · one hot key10356.4
C · one hot key10151.7
C · one hot key90.342.9
C · one hot key10653.4
C · one hot key12466.3
C · one hot key82.939.6
C · one hot key89.845.4
C · one hot key11765.5
C · one hot key10552.2
C · one hot key9744.5
C · one hot key10852.9
C · one hot key10350.9
C · one hot key93.545.5
C · one hot key93.350.7
C · one hot key10954.9
C · one hot key10351.8
C · one hot key11156.9
C · one hot key10753.7
C · one hot key93.942.4
C · one hot key11559.6
C · one hot key90.846.6
C · one hot key95.548.7
C · one hot key92.247.8
C · one hot key8645.4
C · one hot key10656.8
C · one hot key89.541.2
C · one hot key93.244.8
C · one hot key10951.9
C · one hot key10953.1
C · one hot key93.847.8
C · one hot key86.939.6
C · one hot key9951.1
C · one hot key8438.8
C · one hot key89.942.7
C · one hot key96.145.1
C · one hot key98.448
C · one hot key94.448
C · one hot key98.544.2
C · one hot key11461.4
C · one hot key10650.6
C · one hot key11463.1
C · one hot key10950.3
C · one hot key10253.4
C · one hot key87.945.2
C · one hot key86.642.8
C · one hot key99.846.3
C · one hot key95.946.8
C · one hot key90.748.3
C · one hot key10454.3
C · one hot key11258.5
C · one hot key99.353.4
C · one hot key10151.7
C · one hot key94.547.1
C · one hot key93.148.6
C · one hot key12062
C · one hot key87.446.7
C · one hot key98.450.4
C · one hot key95.549.2
C · one hot key98.952
C · one hot key11055.2
C · one hot key11052
C · one hot key98.649.2
C · one hot key11155.9
C · one hot key92.348.8
C · one hot key10453.5
C · one hot key11857.4
C · one hot key94.247.7
C · one hot key10250.3
C · one hot key11556.1
C · one hot key91.647.7
C · one hot key10147.7
C · one hot key96.951
C · one hot key88.843.7
C · one hot key10453.1
C · one hot key91.644.9
C · one hot key11756.3
C · one hot key10048.5
C · one hot key97.951
C · one hot key10045.9
C · one hot key10150.8
C · one hot key9847.4
C · one hot key10149
C · one hot key94.351.4
C · one hot key9545.8
C · one hot key10550.7
C · one hot key78.636.3
C · one hot key9241.7
C · one hot key10049.4
C · one hot key10349.9
C · one hot key96.149.7
C · one hot key10151.2
C · one hot key96.546.1
C · one hot key81.443.7
C · one hot key10957.7
C · one hot key10351.4
C · one hot key90.447
C · one hot key11562.3
C · one hot key10754.4
C · one hot key93.745.6
C · one hot key11155.9
C · one hot key10553.2
C · one hot key10854.9
C · one hot key9449.7
C · one hot key94.448
C · one hot key91.842.1
C · one hot key94.645.4
C · one hot key76.936.4
C · one hot key11156.4
C · one hot key88.243.5
C · one hot key10653.8
C · one hot key8742.4
C · one hot key10148.7
C · one hot key88.146.3
C · one hot key99.850.9
C · one hot key8441.5
C · one hot key94.143.1
C · one hot key10749.9
C · one hot key10248
C · one hot key10250.7
C · one hot key91.443.5
C · one hot key7841.1
C · one hot key91.147.2
C · one hot key94.947.1
C · one hot key11555
C · one hot key10651.5
C · one hot key10352.3
C · one hot key94.247.1
C · one hot key92.745.9
C · one hot key10656.3
C · one hot key96.347.3
C · one hot key96.648
C · one hot key11961.2
C · one hot key90.245.7
C · one hot key97.251.2
C · one hot key97.547.6
C · one hot key93.544.9
C · one hot key85.944.4
C · one hot key11356.7
C · one hot key85.944.6
C · one hot key90.947.1
C · one hot key10353.1
C · one hot key87.641.6
C · one hot key98.449
C · one hot key97.447.4
C · one hot key97.647.7
C · one hot key98.649.6
C · one hot key85.946.2
C · one hot key94.552.2
C · one hot key11354.1
C · one hot key11255.7
C · one hot key94.245.2
C · one hot key11153.3
C · one hot key90.644.7
C · one hot key86.439.7
C · one hot key79.840.6
C · one hot key88.941.9
C · one hot key10551.8
C · one hot key96.746.4
C · one hot key11760.3
C · one hot key10856.4
C · one hot key96.549.7
C · one hot key97.848.7
C · one hot key97.845
C · one hot key11052.1
C · one hot key96.249.1
C · one hot key99.948.4
C · one hot key92.645.6
C · one hot key11357.9
C · one hot key96.553.4
C · one hot key93.545
C · one hot key84.843.3
C · one hot key11053.3
C · one hot key94.144.4
C · one hot key99.348.8
C · one hot key95.947.3
C · one hot key98.148
C · one hot key80.241.1
C · one hot key92.245.4
C · one hot key89.240
C · one hot key12262.5
C · one hot key11358.1
C · one hot key10448.4
C · one hot key12560.3
C · one hot key11355
C · one hot key86.644.7
C · one hot key87.143
C · one hot key10353.8
C · one hot key99.347.8
C · one hot key10253.2
C · one hot key91.845.9
C · one hot key11858.1
C · one hot key96.550.3
C · one hot key11157.8
C · one hot key11558.9
C · one hot key94.146.8
C · one hot key10655.6
C · one hot key11661.4
C · one hot key11556.4
C · one hot key10854
C · one hot key10448.2
C · one hot key10148.7
C · one hot key11359.1
C · one hot key10650.4
C · one hot key10151.5
C · one hot key95.347.5
C · one hot key86.546.8
C · one hot key98.349.5
C · one hot key11953.8
C · one hot key95.246.6
C · one hot key93.647.8
C · one hot key97.650.3
C · one hot key97.950.1
C · one hot key94.450.2
C · one hot key10653.9
C · one hot key10346.7
C · one hot key11254.1
C · one hot key10653.6
C · one hot key10249.2
C · one hot key7940.2
C · one hot key10251.7
C · one hot key93.550.5
C · one hot key11153.4
C · one hot key10147.3
C · one hot key92.443.3
C · one hot key94.646.2
C · one hot key8845.1
C · one hot key94.546.9
C · one hot key10349.8
C · one hot key11252.8
C · one hot key10552
C · one hot key10855.7
C · one hot key10957.5
C · one hot key96.851.4
C · one hot key11559.3
C · one hot key86.543.9
C · one hot key10149
C · one hot key94.748.1
C · one hot key80.343.2
C · one hot key11758.6
C · one hot key8041.5
C · one hot key10753.5
C · one hot key11860.4
C · one hot key9846.7
C · one hot key98.846.3
C · one hot key8138.5
C · one hot key97.544
C · one hot key11559.7
C · one hot key94.853
C · one hot key90.344.7
C · one hot key76.836.9
C · one hot key11357.4
C · one hot key10456.2
C · one hot key9748.7
C · one hot key11058.8
C · one hot key94.747.3
C · one hot key96.748.9
C · one hot key12156
C · one hot key9146.3
C · one hot key10349.1
C · one hot key10248.4
C · one hot key10146.5
C · one hot key10051.5
C · one hot key86.948.4
C · one hot key98.647.5
C · one hot key97.648.1
C · one hot key93.345.8
C · one hot key91.746.8
C · one hot key9047.2
C · one hot key91.945.9
C · one hot key10451
C · one hot key10045.7
C · one hot key11760.1
C · one hot key10653.2
C · one hot key9442.8
C · one hot key94.644.5
C · one hot key98.346.7
C · one hot key96.547.2
C · one hot key10047.8
C · one hot key11962
C · one hot key98.546.9
C · one hot key10149.4
C · one hot key88.141.7
C · one hot key8544
C · one hot key98.648.3
C · one hot key95.847.9
C · one hot key10252.4
C · one hot key11456.8
C · one hot key94.947.1
C · one hot key93.248.3
C · one hot key11055.9
C · one hot key95.648.1
C · one hot key10149.3
C · one hot key98.949.9
C · one hot key11957.3
C · one hot key83.244.7
C · one hot key91.846.5
C · one hot key10754.5
C · one hot key11254
C · one hot key89.744.4
C · one hot key11257.8
C · one hot key95.343
C · one hot key92.745.7
C · one hot key93.745.3
C · one hot key10448.8
C · one hot key10554.2
C · one hot key91.343.9
C · one hot key10248.4
C · one hot key96.250.5
C · one hot key88.139.9
C · one hot key11761.5
C · one hot key90.347.6
C · one hot key10145.3
C · one hot key88.443.7
C · one hot key95.748.5
C · one hot key10153
C · one hot key10249.5
C · one hot key89.844.5
C · one hot key98.851.2
C · one hot key10349.4
C · one hot key11559.1
C · one hot key10857
C · one hot key11152.5
C · one hot key10654
C · one hot key93.346.8
C · one hot key96.745.8
C · one hot key10954.9
C · one hot key93.146
C · one hot key88.842.6
C · one hot key99.648.9
C · one hot key81.838.9
C · one hot key92.247
C · one hot key88.645.2
C · one hot key95.949.8
C · one hot key11356.8
C · one hot key12362.2
C · one hot key10651.5
C · one hot key90.446.7
C · one hot key10752
C · one hot key10453.6
C · one hot key9445.9
C · one hot key10952.3
C · one hot key95.248.5
C · one hot key94.251
C · one hot key10152.4
C · one hot key10752.2
C · one hot key96.344.8
C · one hot key10447.9
C · one hot key81.741.4
C · one hot key10351.9
C · one hot key95.243
C · one hot key94.847
C · one hot key74.739.4
C · one hot key85.542.7
C · one hot key82.541.2
C · one hot key10650
C · one hot key90.847
C · one hot key10349.6
C · one hot key10751.8
C · one hot key94.550
C · one hot key89.742.6
C · one hot key11255.5
C · one hot key10351.3
C · one hot key87.744.7
C · one hot key10556.4
C · one hot key93.446.6
C · one hot key10553.7
C · one hot key10853.9
C · one hot key91.842.1
C · one hot key10555.4
C · one hot key69.936.2
C · one hot key10555.9
C · one hot key80.438.1
C · one hot key12563.1
C · one hot key10456.7
C · one hot key93.952.1
C · one hot key11155.9
C · one hot key92.246.8
C · one hot key10148.2
C · one hot key97.248.1
C · one hot key10048.1
C · one hot key94.449.7
C · one hot key10451.1
C · one hot key92.646.1
C · one hot key10152.6
C · one hot key10652.8
C · one hot key9449.5
C · one hot key10853.7
C · one hot key10554.4
C · one hot key9746.1
C · one hot key94.947.4
C · one hot key99.546.1
C · one hot key95.545.7
C · one hot key94.945.7
C · one hot key98.754.1
C · one hot key97.946.3
C · one hot key10155.4
C · one hot key11459
C · one hot key10955.8
C · one hot key10852.3
C · one hot key10554.7
C · one hot key9451.4
C · one hot key89.446.9
C · one hot key97.749.8
C · one hot key11256.1
C · one hot key11257.9
C · one hot key85.443
C · one hot key82.340.7
C · one hot key11760.9
C · one hot key11456.2
C · one hot key93.748.9
C · one hot key99.254.8
C · one hot key10052.7
C · one hot key11154.2
C · one hot key95.147.1
C · one hot key10655.8
C · one hot key10349.3
C · one hot key10356.3
C · one hot key11154.7
C · one hot key10151.1
C · one hot key87.244.5
C · one hot key10963.4
C · one hot key95.147.4
C · one hot key10952.9
C · one hot key10350.3
C · one hot key90.246.6
C · one hot key10355.6
C · one hot key93.644.4
C · one hot key10350.4
C · one hot key9647.5
C · one hot key11054
C · one hot key92.949.9
C · one hot key96.350.3
C · one hot key9349.8
C · one hot key92.144.9
C · one hot key97.346
C · one hot key10250.9
C · one hot key10650.8
C · one hot key10150.8
C · one hot key95.450.3
C · one hot key84.437.6
C · one hot key10956.7
C · one hot key94.952.5
C · one hot key10448.8
C · one hot key89.345.4
C · one hot key11554.2
C · one hot key10751.1
C · one hot key91.145.8
C · one hot key10356.5
C · one hot key11361.3
C · one hot key98.249.4
C · one hot key8343.6
C · one hot key10545.1
C · one hot key11858.2
C · one hot key8441.5
C · one hot key11056.7
C · one hot key97.746.9
C · one hot key99.147.4
C · one hot key10248.6
C · one hot key10051.5
C · one hot key10955.3
C · one hot key88.443.4
C · one hot key99.151.9
C · one hot key90.645
C · one hot key94.946
C · one hot key13062.6
C · one hot key91.541
C · one hot key10452.7
C · one hot key10353.3
C · one hot key80.841.4
C · one hot key88.550.2
C · one hot key81.840.2
C · one hot key98.546.1
C · one hot key86.947.3
C · one hot key9149.1
C · one hot key84.640.7
C · one hot key10753.2
C · one hot key10651.7
C · one hot key11559
C · one hot key98.248.3
C · one hot key10755.8
C · one hot key11158.4
C · one hot key12166.5
C · one hot key87.542.9
C · one hot key91.947.7
C · one hot key90.247.4
C · one hot key86.143.6
C · one hot key10757.9
C · one hot key10754.8
C · one hot key8643.3
C · one hot key89.149.3
C · one hot key10349.6
C · one hot key95.150.4
C · one hot key10249.3
C · one hot key98.350.6
C · one hot key11157.6
C · one hot key11158.3
C · one hot key81.743.8
C · one hot key11454.9
C · one hot key95.244.6
C · one hot key88.744.8
C · one hot key10653.9
C · one hot key90.244.9
C · one hot key87.449.2
C · one hot key96.648.6
C · one hot key11453.2
C · one hot key81.839.5
C · one hot key89.645.9
C · one hot key83.141.4
C · one hot key8846.6
C · one hot key98.551.5
C · one hot key86.845.4
C · one hot key10353.8
C · one hot key10152.6
C · one hot key10753.3
C · one hot key11964.3
C · one hot key90.147.6
C · one hot key95.245.9
C · one hot key9448
C · one hot key95.550.2
C · one hot key10455.8
C · one hot key10654.3
C · one hot key94.949.5
C · one hot key11351.1
C · one hot key97.348
C · one hot key98.849.4
C · one hot key91.143.2
C · one hot key10753.3
C · one hot key10753
C · one hot key10047.1
C · one hot key78.540.3
C · one hot key97.647.2
C · one hot key10651.9
C · one hot key95.850.2
C · one hot key9947.9
C · one hot key10556.2
C · one hot key81.841.9
C · one hot key10851.7
C · one hot key81.137.6
C · one hot key10150.7
C · one hot key10650.9
C · one hot key9544.7
C · one hot key10549
C · one hot key10551.1
C · one hot key94.746.2
C · one hot key95.848.3
C · one hot key10850.6
C · one hot key10350.2
C · one hot key10651.4
C · one hot key10450.1
C · one hot key94.350.2
C · one hot key89.445.3
C · one hot key89.849.7
C · one hot key86.645
C · one hot key79.940.7
C · one hot key94.150
C · one hot key9148.2
C · one hot key10146.2
C · one hot key97.746.9
C · one hot key10451.3
C · one hot key11156.4
C · one hot key90.245.7
C · one hot key97.545
C · one hot key96.249
C · one hot key91.346.7
C · one hot key88.142.1
C · one hot key10147.4
C · one hot key10352.8
C · one hot key97.247.5
C · one hot key10655.1
C · one hot key10354.2
C · one hot key11056.1
C · one hot key10046.6
C · one hot key10248.5
C · one hot key11150.5
C · one hot key95.746.6
C · one hot key10550
C · one hot key11059.3
C · one hot key10956.3
C · one hot key10853.5
C · one hot key10649.9
C · one hot key97.253
C · one hot key11052.5
C · one hot key9542.7
C · one hot key95.846.1
C · one hot key97.945.4
C · one hot key10554.9
C · one hot key11655.1
C · one hot key11358.1
C · one hot key11360.6
C · one hot key10751
C · one hot key10250.5
C · one hot key91.350
C · one hot key94.246.5
C · one hot key10150
C · one hot key11757.6
C · one hot key10650.9
C · one hot key10449.8
C · one hot key10655.7
C · one hot key86.646
C · one hot key93.444.6
C · one hot key10557.9
C · one hot key11059.7
C · one hot key94.146.3
C · one hot key10648.4
C · one hot key81.238.5
C · one hot key10552
C · one hot key11456.4
C · one hot key9853.2
C · one hot key93.843.9
C · one hot key12763
C · one hot key10049.8
C · one hot key11459.3
C · one hot key93.546.2
C · one hot key88.143.4
C · one hot key84.742.3
C · one hot key11053.7
C · one hot key83.442.9
C · one hot key8041.1
C · one hot key93.944.9
macOS 26.6.2 · Python 3.13.3 · numpy 2.5.4 · matplotlib 3.11.2 · run 2026-10-20

Case C: speculation against salting

Case C: speculation against salting
Hot taskStage, with speculationLargest task, saltedStage, salted
3,670 s3,670 s229 s229 s

The join product

The join product
Each sideWork L × R
10×100×
Output · uv run triage-salting-and-the-join-product.py
A · random durations   slowest task    108 s =  2.2x median, holding 100 MB (1.0x median bytes)
B · one slow task      slowest task    530 s = 10.6x median, holding 100 MB (1.0x median bytes)
C · one hot key        slowest task   3670 s = 74.0x median, holding 7,485 MB (75.8x median bytes)

hot task: 3670 s   with speculation: stage 3670 s (unchanged)   salted k=16: largest task 229 s (16x smaller), stage 229 s

join: a key at 10x its fair share on each side -> each side 10x too big, work L x R = 100x the fair work

What we found

The three plots separate at a glance. In case A the tasks form a vertical cloud at 100 MB, and the slowest is only 2.19× the median. In case B one task sits far above the rest at the same bytes (10.6× the median): slow, not big. In case C one task sits far to the right, on the same line as the others (74× the median, holding 7,480 MB): big, not slow.

For case C, speculation left the stage at 3,670 s, because the duplicate has to read the same bytes. Splitting the hot key into 16 salts cut the largest task from 3,670 s to 229 s. A key at 10× its fair share on both sides of a join produced 100× the fair work.


Read it

A rule such as "slower than 1.5× the median elapsed time" cannot tell a task that is slow from a task that is big. On skewed data the naive rule speculates the largest task. The duplicate takes just as long, because it has just as much work, and you have paid double capacity for nothing. The plot replaces that guess: a point above the line is slow (speculate it), a point far along the line is big (split it).

Salting is legal only where the reduction is : a SUM or COUNT can be computed per salt and combined, a median cannot. And because join work is L × R, a key that looks 10× too big on each side is 100× too big where it matters, so join skew is the first place to look when one task runs for hours.