From 71e667d9b570b3d5e745632d068959b5e2072ed5 Mon Sep 17 00:00:00 2001 From: MrPresent-Han <116052805+MrPresent-Han@users.noreply.github.com> Date: Fri, 15 Dec 2023 14:10:31 +0800 Subject: [PATCH] add limit for too large ef to avoid huge latency for iterator(#1814) (#1815) Signed-off-by: MrPresent-Han --- pymilvus/orm/iterator.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pymilvus/orm/iterator.py b/pymilvus/orm/iterator.py index 9ac5839fa..5b1793497 100644 --- a/pymilvus/orm/iterator.py +++ b/pymilvus/orm/iterator.py @@ -47,7 +47,10 @@ def extend_batch_size(batch_size: int, next_param: dict, to_extend_batch_size: b if to_extend_batch_size: extend_rate = DEFAULT_SEARCH_EXTENSION_RATE if EF in next_param[PARAMS]: - return min(MAX_BATCH_SIZE, batch_size * extend_rate, next_param[PARAMS][EF]) + real_batch = min(MAX_BATCH_SIZE, batch_size * extend_rate, next_param[PARAMS][EF]) + if next_param[PARAMS][EF] > real_batch: + next_param[PARAMS][EF] = real_batch + return real_batch return min(MAX_BATCH_SIZE, batch_size * extend_rate)