Qdrant Deletion Disk Full Compaction
Deleting millions of Qdrant points does not immediately return proportional PVC space. Deleted vectors become optimizer and vacuum work, and a nearly full volume can prevent the very segment rewrites that would reclaim disk. Treat this as a vector database headroom incident, not a simple delete-more incident.
Find what you can delete.
Leave your email now. The scan summary can follow after the first reply; we send the free SafeDisk AI deletion trial step only if deletion risk is still unclear.
Runbook: Make Space For The Reclaimer
- Pause bulk delete jobs once Qdrant reports low disk capacity or the PVC is nearly full. More deletes can create more optimizer work before they create usable free space.
- Temporarily grow the PVC or attach a larger volume. Qdrant needs working room for internal structures, optimizer rewrites, and atomic segment-state writes.
- Restart only after emergency headroom exists. A restart at 100% disk can fail while loading a shard or flushing segment metadata.
- Trigger or wait for optimizer/vacuum work. Deleted points are reclaimed asynchronously; monitor collection status until the optimizer backlog is drained.
- Separate capacity classes: live vectors, segments, WAL/raft state, snapshots, temp/atomicwrite files, and orphaned outputs from failed writes.
- Add a hard policy for future deletes: required free-space reserve, max points per batch, pause threshold, and post-delete optimizer completion check.
- Only shrink storage or resume normal ingestion after collection reopen, optimizer status, and PVC free bytes are stable.
Use this when point deletion does not free Qdrant disk immediately.
This frames the bug as a headroom and optimizer safety policy: grow first, recover, wait for vacuum, then set future delete limits.
I would treat this as a Qdrant optimizer/headroom incident first. Deleting points marks work for the optimizer; it does not guarantee immediate proportional filesystem reclaim.
Public-safe checks I would collect:
- PVC free bytes and inode usage at the time Qdrant turns red.
- Collection status before/after deletion and after restart.
- Segment, WAL/raft, snapshot, and temp/atomicwrite file sizes under the collection path.
- Delete batch size and whether optimizer/vacuum work had time and headroom to complete.
Operationally I would stop the delete job, temporarily grow the PVC, restart with headroom, trigger/wait for optimizers, and only shrink later after collection reopen and optimizer completion are verified. For the future I would add a reserve threshold, max delete batch size, and an alert when optimizer backlog cannot run because disk is too full.
Do Not Delete First
- Segment files, WAL/raft state, or collection metadata just to make room for optimizers.
- Snapshot files before confirming restore coverage and retention rules.
- Temporary or atomicwrite files before identifying whether Qdrant is still using or retrying them.
- More points in larger batches while the optimizer cannot run due to low disk capacity.
Need a delete / confirm / protect answer?
Send the issue link, log excerpt, or storage summary first. We reply with the next safe move and offer the free SafeDisk AI deletion trial only if the incident still needs review.