Plate № 41 · Operations · storage & data movement

A pattern from the gf.cx specimen book

Round-trips, not bytes

A store fronted across an ocean charges you per request, not per gigabyte — so the small files, not the big ones, decide how long a move takes.

The pattern

"A distant object store's cost is round-trips, not bytes. Ten thousand tiny files at 135 ms each dwarf the gigabytes between them. Pack the tail, stop parallelising, and — for a big move — put the work in the store's own region."

The worked example → OneDrive dossier The measurements → status.gf.cx/one

The problem

Pulling a 2.285 TiB OneDrive tenant (164,176 objects) home to New Jersey — where the bytes actually live in Microsoft's Singapore geo — the transfer rate bursts to ~4.6 MiB/s on large files, then collapses to ~100 KiB/s on the long tail of tiny ones. Nothing is saturated; you sit far below the per-client byte cap. The cost isn't bandwidth — it's ~135 ms of transpacific round-trip, paid once per file, times tens of thousands of files. Bytes are cheap; the handshakes are the bill.

The shape

Why it works

Every move attacks the same term. Latency × file-count is the cost function; bytes barely feature. Packing cuts the file-count. Low concurrency keeps the one pipe you have from becoming a throttled one. Moving the work into the region cuts the latency by ~100×, so the file-count stops mattering. You never make the RTT shorter from afar — you stop paying it so many times.

When it breaks

Where it applies

Reusable elements

Reference

Worked example
srvc.gf.cx/transit/onedrive/ — where the OneDrive bytes actually rest (Singapore), and the drain that measured this.
Measurements
status.gf.cx/one/ — the A/B transfer numbers and the usage-standard note.
Origin
The 2026-08-31 gvr-dan pre-decommission drain — 2.285 TiB / 164,176 objects, ~a week at the ~6 MiB/s per-drive ceiling.