Fix the test and simplify types

This commit is contained in:
Mubelotix 2025-06-23 18:55:23 +02:00
parent 4925b30196
commit 2f82d94502
No known key found for this signature in database
GPG key ID: 89F391DBCC8CE7F0
9 changed files with 87 additions and 51 deletions

View file

@ -437,8 +437,10 @@ impl IndexScheduler {
#[cfg(test)]
self.maybe_fail(crate::test_utils::FailureLocation::InsideCreateBatch)?;
println!("create next batch");
let batch_id = self.queue.batches.next_batch_id(rtxn)?;
let mut current_batch = ProcessingBatch::new(batch_id);
println!("over");
let enqueued = &self.queue.tasks.get_status(rtxn, Status::Enqueued)?;
let count_total_enqueued = enqueued.len();
@ -454,6 +456,7 @@ impl IndexScheduler {
kind: Kind::TaskCancelation,
id: task_id,
});
println!("task cancelled");
return Ok(Some((Batch::TaskCancelation { task }, current_batch)));
}
@ -524,7 +527,7 @@ impl IndexScheduler {
}
// 5. We make a batch from the unprioritised tasks. Start by taking the next enqueued task.
let task_id = if let Some(task_id) = enqueued.min() { task_id } else { return Ok(None) };
let task_id = if let Some(task_id) = enqueued.min() { task_id } else { println!("return"); return Ok(None) };
let mut task =
self.queue.tasks.get_task(rtxn, task_id)?.ok_or(Error::CorruptedTaskQueue)?;
@ -602,6 +605,7 @@ impl IndexScheduler {
autobatcher::autobatch(enqueued, index_already_exists, primary_key.as_deref())
{
current_batch.reason(autobatch_stop_reason.unwrap_or(stop_reason));
println!("autobatch");
return Ok(self
.create_next_batch_index(
rtxn,
@ -615,6 +619,7 @@ impl IndexScheduler {
// If we found no tasks then we were notified for something that got autobatched
// somehow and there is nothing to do.
println!("nothing to do");
Ok(None)
}
}

View file

@ -164,7 +164,7 @@ impl IndexScheduler {
let pre_commit_dabases_sizes = index.database_sizes(&index_wtxn)?;
let (tasks, congestion) =
self.apply_index_operation(&mut index_wtxn, &index, op, &progress, current_batch.clone_embedder_stats())?;
self.apply_index_operation(&mut index_wtxn, &index, op, &progress, current_batch.embedder_stats.clone())?;
{
progress.update_progress(FinalizingIndexStep::Committing);
@ -240,20 +240,11 @@ impl IndexScheduler {
builder.set_primary_key(primary_key);
let must_stop_processing = self.scheduler.must_stop_processing.clone();
let embedder_stats = match current_batch.embedder_stats {
Some(ref stats) => stats.clone(),
None => {
let embedder_stats: Arc<EmbedderStats> = Default::default();
current_batch.embedder_stats = Some(embedder_stats.clone());
embedder_stats
},
};
builder
.execute(
|indexing_step| tracing::debug!(update = ?indexing_step),
|| must_stop_processing.get(),
embedder_stats,
current_batch.embedder_stats.clone(),
)
.map_err(|e| Error::from_milli(e, Some(index_uid.to_string())))?;
index_wtxn.commit()?;