From 566a11852a462078a542b793c5406393807973b0 Mon Sep 17 00:00:00 2001 From: MrPresent-Han Date: Tue, 12 Dec 2023 14:40:16 +0800 Subject: [PATCH] add limit for too large ef to avoid huge latency for iterator(#1814) 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)