Add support for the progress API of arroy

This commit is contained in:
Tamo 2025-03-13 17:36:49 +01:00
parent 82912e191b
commit 009c36a4d0
7 changed files with 67 additions and 4 deletions

View file

@ -31,6 +31,7 @@ use super::new::StdResult;
use crate::documents::{obkv_to_object, DocumentsBatchReader};
use crate::error::{Error, InternalError};
use crate::index::{PrefixSearch, PrefixSettings};
use crate::progress::Progress;
use crate::thread_pool_no_abort::ThreadPoolNoAbortBuilder;
pub use crate::update::index_documents::helpers::CursorClonableMmap;
use crate::update::{
@ -522,6 +523,8 @@ where
let mut writer = ArroyWrapper::new(vector_arroy, embedder_index, was_quantized);
writer.build_and_quantize(
wtxn,
// In the settings we don't have any progress to share
&Progress::default(),
&mut rng,
dimension,
is_quantizing,

View file

@ -201,6 +201,7 @@ where
build_vectors(
index,
wtxn,
indexing_context.progress,
index_embeddings,
arroy_memory,
&mut arroy_writers,

View file

@ -10,6 +10,7 @@ use super::super::channel::*;
use crate::documents::PrimaryKey;
use crate::fields_ids_map::metadata::FieldIdMapWithMetadata;
use crate::index::IndexEmbeddingConfig;
use crate::progress::Progress;
use crate::update::settings::InnerIndexSettings;
use crate::vector::{ArroyWrapper, Embedder, EmbeddingConfigs, Embeddings};
use crate::{Error, Index, InternalError, Result};
@ -100,6 +101,7 @@ impl ChannelCongestion {
pub fn build_vectors<MSP>(
index: &Index,
wtxn: &mut RwTxn<'_>,
progress: &Progress,
index_embeddings: Vec<IndexEmbeddingConfig>,
arroy_memory: Option<usize>,
arroy_writers: &mut HashMap<u8, (&str, &Embedder, ArroyWrapper, usize)>,
@ -118,6 +120,7 @@ where
let dimensions = *dimensions;
writer.build_and_quantize(
wtxn,
progress,
&mut rng,
dimensions,
false,