_ensureCollection() runs once per document on the embed path, but only createCollection sat behind the collectionExists guard — the getCollections probe and the three createPayloadIndex calls fired unconditionally every time. On large ZIM ingestions those redundant requests consumed roughly 45% of per-document Qdrant time, making jobs look stalled while they were slowly progressing. Memoize ensured collections in a per-instance Set, recorded only after every step succeeds so partial failures retry. The cache is cleared when the Qdrant health check resets the client (server may have been recreated), and the entry is dropped before resetAndRebuild() recreates the collection it just deleted. Memoizing instead of moving the index calls inside the guard keeps missing indexes healing on collections that predate the current payload schema. Closes #1129 Co-authored-by: Claude Fable 5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| controllers | ||
| data | ||
| exceptions | ||
| jobs | ||
| middleware | ||
| models | ||
| services | ||
| utils | ||
| validators | ||