From 9961b78b0630202aad2e62285def036325081802 Mon Sep 17 00:00:00 2001 From: many Date: Wed, 8 Sep 2021 13:30:26 +0200 Subject: [PATCH] Drop sorter before creating a new one --- milli/src/update/index_documents/transform.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/milli/src/update/index_documents/transform.rs b/milli/src/update/index_documents/transform.rs index 7bfaa6ecd..e8b61ef14 100644 --- a/milli/src/update/index_documents/transform.rs +++ b/milli/src/update/index_documents/transform.rs @@ -383,6 +383,9 @@ impl Transform<'_, '_> { let mut field_distribution = self.index.field_distribution(self.rtxn)?; let mut available_documents_ids = AvailableDocumentsIds::from_documents_ids(&documents_ids); + // consume sorter, in order to free the internal allocation, before creating a new one. + let mut iter = sorter.into_merger_iter()?; + // Once we have sort and deduplicated the documents we write them into a final file. let mut final_sorter = create_sorter( |_id, obkvs| { @@ -404,7 +407,6 @@ impl Transform<'_, '_> { // While we write into final file we get or generate the internal documents ids. let mut documents_count = 0; - let mut iter = sorter.into_merger_iter()?; while let Some((external_id, update_obkv)) = iter.next()? { if self.log_every_n.map_or(false, |len| documents_count % len == 0) { progress_callback(UpdateIndexingStep::ComputeIdsAndMergeDocuments {