Docs · NAS performance

NAS and external drive performance

Because Photon Ledger only reads FITS headers, scanning is metadata-bound, not bandwidth-bound. NAS and external-drive setups work fine — but throughput varies a lot depending on the transport between the scan host and the storage.

Why header-only matters here

A typical CMOS sub-frame is 30–120 MB on disk, almost all of which is pixel data. The FITS header that Photon Ledger reads is only the first 2–8 KB of the file (one or more 2880-byte HDU blocks). Downloading a full 60 MB frame over a 1 GbE link takes roughly half a second; reading its header takes a few milliseconds plus protocol overhead. That asymmetry is what makes scanning a 50,000-frame archive over a network share tractable in the first place.

The practical consequence: raw bandwidth rarely limits a scan. What limits it is how quickly the storage layer can service a stream of small, random open-and-read calls.

Expected throughput by transport

Approximate frames-per-second ranges below. These vary substantially with hardware, filesystem, server load, and frame size — treat them as ballpark figures, not benchmarks.

TransportFrames/secNotes
Local NVMe SSD1,000–4,000Bottleneck is small-file open/read syscalls, not the SSD itself.
Local SATA SSD800–2,000Similar profile to NVMe for header-only reads.
Local HDD (spinning)100–300Seek time dominates; faster if files are laid out contiguously.
USB 3 external SSD600–1,500Comparable to SATA once the bus is warmed up.
1 GbE NAS (SMB)200–500SMB metadata round-trips dominate small-file workloads.
1 GbE NAS (NFS)300–700Slightly better than SMB for small reads on most setups.
10 GbE NAS700–2,000Now metadata-bound, not bandwidth-bound — extra link speed gives diminishing returns.
Wi-Fi 5 / 6 NAS50–200Highly variable. Latency and retransmits amplify the small-file penalty.

When to copy locally first

If your archive lives on a slow Wi-Fi NAS and you only plan to scan occasionally, consider copying a small representative subset (one or two nights, a few targets) to a local SSD for your first scan. That gets you a feel for how Photon Ledger organises results without forcing your initial full scan to crawl over the network.

After the first scan, leaving the archive in place on the NAS is fine. Incremental re-scans only touch new or changed files, so an established archive sees very few reads on subsequent runs.

Reducing NAS scan time

  • Enable SMB multichannel on the server and client where available. It helps small-file workloads more than large sequential transfers.
  • Prefer NFS over SMB for Linux/macOS clients reading large numbers of small files.
  • Use wired Ethernet on the scan host. Wi-Fi latency variability hurts header reads more than it hurts streaming reads.
  • Scan during quiet NAS hours. Concurrent backup, sync, or media-server jobs compete for the same metadata cache and disks.
  • If the NAS exposes a tunable, increase the SMB/NFS read-ahead or directory cache size — it amortises directory enumeration over many files.

External drive caveats

USB-attached drives — especially 2.5" HDDs and budget enclosures — often have aggressive power management that spins down or parks heads between reads. On a header-only workload, the gaps between reads are long enough to trigger sleep, and every wake-up costs hundreds of milliseconds.

For long scans, disable USB selective suspend on Windows (Power Options → USB settings) and use pmset disablesleep 1 or caffeinate on macOS during the scan. On Linux, check the relevant hdparm -B and USB autosuspend values for the device.

What Photon Ledger writes back

Photon Ledger never modifies files in your archive. It opens each file read-only and reads the header. The index database is stored separately in the application's data directory, so the archive itself is untouched.

This means scanning works on read-only mounts — archived storage exposed as read-only over NFS, locked external drives, optical media — without any special configuration.

Resumable scans

Scans are resumable. If the NAS connection drops, the laptop sleeps, or the scan is cancelled mid-way, restarting picks up where it left off. Photon Ledger tracks per-file modification time and size, so it skips already-indexed files automatically.

The same mechanism handles re-scans: pointing the scanner at the same root again touches only new or modified files, even across very large archives.

Related reading