The scanner runs in a single thread. For filesystems with millions of files in deep trees, opendir/readdir/lstat per entry is I/O bound and cannot be parallelized.
Location
src/client/scanner.c
Suggested Fix
Use multiple scanner threads each handling different subdirectories (root→queue→workers pattern). Or use fts(3) / nftw(3) which can be faster than manual BFS with opendir/readdir/lstat.
Severity
medium
Category
performance
Sub-Agent
perf-analyst (PA-4)
This issue was automatically generated by the issue-creator agent.
## Description
The scanner runs in a single thread. For filesystems with millions of files in deep trees, `opendir`/`readdir`/`lstat` per entry is I/O bound and cannot be parallelized.
## Location
src/client/scanner.c
## Suggested Fix
Use multiple scanner threads each handling different subdirectories (root→queue→workers pattern). Or use `fts(3)` / `nftw(3)` which can be faster than manual BFS with opendir/readdir/lstat.
## Severity
medium
## Category
performance
## Sub-Agent
perf-analyst (PA-4)
---
_This issue was automatically generated by the issue-creator agent._
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Description
The scanner runs in a single thread. For filesystems with millions of files in deep trees,
opendir/readdir/lstatper entry is I/O bound and cannot be parallelized.Location
src/client/scanner.c
Suggested Fix
Use multiple scanner threads each handling different subdirectories (root→queue→workers pattern). Or use
fts(3)/nftw(3)which can be faster than manual BFS with opendir/readdir/lstat.Severity
medium
Category
performance
Sub-Agent
perf-analyst (PA-4)
This issue was automatically generated by the issue-creator agent.
Fixed in PR #148 — merged into main on 2026-07-29.