Skip to content

Prefault mmap'd datasets before timed upload - #184

Open
qdrant-cloud-bot wants to merge 1 commit into
devfrom
fix/prefault-mmap-before-upload
Open

qdrant-cloud-bot wants to merge 1 commit into
devfrom
fix/prefault-mmap-before-upload

Conversation

@qdrant-cloud-bot

Copy link
Copy Markdown
Contributor

Summary

  • Cold page faults of mmap'd vectors.npy (and fbin/h5 sidecars) were included in the timed upsert loop, so upload_time spiked 3–6× when the page cache was cold — especially on Azure /mnt FUSE/NTFS data disks used by bench-platform.
  • Fault every mapped page during reader construction (already outside the upload timer), so the metric measures Qdrant ingest rather than dataset disk I/O.
  • Covers .npy / tar bundles, fbin, and h5 sidecars via a shared prefault_mmap helper.

Context

Observed on Dataset index & search / upload_time_sec: ~65/73 dbpedia runs at 4.6–5.5s, 8 runs at 14–28s, then back to baseline. Search RPS stayed flat. Same image digest could be fast one night and slow the next.

Test plan

  • cargo test prefault
  • cargo test reads_vectors_of_a_valid_file
  • cargo fmt --check / cargo clippy --all-targets -- -D warnings
  • After qdrant/bfb:dev publishes this change, confirm nightly dbpedia upload_time_sec loses the 14–28s spike cluster

Cold page faults of vectors.npy on FUSE/NTFS data disks were dominating
upload_time (3–6× spikes). Fault every mapped page during reader open so
the timed upsert loop measures ingest, not dataset I/O.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant