mirror of
				https://github.com/meilisearch/meilisearch.git
				synced 2025-10-31 16:06:31 +00:00 
			
		
		
		
	Merge pull request #5488 from meilisearch/try-batch-end-reason
add "batcher stopped because" field to batch objects
This commit is contained in:
		| @@ -237,7 +237,7 @@ pub(crate) mod test { | ||||
|     use meilisearch_types::milli::{self, FilterableAttributesRule}; | ||||
|     use meilisearch_types::settings::{Checked, FacetingSettings, Settings}; | ||||
|     use meilisearch_types::task_view::DetailsView; | ||||
|     use meilisearch_types::tasks::{Details, Kind, Status}; | ||||
|     use meilisearch_types::tasks::{BatchStopReason, Details, Kind, Status}; | ||||
|     use serde_json::{json, Map, Value}; | ||||
|     use time::macros::datetime; | ||||
|     use uuid::Uuid; | ||||
| @@ -334,6 +334,7 @@ pub(crate) mod test { | ||||
|             }), | ||||
|             started_at: datetime!(2022-11-20 0:00 UTC), | ||||
|             finished_at: Some(datetime!(2022-11-21 0:00 UTC)), | ||||
|             stop_reason: BatchStopReason::Unspecified.to_string(), | ||||
|         }] | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -341,7 +341,16 @@ pub fn snapshot_canceled_by(rtxn: &RoTxn, db: Database<BEU32, RoaringBitmapCodec | ||||
|  | ||||
| pub fn snapshot_batch(batch: &Batch) -> String { | ||||
|     let mut snap = String::new(); | ||||
|     let Batch { uid, details, stats, started_at, finished_at, progress: _, enqueued_at } = batch; | ||||
|     let Batch { | ||||
|         uid, | ||||
|         details, | ||||
|         stats, | ||||
|         started_at, | ||||
|         finished_at, | ||||
|         progress: _, | ||||
|         enqueued_at, | ||||
|         stop_reason, | ||||
|     } = batch; | ||||
|     let stats = BatchStats { | ||||
|         progress_trace: Default::default(), | ||||
|         internal_database_sizes: Default::default(), | ||||
| @@ -359,6 +368,7 @@ pub fn snapshot_batch(batch: &Batch) -> String { | ||||
|     snap.push_str(&format!("uid: {uid}, ")); | ||||
|     snap.push_str(&format!("details: {}, ", serde_json::to_string(details).unwrap())); | ||||
|     snap.push_str(&format!("stats: {}, ", serde_json::to_string(&stats).unwrap())); | ||||
|     snap.push_str(&format!("stop reason: {}, ", serde_json::to_string(&stop_reason).unwrap())); | ||||
|     snap.push('}'); | ||||
|     snap | ||||
| } | ||||
|   | ||||
| @@ -182,6 +182,7 @@ impl BatchQueue { | ||||
|                 started_at: batch.started_at, | ||||
|                 finished_at: batch.finished_at, | ||||
|                 enqueued_at: batch.enqueued_at, | ||||
|                 stop_reason: batch.reason.to_string(), | ||||
|             }, | ||||
|         )?; | ||||
|  | ||||
|   | ||||
| @@ -106,7 +106,7 @@ fn query_batches_simple() { | ||||
|     batches[0].enqueued_at = None; | ||||
|     // Insta cannot snapshot our batches because the batch stats contains an enum as key: https://github.com/mitsuhiko/insta/issues/689 | ||||
|     let batch = serde_json::to_string_pretty(&batches[0]).unwrap(); | ||||
|     snapshot!(batch, @r#" | ||||
|     snapshot!(batch, @r###" | ||||
|     { | ||||
|       "uid": 0, | ||||
|       "details": { | ||||
| @@ -126,9 +126,10 @@ fn query_batches_simple() { | ||||
|       }, | ||||
|       "startedAt": "1970-01-01T00:00:00Z", | ||||
|       "finishedAt": null, | ||||
|       "enqueuedAt": null | ||||
|       "enqueuedAt": null, | ||||
|       "stopReason": "task with id 0 of type `indexCreation` cannot be batched" | ||||
|     } | ||||
|     "#); | ||||
|     "###); | ||||
|  | ||||
|     let query = Query { statuses: Some(vec![Status::Enqueued]), ..Default::default() }; | ||||
|     let (batches, _) = index_scheduler | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/queue/batches_test.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch None: | ||||
| @@ -49,8 +48,8 @@ catto: { number_of_documents: 0, field_distribution: {} } | ||||
| [timestamp] [1,2,3,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {"primaryKey":"mouse"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"catto":1}}, } | ||||
| 1 {uid: 1, details: {"primaryKey":"sheep","matchedTasks":3,"canceledTasks":2,"originalFilter":"test_query","swaps":[{"indexes":["catto","doggo"]}]}, stats: {"totalNbTasks":3,"status":{"succeeded":1,"canceled":2},"types":{"indexCreation":1,"indexSwap":1,"taskCancelation":1},"indexUids":{"doggo":1}}, } | ||||
| 0 {uid: 0, details: {"primaryKey":"mouse"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"catto":1}}, stop reason: "task with id 0 of type `indexCreation` cannot be batched", } | ||||
| 1 {uid: 1, details: {"primaryKey":"sheep","matchedTasks":3,"canceledTasks":2,"originalFilter":"test_query","swaps":[{"indexes":["catto","doggo"]}]}, stats: {"totalNbTasks":3,"status":{"succeeded":1,"canceled":2},"types":{"indexCreation":1,"indexSwap":1,"taskCancelation":1},"indexUids":{"doggo":1}}, stop reason: "task with id 3 of type `taskCancelation` cannot be batched", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,] | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/queue/batches_test.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch None: | ||||
| @@ -48,9 +47,9 @@ whalo: { number_of_documents: 0, field_distribution: {} } | ||||
| [timestamp] [2,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {"primaryKey":"bone"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"doggo":1}}, } | ||||
| 1 {uid: 1, details: {"primaryKey":"plankton"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"whalo":1}}, } | ||||
| 2 {uid: 2, details: {"primaryKey":"his_own_vomit"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"catto":1}}, } | ||||
| 0 {uid: 0, details: {"primaryKey":"bone"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"doggo":1}}, stop reason: "task with id 0 of type `indexCreation` cannot be batched", } | ||||
| 1 {uid: 1, details: {"primaryKey":"plankton"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"whalo":1}}, stop reason: "task with id 1 of type `indexCreation` cannot be batched", } | ||||
| 2 {uid: 2, details: {"primaryKey":"his_own_vomit"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"catto":1}}, stop reason: "task with id 2 of type `indexCreation` cannot be batched", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,] | ||||
|   | ||||
| @@ -1,11 +1,10 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/queue/batches_test.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch Some(1): | ||||
| [1,] | ||||
| {uid: 1, details: {"primaryKey":"sheep"}, stats: {"totalNbTasks":1,"status":{"processing":1},"types":{"indexCreation":1},"indexUids":{"doggo":1}}, } | ||||
| {uid: 1, details: {"primaryKey":"sheep"}, stats: {"totalNbTasks":1,"status":{"processing":1},"types":{"indexCreation":1},"indexUids":{"doggo":1}}, stop reason: "task with id 1 of type `indexCreation` cannot be batched", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, batch_uid: 0, status: succeeded, details: { primary_key: Some("mouse") }, kind: IndexCreation { index_uid: "catto", primary_key: Some("mouse") }} | ||||
| @@ -43,7 +42,7 @@ catto: { number_of_documents: 0, field_distribution: {} } | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {"primaryKey":"mouse"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"catto":1}}, } | ||||
| 0 {uid: 0, details: {"primaryKey":"mouse"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"catto":1}}, stop reason: "task with id 0 of type `indexCreation` cannot be batched", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,] | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/queue/batches_test.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch None: | ||||
| @@ -48,9 +47,9 @@ doggo: { number_of_documents: 0, field_distribution: {} } | ||||
| [timestamp] [2,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {"primaryKey":"mouse"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"catto":1}}, } | ||||
| 1 {uid: 1, details: {"primaryKey":"sheep"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"doggo":1}}, } | ||||
| 2 {uid: 2, details: {"primaryKey":"fish"}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"indexCreation":1},"indexUids":{"whalo":1}}, } | ||||
| 0 {uid: 0, details: {"primaryKey":"mouse"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"catto":1}}, stop reason: "task with id 0 of type `indexCreation` cannot be batched", } | ||||
| 1 {uid: 1, details: {"primaryKey":"sheep"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"doggo":1}}, stop reason: "task with id 1 of type `indexCreation` cannot be batched", } | ||||
| 2 {uid: 2, details: {"primaryKey":"fish"}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"indexCreation":1},"indexUids":{"whalo":1}}, stop reason: "task with id 2 of type `indexCreation` cannot be batched", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,] | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/queue/batches_test.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch None: | ||||
| @@ -53,10 +52,10 @@ doggo: { number_of_documents: 0, field_distribution: {} } | ||||
| [timestamp] [3,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {"primaryKey":"mouse"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"catto":1}}, } | ||||
| 1 {uid: 1, details: {"primaryKey":"sheep"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"doggo":1}}, } | ||||
| 2 {uid: 2, details: {"swaps":[{"indexes":["catto","doggo"]}]}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"indexSwap":1},"indexUids":{}}, } | ||||
| 3 {uid: 3, details: {"swaps":[{"indexes":["catto","whalo"]}]}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"indexSwap":1},"indexUids":{}}, } | ||||
| 0 {uid: 0, details: {"primaryKey":"mouse"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"catto":1}}, stop reason: "task with id 0 of type `indexCreation` cannot be batched", } | ||||
| 1 {uid: 1, details: {"primaryKey":"sheep"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"doggo":1}}, stop reason: "task with id 1 of type `indexCreation` cannot be batched", } | ||||
| 2 {uid: 2, details: {"swaps":[{"indexes":["catto","doggo"]}]}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"indexSwap":1},"indexUids":{}}, stop reason: "task with id 2 of type `indexSwap` cannot be batched", } | ||||
| 3 {uid: 3, details: {"swaps":[{"indexes":["catto","whalo"]}]}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"indexSwap":1},"indexUids":{}}, stop reason: "task with id 3 of type `indexSwap` cannot be batched", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,] | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/queue/tasks_test.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch None: | ||||
| @@ -49,8 +48,8 @@ catto: { number_of_documents: 0, field_distribution: {} } | ||||
| [timestamp] [1,2,3,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {"primaryKey":"mouse"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"catto":1}}, } | ||||
| 1 {uid: 1, details: {"primaryKey":"sheep","matchedTasks":3,"canceledTasks":2,"originalFilter":"test_query","swaps":[{"indexes":["catto","doggo"]}]}, stats: {"totalNbTasks":3,"status":{"succeeded":1,"canceled":2},"types":{"indexCreation":1,"indexSwap":1,"taskCancelation":1},"indexUids":{"doggo":1}}, } | ||||
| 0 {uid: 0, details: {"primaryKey":"mouse"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"catto":1}}, stop reason: "task with id 0 of type `indexCreation` cannot be batched", } | ||||
| 1 {uid: 1, details: {"primaryKey":"sheep","matchedTasks":3,"canceledTasks":2,"originalFilter":"test_query","swaps":[{"indexes":["catto","doggo"]}]}, stats: {"totalNbTasks":3,"status":{"succeeded":1,"canceled":2},"types":{"indexCreation":1,"indexSwap":1,"taskCancelation":1},"indexUids":{"doggo":1}}, stop reason: "task with id 3 of type `taskCancelation` cannot be batched", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,] | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/queue/tasks_test.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch None: | ||||
| @@ -48,9 +47,9 @@ whalo: { number_of_documents: 0, field_distribution: {} } | ||||
| [timestamp] [2,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {"primaryKey":"bone"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"doggo":1}}, } | ||||
| 1 {uid: 1, details: {"primaryKey":"plankton"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"whalo":1}}, } | ||||
| 2 {uid: 2, details: {"primaryKey":"his_own_vomit"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"catto":1}}, } | ||||
| 0 {uid: 0, details: {"primaryKey":"bone"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"doggo":1}}, stop reason: "task with id 0 of type `indexCreation` cannot be batched", } | ||||
| 1 {uid: 1, details: {"primaryKey":"plankton"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"whalo":1}}, stop reason: "task with id 1 of type `indexCreation` cannot be batched", } | ||||
| 2 {uid: 2, details: {"primaryKey":"his_own_vomit"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"catto":1}}, stop reason: "task with id 2 of type `indexCreation` cannot be batched", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,] | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/queue/tasks_test.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch None: | ||||
| @@ -48,9 +47,9 @@ doggo: { number_of_documents: 0, field_distribution: {} } | ||||
| [timestamp] [2,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {"primaryKey":"mouse"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"catto":1}}, } | ||||
| 1 {uid: 1, details: {"primaryKey":"sheep"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"doggo":1}}, } | ||||
| 2 {uid: 2, details: {"primaryKey":"fish"}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"indexCreation":1},"indexUids":{"whalo":1}}, } | ||||
| 0 {uid: 0, details: {"primaryKey":"mouse"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"catto":1}}, stop reason: "task with id 0 of type `indexCreation` cannot be batched", } | ||||
| 1 {uid: 1, details: {"primaryKey":"sheep"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"doggo":1}}, stop reason: "task with id 1 of type `indexCreation` cannot be batched", } | ||||
| 2 {uid: 2, details: {"primaryKey":"fish"}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"indexCreation":1},"indexUids":{"whalo":1}}, stop reason: "task with id 2 of type `indexCreation` cannot be batched", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,] | ||||
|   | ||||
| @@ -5,9 +5,10 @@ tasks affecting a single index into a [batch](crate::batch::Batch). | ||||
| The main function of the autobatcher is [`next_autobatch`]. | ||||
| */ | ||||
|  | ||||
| use meilisearch_types::tasks::TaskId; | ||||
| use std::ops::ControlFlow::{self, Break, Continue}; | ||||
|  | ||||
| use meilisearch_types::tasks::{BatchStopReason, PrimaryKeyMismatchReason, TaskId}; | ||||
|  | ||||
| use crate::KindWithContent; | ||||
|  | ||||
| /// Succinctly describes a task's [`Kind`](meilisearch_types::tasks::Kind) | ||||
| @@ -145,16 +146,42 @@ impl BatchKind { | ||||
|     // TODO use an AutoBatchKind as input | ||||
|     pub fn new( | ||||
|         task_id: TaskId, | ||||
|         kind: KindWithContent, | ||||
|         kind_with_content: KindWithContent, | ||||
|         primary_key: Option<&str>, | ||||
|     ) -> (ControlFlow<BatchKind, BatchKind>, bool) { | ||||
|     ) -> (ControlFlow<(BatchKind, BatchStopReason), BatchKind>, bool) { | ||||
|         use AutobatchKind as K; | ||||
|  | ||||
|         match AutobatchKind::from(kind) { | ||||
|             K::IndexCreation => (Break(BatchKind::IndexCreation { id: task_id }), true), | ||||
|             K::IndexDeletion => (Break(BatchKind::IndexDeletion { ids: vec![task_id] }), false), | ||||
|             K::IndexUpdate => (Break(BatchKind::IndexUpdate { id: task_id }), false), | ||||
|             K::IndexSwap => (Break(BatchKind::IndexSwap { id: task_id }), false), | ||||
|         let kind = kind_with_content.as_kind(); | ||||
|  | ||||
|         match AutobatchKind::from(kind_with_content) { | ||||
|             K::IndexCreation => ( | ||||
|                 Break(( | ||||
|                     BatchKind::IndexCreation { id: task_id }, | ||||
|                     BatchStopReason::TaskCannotBeBatched { kind, id: task_id }, | ||||
|                 )), | ||||
|                 true, | ||||
|             ), | ||||
|             K::IndexDeletion => ( | ||||
|                 Break(( | ||||
|                     BatchKind::IndexDeletion { ids: vec![task_id] }, | ||||
|                     BatchStopReason::IndexDeletion { id: task_id }, | ||||
|                 )), | ||||
|                 false, | ||||
|             ), | ||||
|             K::IndexUpdate => ( | ||||
|                 Break(( | ||||
|                     BatchKind::IndexUpdate { id: task_id }, | ||||
|                     BatchStopReason::TaskCannotBeBatched { kind, id: task_id }, | ||||
|                 )), | ||||
|                 false, | ||||
|             ), | ||||
|             K::IndexSwap => ( | ||||
|                 Break(( | ||||
|                     BatchKind::IndexSwap { id: task_id }, | ||||
|                     BatchStopReason::TaskCannotBeBatched { kind, id: task_id }, | ||||
|                 )), | ||||
|                 false, | ||||
|             ), | ||||
|             K::DocumentClear => (Continue(BatchKind::DocumentClear { ids: vec![task_id] }), false), | ||||
|             K::DocumentImport { allow_index_creation, primary_key: pk } | ||||
|                 if primary_key.is_none() || pk.is_none() || primary_key == pk.as_deref() => | ||||
| @@ -169,15 +196,28 @@ impl BatchKind { | ||||
|                 ) | ||||
|             } | ||||
|             // if the primary key set in the task was different than ours we should stop and make this batch fail asap. | ||||
|             K::DocumentImport { allow_index_creation, primary_key } => ( | ||||
|                 Break(BatchKind::DocumentOperation { | ||||
|                     allow_index_creation, | ||||
|                     primary_key, | ||||
|                     operation_ids: vec![task_id], | ||||
|                 }), | ||||
|             K::DocumentImport { allow_index_creation, primary_key: pk } => ( | ||||
|                 Break(( | ||||
|                     BatchKind::DocumentOperation { | ||||
|                         allow_index_creation, | ||||
|                         primary_key: pk.clone(), | ||||
|                         operation_ids: vec![task_id], | ||||
|                     }, | ||||
|                     BatchStopReason::PrimaryKeyIndexMismatch { | ||||
|                         id: task_id, | ||||
|                         in_index: primary_key.unwrap().to_owned(), | ||||
|                         in_task: pk.unwrap(), | ||||
|                     }, | ||||
|                 )), | ||||
|                 allow_index_creation, | ||||
|             ), | ||||
|             K::DocumentEdition => (Break(BatchKind::DocumentEdition { id: task_id }), false), | ||||
|             K::DocumentEdition => ( | ||||
|                 Break(( | ||||
|                     BatchKind::DocumentEdition { id: task_id }, | ||||
|                     BatchStopReason::TaskCannotBeBatched { kind, id: task_id }, | ||||
|                 )), | ||||
|                 false, | ||||
|             ), | ||||
|             K::DocumentDeletion { by_filter: includes_by_filter } => ( | ||||
|                 Continue(BatchKind::DocumentDeletion { | ||||
|                     deletion_ids: vec![task_id], | ||||
| @@ -197,43 +237,60 @@ impl BatchKind { | ||||
|     /// To ease the writing of the code. `true` can be returned when you don't need to create an index | ||||
|     /// but false can't be returned if you needs to create an index. | ||||
|     #[rustfmt::skip] | ||||
|     fn accumulate(self, id: TaskId, kind: AutobatchKind, index_already_exists: bool, primary_key: Option<&str>) -> ControlFlow<BatchKind, BatchKind> { | ||||
|     fn accumulate(self, id: TaskId, kind_with_content: KindWithContent, index_already_exists: bool, primary_key: Option<&str>) -> ControlFlow<(BatchKind, BatchStopReason), BatchKind> { | ||||
|         use AutobatchKind as K; | ||||
|  | ||||
|         match (self, kind) { | ||||
|         let kind = kind_with_content.as_kind(); | ||||
|         let autobatch_kind = AutobatchKind::from(kind_with_content); | ||||
|  | ||||
|         let pk: Option<String> = match (self.primary_key(), autobatch_kind.primary_key(), primary_key) { | ||||
|             // 1. If incoming task don't interact with primary key -> we can continue | ||||
|             (batch_pk, None | Some(None), _) => { | ||||
|                 batch_pk.flatten().map(ToOwned::to_owned) | ||||
|             }, | ||||
|             // 2.1 If we already have a primary-key -> | ||||
|             // 2.1.1 If the task we're trying to accumulate have a pk it must be equal to our primary key | ||||
|             (_batch_pk, Some(Some(task_pk)), Some(index_pk)) => if task_pk == index_pk { | ||||
|                 Some(task_pk.to_owned()) | ||||
|             } else { | ||||
|                 return Break((self, BatchStopReason::PrimaryKeyMismatch { | ||||
|                     id, | ||||
|                     reason: PrimaryKeyMismatchReason::TaskPrimaryKeyDifferFromIndexPrimaryKey { | ||||
|                         task_pk: task_pk.to_owned(), | ||||
|                         index_pk: index_pk.to_owned(), | ||||
|                     }, | ||||
|                 })) | ||||
|             }, | ||||
|             // 2.2 If we don't have a primary-key -> | ||||
|             // 2.2.2 If the batch is set to Some(None), the task should be too | ||||
|             (Some(None), Some(Some(task_pk)), None) => return Break((self, BatchStopReason::PrimaryKeyMismatch { | ||||
|                 id, | ||||
|                 reason: PrimaryKeyMismatchReason::CannotInterfereWithPrimaryKeyGuessing { | ||||
|                     task_pk: task_pk.to_owned(), | ||||
|                 }, | ||||
|             })), | ||||
|             (Some(Some(batch_pk)), Some(Some(task_pk)), None) => if task_pk == batch_pk { | ||||
|                 Some(task_pk.to_owned()) | ||||
|             } else { | ||||
|                 let batch_pk = batch_pk.to_owned(); | ||||
|                 let task_pk = task_pk.to_owned(); | ||||
|                 return Break((self, BatchStopReason::PrimaryKeyMismatch { | ||||
|                     id, | ||||
|                     reason: PrimaryKeyMismatchReason::TaskPrimaryKeyDifferFromCurrentBatchPrimaryKey { | ||||
|                         batch_pk, | ||||
|                         task_pk | ||||
|                     }, | ||||
|                 })) | ||||
|             }, | ||||
|             (None, Some(Some(task_pk)), None) => Some(task_pk.to_owned()) | ||||
|         }; | ||||
|  | ||||
|         match (self, autobatch_kind) { | ||||
|             // We don't batch any of these operations | ||||
|             (this, K::IndexCreation | K::IndexUpdate | K::IndexSwap | K::DocumentEdition) => Break(this), | ||||
|             (this, K::IndexCreation | K::IndexUpdate | K::IndexSwap | K::DocumentEdition) => Break((this, BatchStopReason::TaskCannotBeBatched { kind, id })), | ||||
|             // We must not batch tasks that don't have the same index creation rights if the index doesn't already exists. | ||||
|             (this, kind) if !index_already_exists && this.allow_index_creation() == Some(false) && kind.allow_index_creation() == Some(true) => { | ||||
|                 Break(this) | ||||
|             }, | ||||
|             // NOTE: We need to negate the whole condition since we're checking if we need to break instead of continue. | ||||
|             //       I wrote it this way because it's easier to understand than the other way around. | ||||
|             (this, kind) if !( | ||||
|                 // 1. If both task don't interact with primary key -> we can continue | ||||
|                 (this.primary_key().is_none() && kind.primary_key().is_none()) || | ||||
|                 // 2. Else -> | ||||
|                 ( | ||||
|                     // 2.1 If we already have a primary-key -> | ||||
|                     ( | ||||
|                         primary_key.is_some() && | ||||
|                         // 2.1.1 If the task we're trying to accumulate have a pk it must be equal to our primary key | ||||
|                         // 2.1.2 If the task don't have a primary-key -> we can continue | ||||
|                         kind.primary_key().is_none_or(|pk| pk == primary_key) | ||||
|                     ) || | ||||
|                     // 2.2 If we don't have a primary-key -> | ||||
|                     ( | ||||
|                         // 2.2.1 If both the batch and the task have a primary key they should be equal | ||||
|                         // 2.2.2 If the batch is set to Some(None), the task should be too | ||||
|                         // 2.2.3 If the batch is set to None -> we can continue | ||||
|                         this.primary_key().zip(kind.primary_key()).map_or(true, |(this, kind)| this == kind) | ||||
|                     ) | ||||
|                 ) | ||||
|  | ||||
|                 ) // closing the negation | ||||
|  | ||||
|             => { | ||||
|                 Break(this) | ||||
|                 Break((this, BatchStopReason::IndexCreationMismatch { id })) | ||||
|             }, | ||||
|             // The index deletion can batch with everything but must stop after | ||||
|             ( | ||||
| @@ -244,7 +301,7 @@ impl BatchKind { | ||||
|                 K::IndexDeletion, | ||||
|             ) => { | ||||
|                 ids.push(id); | ||||
|                 Break(BatchKind::IndexDeletion { ids }) | ||||
|                 Break((BatchKind::IndexDeletion { ids }, BatchStopReason::IndexDeletion { id })) | ||||
|             } | ||||
|             ( | ||||
|                 BatchKind::ClearAndSettings { settings_ids: mut ids, allow_index_creation: _, mut other }, | ||||
| @@ -252,7 +309,7 @@ impl BatchKind { | ||||
|             ) => { | ||||
|                 ids.push(id); | ||||
|                 ids.append(&mut other); | ||||
|                 Break(BatchKind::IndexDeletion { ids }) | ||||
|                 Break((BatchKind::IndexDeletion { ids }, BatchStopReason::IndexDeletion { id })) | ||||
|             } | ||||
|  | ||||
|             ( | ||||
| @@ -265,7 +322,7 @@ impl BatchKind { | ||||
|             ( | ||||
|                 this @ BatchKind::DocumentClear { .. }, | ||||
|                 K::DocumentImport { .. } | K::Settings { .. }, | ||||
|             ) => Break(this), | ||||
|             ) => Break((this, BatchStopReason::DocumentOperationWithSettings { id })), | ||||
|             ( | ||||
|                 BatchKind::DocumentOperation { allow_index_creation: _, primary_key: _, mut operation_ids }, | ||||
|                 K::DocumentClear, | ||||
| @@ -277,7 +334,7 @@ impl BatchKind { | ||||
|             // we can autobatch different kind of document operations and mix replacements with updates | ||||
|             ( | ||||
|                 BatchKind::DocumentOperation { allow_index_creation, primary_key: _, mut operation_ids }, | ||||
|                 K::DocumentImport { primary_key: pk, .. }, | ||||
|                 K::DocumentImport { primary_key: _, .. }, | ||||
|             ) => { | ||||
|                 operation_ids.push(id); | ||||
|                 Continue(BatchKind::DocumentOperation { | ||||
| @@ -287,15 +344,15 @@ impl BatchKind { | ||||
|                 }) | ||||
|             } | ||||
|             ( | ||||
|                 BatchKind::DocumentOperation { allow_index_creation, primary_key, mut operation_ids }, | ||||
|                 BatchKind::DocumentOperation { allow_index_creation, primary_key: _, mut operation_ids }, | ||||
|                 K::DocumentDeletion { by_filter: false }, | ||||
|             ) => { | ||||
|                 operation_ids.push(id); | ||||
|  | ||||
|                 Continue(BatchKind::DocumentOperation { | ||||
|                     allow_index_creation, | ||||
|                     primary_key, | ||||
|                     operation_ids, | ||||
|                     primary_key: pk, | ||||
|                 }) | ||||
|             } | ||||
|             // We can't batch a document operation with a delete by filter | ||||
| @@ -303,12 +360,12 @@ impl BatchKind { | ||||
|                 this @ BatchKind::DocumentOperation { .. }, | ||||
|                 K::DocumentDeletion { by_filter: true }, | ||||
|             ) => { | ||||
|                 Break(this) | ||||
|                 Break((this, BatchStopReason::DocumentOperationWithDeletionByFilter { id })) | ||||
|             } | ||||
|             ( | ||||
|                 this @ BatchKind::DocumentOperation { .. }, | ||||
|                 K::Settings { .. }, | ||||
|             ) => Break(this), | ||||
|             ) => Break((this, BatchStopReason::DocumentOperationWithSettings { id })), | ||||
|  | ||||
|             (BatchKind::DocumentDeletion { mut deletion_ids, includes_by_filter: _ }, K::DocumentClear) => { | ||||
|                 deletion_ids.push(id); | ||||
| @@ -318,7 +375,7 @@ impl BatchKind { | ||||
|             ( | ||||
|                 this @ BatchKind::DocumentDeletion { deletion_ids: _, includes_by_filter: true }, | ||||
|                 K::DocumentImport { .. } | ||||
|             ) => Break(this), | ||||
|             ) => Break((this, BatchStopReason::DeletionByFilterWithDocumentOperation { id })), | ||||
|             // we can autobatch the deletion and import if the index already exists | ||||
|             ( | ||||
|                 BatchKind::DocumentDeletion { mut deletion_ids, includes_by_filter: false }, | ||||
| @@ -345,18 +402,18 @@ impl BatchKind { | ||||
|                     operation_ids: deletion_ids, | ||||
|                 }) | ||||
|             } | ||||
|             // we can't autobatch a deletion and an import if the index does not exists but would be created by an addition | ||||
|             // we can't autobatch a deletion and an import if the index does not exist but would be created by an addition | ||||
|             ( | ||||
|                 this @ BatchKind::DocumentDeletion { .. }, | ||||
|                 K::DocumentImport { .. } | ||||
|             ) => { | ||||
|                 Break(this) | ||||
|                 Break((this, BatchStopReason::IndexCreationMismatch { id })) | ||||
|             } | ||||
|             (BatchKind::DocumentDeletion { mut deletion_ids, includes_by_filter }, K::DocumentDeletion { by_filter }) => { | ||||
|                 deletion_ids.push(id); | ||||
|                 Continue(BatchKind::DocumentDeletion { deletion_ids, includes_by_filter: includes_by_filter | by_filter }) | ||||
|             } | ||||
|             (this @ BatchKind::DocumentDeletion { .. }, K::Settings { .. }) => Break(this), | ||||
|             (this @ BatchKind::DocumentDeletion { .. }, K::Settings { .. }) => Break((this, BatchStopReason::DocumentOperationWithSettings { id })), | ||||
|  | ||||
|             ( | ||||
|                 BatchKind::Settings { settings_ids, allow_index_creation }, | ||||
| @@ -369,7 +426,7 @@ impl BatchKind { | ||||
|             ( | ||||
|                 this @ BatchKind::Settings { .. }, | ||||
|                 K::DocumentImport { .. } | K::DocumentDeletion { .. }, | ||||
|             ) => Break(this), | ||||
|             ) => Break((this, BatchStopReason::SettingsWithDocumentOperation { id })), | ||||
|             ( | ||||
|                 BatchKind::Settings { mut settings_ids, allow_index_creation }, | ||||
|                 K::Settings { .. }, | ||||
| @@ -392,7 +449,7 @@ impl BatchKind { | ||||
|                     allow_index_creation, | ||||
|                 }) | ||||
|             } | ||||
|             (this @ BatchKind::ClearAndSettings { .. }, K::DocumentImport { .. }) => Break(this), | ||||
|             (this @ BatchKind::ClearAndSettings { .. }, K::DocumentImport { .. }) => Break((this, BatchStopReason::SettingsWithDocumentOperation { id })), | ||||
|             ( | ||||
|                 BatchKind::ClearAndSettings { | ||||
|                     mut other, | ||||
| @@ -448,7 +505,7 @@ pub fn autobatch( | ||||
|     enqueued: Vec<(TaskId, KindWithContent)>, | ||||
|     index_already_exists: bool, | ||||
|     primary_key: Option<&str>, | ||||
| ) -> Option<(BatchKind, bool)> { | ||||
| ) -> Option<(BatchKind, bool, Option<BatchStopReason>)> { | ||||
|     let mut enqueued = enqueued.into_iter(); | ||||
|     let (id, kind) = enqueued.next()?; | ||||
|  | ||||
| @@ -457,18 +514,22 @@ pub fn autobatch( | ||||
|  | ||||
|     let (mut acc, must_create_index) = match BatchKind::new(id, kind, primary_key) { | ||||
|         (Continue(acc), create) => (acc, create), | ||||
|         (Break(acc), create) => return Some((acc, create)), | ||||
|         (Break((acc, batch_stop_reason)), create) => { | ||||
|             return Some((acc, create, Some(batch_stop_reason))) | ||||
|         } | ||||
|     }; | ||||
|  | ||||
|     // if an index has been created in the previous step we can consider it as existing. | ||||
|     index_exist |= must_create_index; | ||||
|  | ||||
|     for (id, kind) in enqueued { | ||||
|         acc = match acc.accumulate(id, kind.into(), index_exist, primary_key) { | ||||
|     for (id, kind_with_content) in enqueued { | ||||
|         acc = match acc.accumulate(id, kind_with_content, index_exist, primary_key) { | ||||
|             Continue(acc) => acc, | ||||
|             Break(acc) => return Some((acc, must_create_index)), | ||||
|             Break((acc, batch_stop_reason)) => { | ||||
|                 return Some((acc, must_create_index, Some(batch_stop_reason))) | ||||
|             } | ||||
|         }; | ||||
|     } | ||||
|  | ||||
|     Some((acc, must_create_index)) | ||||
|     Some((acc, must_create_index, None)) | ||||
| } | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| use meilisearch_types::milli::update::IndexDocumentsMethod::{ | ||||
|     self, ReplaceDocuments, UpdateDocuments, | ||||
| }; | ||||
| use meilisearch_types::tasks::{IndexSwap, KindWithContent}; | ||||
| use meilisearch_types::tasks::{BatchStopReason, IndexSwap, KindWithContent}; | ||||
| use uuid::Uuid; | ||||
|  | ||||
| use self::autobatcher::{autobatch, BatchKind}; | ||||
| @@ -20,7 +20,7 @@ fn autobatch_from( | ||||
|     index_already_exists: bool, | ||||
|     primary_key: Option<&str>, | ||||
|     input: impl IntoIterator<Item = KindWithContent>, | ||||
| ) -> Option<(BatchKind, bool)> { | ||||
| ) -> Option<(BatchKind, bool, Option<BatchStopReason>)> { | ||||
|     autobatch( | ||||
|         input.into_iter().enumerate().map(|(id, kind)| (id as TaskId, kind)).collect(), | ||||
|         index_already_exists, | ||||
| @@ -92,304 +92,304 @@ fn idx_swap() -> KindWithContent { | ||||
| fn autobatch_simple_operation_together() { | ||||
|     // we can autobatch one or multiple `ReplaceDocuments` together. | ||||
|     // if the index exists. | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, true, None)]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, false, None)]), @"Some((DocumentOperation { allow_index_creation: false, primary_key: None, operation_ids: [0] }, false))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, true, None), doc_imp( ReplaceDocuments, true , None), doc_imp(ReplaceDocuments, true , None)]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0, 1, 2] }, true))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, false, None), doc_imp( ReplaceDocuments, false , None), doc_imp(ReplaceDocuments, false , None)]), @"Some((DocumentOperation { allow_index_creation: false, primary_key: None, operation_ids: [0, 1, 2] }, false))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, true, None)]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true, None))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, false, None)]), @"Some((DocumentOperation { allow_index_creation: false, primary_key: None, operation_ids: [0] }, false, None))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, true, None), doc_imp( ReplaceDocuments, true , None), doc_imp(ReplaceDocuments, true , None)]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0, 1, 2] }, true, None))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, false, None), doc_imp( ReplaceDocuments, false , None), doc_imp(ReplaceDocuments, false , None)]), @"Some((DocumentOperation { allow_index_creation: false, primary_key: None, operation_ids: [0, 1, 2] }, false, None))"); | ||||
|  | ||||
|     // if it doesn't exists. | ||||
|     debug_snapshot!(autobatch_from(false,None,  [doc_imp(ReplaceDocuments, true, None)]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true))"); | ||||
|     debug_snapshot!(autobatch_from(false,None,  [doc_imp(ReplaceDocuments, false, None)]), @"Some((DocumentOperation { allow_index_creation: false, primary_key: None, operation_ids: [0] }, false))"); | ||||
|     debug_snapshot!(autobatch_from(false,None,  [doc_imp(ReplaceDocuments, true, None), doc_imp( ReplaceDocuments, true , None), doc_imp(ReplaceDocuments, true , None)]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0, 1, 2] }, true))"); | ||||
|     debug_snapshot!(autobatch_from(false,None,  [doc_imp(ReplaceDocuments, false, None), doc_imp( ReplaceDocuments, true , None), doc_imp(ReplaceDocuments, true , None)]), @"Some((DocumentOperation { allow_index_creation: false, primary_key: None, operation_ids: [0] }, false))"); | ||||
|     debug_snapshot!(autobatch_from(false,None,  [doc_imp(ReplaceDocuments, true, None)]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true, None))"); | ||||
|     debug_snapshot!(autobatch_from(false,None,  [doc_imp(ReplaceDocuments, false, None)]), @"Some((DocumentOperation { allow_index_creation: false, primary_key: None, operation_ids: [0] }, false, None))"); | ||||
|     debug_snapshot!(autobatch_from(false,None,  [doc_imp(ReplaceDocuments, true, None), doc_imp( ReplaceDocuments, true , None), doc_imp(ReplaceDocuments, true , None)]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0, 1, 2] }, true, None))"); | ||||
|     debug_snapshot!(autobatch_from(false,None,  [doc_imp(ReplaceDocuments, false, None), doc_imp( ReplaceDocuments, true , None), doc_imp(ReplaceDocuments, true , None)]), @"Some((DocumentOperation { allow_index_creation: false, primary_key: None, operation_ids: [0] }, false, Some(IndexCreationMismatch { id: 1 })))"); | ||||
|  | ||||
|     // we can autobatch one or multiple `UpdateDocuments` together. | ||||
|     // if the index exists. | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(UpdateDocuments, true, None)]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(UpdateDocuments, true, None), doc_imp(UpdateDocuments, true, None), doc_imp(UpdateDocuments, true, None)]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0, 1, 2] }, true))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(UpdateDocuments, false, None)]), @"Some((DocumentOperation { allow_index_creation: false, primary_key: None, operation_ids: [0] }, false))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(UpdateDocuments, false, None), doc_imp(UpdateDocuments, false, None), doc_imp(UpdateDocuments, false, None)]), @"Some((DocumentOperation { allow_index_creation: false, primary_key: None, operation_ids: [0, 1, 2] }, false))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(UpdateDocuments, true, None)]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true, None))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(UpdateDocuments, true, None), doc_imp(UpdateDocuments, true, None), doc_imp(UpdateDocuments, true, None)]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0, 1, 2] }, true, None))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(UpdateDocuments, false, None)]), @"Some((DocumentOperation { allow_index_creation: false, primary_key: None, operation_ids: [0] }, false, None))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(UpdateDocuments, false, None), doc_imp(UpdateDocuments, false, None), doc_imp(UpdateDocuments, false, None)]), @"Some((DocumentOperation { allow_index_creation: false, primary_key: None, operation_ids: [0, 1, 2] }, false, None))"); | ||||
|  | ||||
|     // if it doesn't exists. | ||||
|     debug_snapshot!(autobatch_from(false,None,  [doc_imp(UpdateDocuments, true, None)]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true))"); | ||||
|     debug_snapshot!(autobatch_from(false,None,  [doc_imp(UpdateDocuments, true, None), doc_imp(UpdateDocuments, true, None), doc_imp(UpdateDocuments, true, None)]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0, 1, 2] }, true))"); | ||||
|     debug_snapshot!(autobatch_from(false,None,  [doc_imp(UpdateDocuments, false, None)]), @"Some((DocumentOperation { allow_index_creation: false, primary_key: None, operation_ids: [0] }, false))"); | ||||
|     debug_snapshot!(autobatch_from(false,None,  [doc_imp(UpdateDocuments, false, None), doc_imp(UpdateDocuments, false, None), doc_imp(UpdateDocuments, false, None)]), @"Some((DocumentOperation { allow_index_creation: false, primary_key: None, operation_ids: [0, 1, 2] }, false))"); | ||||
|     debug_snapshot!(autobatch_from(false,None,  [doc_imp(UpdateDocuments, true, None)]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true, None))"); | ||||
|     debug_snapshot!(autobatch_from(false,None,  [doc_imp(UpdateDocuments, true, None), doc_imp(UpdateDocuments, true, None), doc_imp(UpdateDocuments, true, None)]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0, 1, 2] }, true, None))"); | ||||
|     debug_snapshot!(autobatch_from(false,None,  [doc_imp(UpdateDocuments, false, None)]), @"Some((DocumentOperation { allow_index_creation: false, primary_key: None, operation_ids: [0] }, false, None))"); | ||||
|     debug_snapshot!(autobatch_from(false,None,  [doc_imp(UpdateDocuments, false, None), doc_imp(UpdateDocuments, false, None), doc_imp(UpdateDocuments, false, None)]), @"Some((DocumentOperation { allow_index_creation: false, primary_key: None, operation_ids: [0, 1, 2] }, false, None))"); | ||||
|  | ||||
|     // we can autobatch one or multiple DocumentDeletion together | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_del()]), @"Some((DocumentDeletion { deletion_ids: [0], includes_by_filter: false }, false))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_del(), doc_del(), doc_del()]), @"Some((DocumentDeletion { deletion_ids: [0, 1, 2], includes_by_filter: false }, false))"); | ||||
|     debug_snapshot!(autobatch_from(false,None,  [doc_del()]), @"Some((DocumentDeletion { deletion_ids: [0], includes_by_filter: false }, false))"); | ||||
|     debug_snapshot!(autobatch_from(false,None,  [doc_del(), doc_del(), doc_del()]), @"Some((DocumentDeletion { deletion_ids: [0, 1, 2], includes_by_filter: false }, false))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_del()]), @"Some((DocumentDeletion { deletion_ids: [0], includes_by_filter: false }, false, None))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_del(), doc_del(), doc_del()]), @"Some((DocumentDeletion { deletion_ids: [0, 1, 2], includes_by_filter: false }, false, None))"); | ||||
|     debug_snapshot!(autobatch_from(false,None,  [doc_del()]), @"Some((DocumentDeletion { deletion_ids: [0], includes_by_filter: false }, false, None))"); | ||||
|     debug_snapshot!(autobatch_from(false,None,  [doc_del(), doc_del(), doc_del()]), @"Some((DocumentDeletion { deletion_ids: [0, 1, 2], includes_by_filter: false }, false, None))"); | ||||
|  | ||||
|     // we can autobatch one or multiple DocumentDeletionByFilter together | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_del_fil()]), @"Some((DocumentDeletion { deletion_ids: [0], includes_by_filter: true }, false))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_del_fil(), doc_del_fil(), doc_del_fil()]), @"Some((DocumentDeletion { deletion_ids: [0, 1, 2], includes_by_filter: true }, false))"); | ||||
|     debug_snapshot!(autobatch_from(false,None,  [doc_del_fil()]), @"Some((DocumentDeletion { deletion_ids: [0], includes_by_filter: true }, false))"); | ||||
|     debug_snapshot!(autobatch_from(false,None,  [doc_del_fil(), doc_del_fil(), doc_del_fil()]), @"Some((DocumentDeletion { deletion_ids: [0, 1, 2], includes_by_filter: true }, false))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_del_fil()]), @"Some((DocumentDeletion { deletion_ids: [0], includes_by_filter: true }, false, None))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_del_fil(), doc_del_fil(), doc_del_fil()]), @"Some((DocumentDeletion { deletion_ids: [0, 1, 2], includes_by_filter: true }, false, None))"); | ||||
|     debug_snapshot!(autobatch_from(false,None,  [doc_del_fil()]), @"Some((DocumentDeletion { deletion_ids: [0], includes_by_filter: true }, false, None))"); | ||||
|     debug_snapshot!(autobatch_from(false,None,  [doc_del_fil(), doc_del_fil(), doc_del_fil()]), @"Some((DocumentDeletion { deletion_ids: [0, 1, 2], includes_by_filter: true }, false, None))"); | ||||
|  | ||||
|     // we can autobatch one or multiple Settings together | ||||
|     debug_snapshot!(autobatch_from(true, None, [settings(true)]), @"Some((Settings { allow_index_creation: true, settings_ids: [0] }, true))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [settings(true), settings(true), settings(true)]), @"Some((Settings { allow_index_creation: true, settings_ids: [0, 1, 2] }, true))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [settings(false)]), @"Some((Settings { allow_index_creation: false, settings_ids: [0] }, false))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [settings(false), settings(false), settings(false)]), @"Some((Settings { allow_index_creation: false, settings_ids: [0, 1, 2] }, false))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [settings(true)]), @"Some((Settings { allow_index_creation: true, settings_ids: [0] }, true, None))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [settings(true), settings(true), settings(true)]), @"Some((Settings { allow_index_creation: true, settings_ids: [0, 1, 2] }, true, None))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [settings(false)]), @"Some((Settings { allow_index_creation: false, settings_ids: [0] }, false, None))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [settings(false), settings(false), settings(false)]), @"Some((Settings { allow_index_creation: false, settings_ids: [0, 1, 2] }, false, None))"); | ||||
|  | ||||
|     debug_snapshot!(autobatch_from(false,None,  [settings(true)]), @"Some((Settings { allow_index_creation: true, settings_ids: [0] }, true))"); | ||||
|     debug_snapshot!(autobatch_from(false,None,  [settings(true), settings(true), settings(true)]), @"Some((Settings { allow_index_creation: true, settings_ids: [0, 1, 2] }, true))"); | ||||
|     debug_snapshot!(autobatch_from(false,None,  [settings(false)]), @"Some((Settings { allow_index_creation: false, settings_ids: [0] }, false))"); | ||||
|     debug_snapshot!(autobatch_from(false,None,  [settings(false), settings(false), settings(false)]), @"Some((Settings { allow_index_creation: false, settings_ids: [0, 1, 2] }, false))"); | ||||
|     debug_snapshot!(autobatch_from(false,None,  [settings(true)]), @"Some((Settings { allow_index_creation: true, settings_ids: [0] }, true, None))"); | ||||
|     debug_snapshot!(autobatch_from(false,None,  [settings(true), settings(true), settings(true)]), @"Some((Settings { allow_index_creation: true, settings_ids: [0, 1, 2] }, true, None))"); | ||||
|     debug_snapshot!(autobatch_from(false,None,  [settings(false)]), @"Some((Settings { allow_index_creation: false, settings_ids: [0] }, false, None))"); | ||||
|     debug_snapshot!(autobatch_from(false,None,  [settings(false), settings(false), settings(false)]), @"Some((Settings { allow_index_creation: false, settings_ids: [0, 1, 2] }, false, None))"); | ||||
|  | ||||
|     // We can autobatch document addition with document deletion | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, true, None), doc_del()]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0, 1] }, true))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(UpdateDocuments, true, None), doc_del()]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0, 1] }, true))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, false, None), doc_del()]), @"Some((DocumentOperation { allow_index_creation: false, primary_key: None, operation_ids: [0, 1] }, false))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(UpdateDocuments, false, None), doc_del()]), @"Some((DocumentOperation { allow_index_creation: false, primary_key: None, operation_ids: [0, 1] }, false))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, true, Some("catto")), doc_del()]), @r###"Some((DocumentOperation { allow_index_creation: true, primary_key: Some("catto"), operation_ids: [0, 1] }, true))"###); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(UpdateDocuments, true, Some("catto")), doc_del()]), @r###"Some((DocumentOperation { allow_index_creation: true, primary_key: Some("catto"), operation_ids: [0, 1] }, true))"###); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, false, Some("catto")), doc_del()]), @r###"Some((DocumentOperation { allow_index_creation: false, primary_key: Some("catto"), operation_ids: [0, 1] }, false))"###); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(UpdateDocuments, false, Some("catto")), doc_del()]), @r###"Some((DocumentOperation { allow_index_creation: false, primary_key: Some("catto"), operation_ids: [0, 1] }, false))"###); | ||||
|     debug_snapshot!(autobatch_from(false, None, [doc_imp(ReplaceDocuments, true, None), doc_del()]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0, 1] }, true))"); | ||||
|     debug_snapshot!(autobatch_from(false, None, [doc_imp(UpdateDocuments, true, None), doc_del()]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0, 1] }, true))"); | ||||
|     debug_snapshot!(autobatch_from(false, None, [doc_imp(ReplaceDocuments, false, None), doc_del()]), @"Some((DocumentOperation { allow_index_creation: false, primary_key: None, operation_ids: [0, 1] }, false))"); | ||||
|     debug_snapshot!(autobatch_from(false, None, [doc_imp(UpdateDocuments, false, None), doc_del()]), @"Some((DocumentOperation { allow_index_creation: false, primary_key: None, operation_ids: [0, 1] }, false))"); | ||||
|     debug_snapshot!(autobatch_from(false, None, [doc_imp(ReplaceDocuments, true, Some("catto")), doc_del()]), @r###"Some((DocumentOperation { allow_index_creation: true, primary_key: Some("catto"), operation_ids: [0, 1] }, true))"###); | ||||
|     debug_snapshot!(autobatch_from(false, None, [doc_imp(UpdateDocuments, true, Some("catto")), doc_del()]), @r###"Some((DocumentOperation { allow_index_creation: true, primary_key: Some("catto"), operation_ids: [0, 1] }, true))"###); | ||||
|     debug_snapshot!(autobatch_from(false, None, [doc_imp(ReplaceDocuments, false, Some("catto")), doc_del()]), @r###"Some((DocumentOperation { allow_index_creation: false, primary_key: Some("catto"), operation_ids: [0, 1] }, false))"###); | ||||
|     debug_snapshot!(autobatch_from(false, None, [doc_imp(UpdateDocuments, false, Some("catto")), doc_del()]), @r###"Some((DocumentOperation { allow_index_creation: false, primary_key: Some("catto"), operation_ids: [0, 1] }, false))"###); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, true, None), doc_del()]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0, 1] }, true, None))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(UpdateDocuments, true, None), doc_del()]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0, 1] }, true, None))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, false, None), doc_del()]), @"Some((DocumentOperation { allow_index_creation: false, primary_key: None, operation_ids: [0, 1] }, false, None))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(UpdateDocuments, false, None), doc_del()]), @"Some((DocumentOperation { allow_index_creation: false, primary_key: None, operation_ids: [0, 1] }, false, None))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, true, Some("catto")), doc_del()]), @r###"Some((DocumentOperation { allow_index_creation: true, primary_key: Some("catto"), operation_ids: [0, 1] }, true, None))"###); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(UpdateDocuments, true, Some("catto")), doc_del()]), @r###"Some((DocumentOperation { allow_index_creation: true, primary_key: Some("catto"), operation_ids: [0, 1] }, true, None))"###); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, false, Some("catto")), doc_del()]), @r###"Some((DocumentOperation { allow_index_creation: false, primary_key: Some("catto"), operation_ids: [0, 1] }, false, None))"###); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(UpdateDocuments, false, Some("catto")), doc_del()]), @r###"Some((DocumentOperation { allow_index_creation: false, primary_key: Some("catto"), operation_ids: [0, 1] }, false, None))"###); | ||||
|     debug_snapshot!(autobatch_from(false, None, [doc_imp(ReplaceDocuments, true, None), doc_del()]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0, 1] }, true, None))"); | ||||
|     debug_snapshot!(autobatch_from(false, None, [doc_imp(UpdateDocuments, true, None), doc_del()]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0, 1] }, true, None))"); | ||||
|     debug_snapshot!(autobatch_from(false, None, [doc_imp(ReplaceDocuments, false, None), doc_del()]), @"Some((DocumentOperation { allow_index_creation: false, primary_key: None, operation_ids: [0, 1] }, false, None))"); | ||||
|     debug_snapshot!(autobatch_from(false, None, [doc_imp(UpdateDocuments, false, None), doc_del()]), @"Some((DocumentOperation { allow_index_creation: false, primary_key: None, operation_ids: [0, 1] }, false, None))"); | ||||
|     debug_snapshot!(autobatch_from(false, None, [doc_imp(ReplaceDocuments, true, Some("catto")), doc_del()]), @r###"Some((DocumentOperation { allow_index_creation: true, primary_key: Some("catto"), operation_ids: [0, 1] }, true, None))"###); | ||||
|     debug_snapshot!(autobatch_from(false, None, [doc_imp(UpdateDocuments, true, Some("catto")), doc_del()]), @r###"Some((DocumentOperation { allow_index_creation: true, primary_key: Some("catto"), operation_ids: [0, 1] }, true, None))"###); | ||||
|     debug_snapshot!(autobatch_from(false, None, [doc_imp(ReplaceDocuments, false, Some("catto")), doc_del()]), @r###"Some((DocumentOperation { allow_index_creation: false, primary_key: Some("catto"), operation_ids: [0, 1] }, false, None))"###); | ||||
|     debug_snapshot!(autobatch_from(false, None, [doc_imp(UpdateDocuments, false, Some("catto")), doc_del()]), @r###"Some((DocumentOperation { allow_index_creation: false, primary_key: Some("catto"), operation_ids: [0, 1] }, false, None))"###); | ||||
|     // And the other way around | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_del(), doc_imp(ReplaceDocuments, true, None)]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0, 1] }, false))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_del(), doc_imp(UpdateDocuments, true, None)]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0, 1] }, false))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_del(), doc_imp(ReplaceDocuments, false, None)]), @"Some((DocumentOperation { allow_index_creation: false, primary_key: None, operation_ids: [0, 1] }, false))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_del(), doc_imp(UpdateDocuments, false, None)]), @"Some((DocumentOperation { allow_index_creation: false, primary_key: None, operation_ids: [0, 1] }, false))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_del(), doc_imp(ReplaceDocuments, true, Some("catto"))]), @r###"Some((DocumentOperation { allow_index_creation: true, primary_key: Some("catto"), operation_ids: [0, 1] }, false))"###); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_del(), doc_imp(UpdateDocuments, true, Some("catto"))]), @r###"Some((DocumentOperation { allow_index_creation: true, primary_key: Some("catto"), operation_ids: [0, 1] }, false))"###); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_del(), doc_imp(ReplaceDocuments, false, Some("catto"))]), @r###"Some((DocumentOperation { allow_index_creation: false, primary_key: Some("catto"), operation_ids: [0, 1] }, false))"###); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_del(), doc_imp(UpdateDocuments, false, Some("catto"))]), @r###"Some((DocumentOperation { allow_index_creation: false, primary_key: Some("catto"), operation_ids: [0, 1] }, false))"###); | ||||
|     debug_snapshot!(autobatch_from(false, None, [doc_del(), doc_imp(ReplaceDocuments, false, None)]), @"Some((DocumentOperation { allow_index_creation: false, primary_key: None, operation_ids: [0, 1] }, false))"); | ||||
|     debug_snapshot!(autobatch_from(false, None, [doc_del(), doc_imp(UpdateDocuments, false, None)]), @"Some((DocumentOperation { allow_index_creation: false, primary_key: None, operation_ids: [0, 1] }, false))"); | ||||
|     debug_snapshot!(autobatch_from(false, None, [doc_del(), doc_imp(ReplaceDocuments, false, Some("catto"))]), @r###"Some((DocumentOperation { allow_index_creation: false, primary_key: Some("catto"), operation_ids: [0, 1] }, false))"###); | ||||
|     debug_snapshot!(autobatch_from(false, None, [doc_del(), doc_imp(UpdateDocuments, false, Some("catto"))]), @r###"Some((DocumentOperation { allow_index_creation: false, primary_key: Some("catto"), operation_ids: [0, 1] }, false))"###); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_del(), doc_imp(ReplaceDocuments, true, None)]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0, 1] }, false, None))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_del(), doc_imp(UpdateDocuments, true, None)]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0, 1] }, false, None))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_del(), doc_imp(ReplaceDocuments, false, None)]), @"Some((DocumentOperation { allow_index_creation: false, primary_key: None, operation_ids: [0, 1] }, false, None))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_del(), doc_imp(UpdateDocuments, false, None)]), @"Some((DocumentOperation { allow_index_creation: false, primary_key: None, operation_ids: [0, 1] }, false, None))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_del(), doc_imp(ReplaceDocuments, true, Some("catto"))]), @r###"Some((DocumentOperation { allow_index_creation: true, primary_key: Some("catto"), operation_ids: [0, 1] }, false, None))"###); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_del(), doc_imp(UpdateDocuments, true, Some("catto"))]), @r###"Some((DocumentOperation { allow_index_creation: true, primary_key: Some("catto"), operation_ids: [0, 1] }, false, None))"###); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_del(), doc_imp(ReplaceDocuments, false, Some("catto"))]), @r###"Some((DocumentOperation { allow_index_creation: false, primary_key: Some("catto"), operation_ids: [0, 1] }, false, None))"###); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_del(), doc_imp(UpdateDocuments, false, Some("catto"))]), @r###"Some((DocumentOperation { allow_index_creation: false, primary_key: Some("catto"), operation_ids: [0, 1] }, false, None))"###); | ||||
|     debug_snapshot!(autobatch_from(false, None, [doc_del(), doc_imp(ReplaceDocuments, false, None)]), @"Some((DocumentOperation { allow_index_creation: false, primary_key: None, operation_ids: [0, 1] }, false, None))"); | ||||
|     debug_snapshot!(autobatch_from(false, None, [doc_del(), doc_imp(UpdateDocuments, false, None)]), @"Some((DocumentOperation { allow_index_creation: false, primary_key: None, operation_ids: [0, 1] }, false, None))"); | ||||
|     debug_snapshot!(autobatch_from(false, None, [doc_del(), doc_imp(ReplaceDocuments, false, Some("catto"))]), @r###"Some((DocumentOperation { allow_index_creation: false, primary_key: Some("catto"), operation_ids: [0, 1] }, false, None))"###); | ||||
|     debug_snapshot!(autobatch_from(false, None, [doc_del(), doc_imp(UpdateDocuments, false, Some("catto"))]), @r###"Some((DocumentOperation { allow_index_creation: false, primary_key: Some("catto"), operation_ids: [0, 1] }, false, None))"###); | ||||
|  | ||||
|     // But we can't autobatch document addition with document deletion by filter | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, true, None), doc_del_fil()]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(UpdateDocuments, true, None), doc_del_fil()]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, false, None), doc_del_fil()]), @"Some((DocumentOperation { allow_index_creation: false, primary_key: None, operation_ids: [0] }, false))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(UpdateDocuments, false, None), doc_del_fil()]), @"Some((DocumentOperation { allow_index_creation: false, primary_key: None, operation_ids: [0] }, false))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, true, Some("catto")), doc_del_fil()]), @r###"Some((DocumentOperation { allow_index_creation: true, primary_key: Some("catto"), operation_ids: [0] }, true))"###); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(UpdateDocuments, true, Some("catto")), doc_del_fil()]), @r###"Some((DocumentOperation { allow_index_creation: true, primary_key: Some("catto"), operation_ids: [0] }, true))"###); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, false, Some("catto")), doc_del_fil()]), @r###"Some((DocumentOperation { allow_index_creation: false, primary_key: Some("catto"), operation_ids: [0] }, false))"###); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(UpdateDocuments, false, Some("catto")), doc_del_fil()]), @r###"Some((DocumentOperation { allow_index_creation: false, primary_key: Some("catto"), operation_ids: [0] }, false))"###); | ||||
|     debug_snapshot!(autobatch_from(false, None, [doc_imp(ReplaceDocuments, true, None), doc_del_fil()]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true))"); | ||||
|     debug_snapshot!(autobatch_from(false, None, [doc_imp(UpdateDocuments, true, None), doc_del_fil()]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true))"); | ||||
|     debug_snapshot!(autobatch_from(false, None, [doc_imp(ReplaceDocuments, false, None), doc_del_fil()]), @"Some((DocumentOperation { allow_index_creation: false, primary_key: None, operation_ids: [0] }, false))"); | ||||
|     debug_snapshot!(autobatch_from(false, None, [doc_imp(UpdateDocuments, false, None), doc_del_fil()]), @"Some((DocumentOperation { allow_index_creation: false, primary_key: None, operation_ids: [0] }, false))"); | ||||
|     debug_snapshot!(autobatch_from(false, None, [doc_imp(ReplaceDocuments, true, Some("catto")), doc_del_fil()]), @r###"Some((DocumentOperation { allow_index_creation: true, primary_key: Some("catto"), operation_ids: [0] }, true))"###); | ||||
|     debug_snapshot!(autobatch_from(false, None, [doc_imp(UpdateDocuments, true, Some("catto")), doc_del_fil()]), @r###"Some((DocumentOperation { allow_index_creation: true, primary_key: Some("catto"), operation_ids: [0] }, true))"###); | ||||
|     debug_snapshot!(autobatch_from(false, None, [doc_imp(ReplaceDocuments, false, Some("catto")), doc_del_fil()]), @r###"Some((DocumentOperation { allow_index_creation: false, primary_key: Some("catto"), operation_ids: [0] }, false))"###); | ||||
|     debug_snapshot!(autobatch_from(false, None, [doc_imp(UpdateDocuments, false, Some("catto")), doc_del_fil()]), @r###"Some((DocumentOperation { allow_index_creation: false, primary_key: Some("catto"), operation_ids: [0] }, false))"###); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, true, None), doc_del_fil()]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true, Some(DocumentOperationWithDeletionByFilter { id: 1 })))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(UpdateDocuments, true, None), doc_del_fil()]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true, Some(DocumentOperationWithDeletionByFilter { id: 1 })))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, false, None), doc_del_fil()]), @"Some((DocumentOperation { allow_index_creation: false, primary_key: None, operation_ids: [0] }, false, Some(DocumentOperationWithDeletionByFilter { id: 1 })))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(UpdateDocuments, false, None), doc_del_fil()]), @"Some((DocumentOperation { allow_index_creation: false, primary_key: None, operation_ids: [0] }, false, Some(DocumentOperationWithDeletionByFilter { id: 1 })))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, true, Some("catto")), doc_del_fil()]), @r###"Some((DocumentOperation { allow_index_creation: true, primary_key: Some("catto"), operation_ids: [0] }, true, Some(DocumentOperationWithDeletionByFilter { id: 1 })))"###); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(UpdateDocuments, true, Some("catto")), doc_del_fil()]), @r###"Some((DocumentOperation { allow_index_creation: true, primary_key: Some("catto"), operation_ids: [0] }, true, Some(DocumentOperationWithDeletionByFilter { id: 1 })))"###); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, false, Some("catto")), doc_del_fil()]), @r###"Some((DocumentOperation { allow_index_creation: false, primary_key: Some("catto"), operation_ids: [0] }, false, Some(DocumentOperationWithDeletionByFilter { id: 1 })))"###); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(UpdateDocuments, false, Some("catto")), doc_del_fil()]), @r###"Some((DocumentOperation { allow_index_creation: false, primary_key: Some("catto"), operation_ids: [0] }, false, Some(DocumentOperationWithDeletionByFilter { id: 1 })))"###); | ||||
|     debug_snapshot!(autobatch_from(false, None, [doc_imp(ReplaceDocuments, true, None), doc_del_fil()]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true, Some(DocumentOperationWithDeletionByFilter { id: 1 })))"); | ||||
|     debug_snapshot!(autobatch_from(false, None, [doc_imp(UpdateDocuments, true, None), doc_del_fil()]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true, Some(DocumentOperationWithDeletionByFilter { id: 1 })))"); | ||||
|     debug_snapshot!(autobatch_from(false, None, [doc_imp(ReplaceDocuments, false, None), doc_del_fil()]), @"Some((DocumentOperation { allow_index_creation: false, primary_key: None, operation_ids: [0] }, false, Some(DocumentOperationWithDeletionByFilter { id: 1 })))"); | ||||
|     debug_snapshot!(autobatch_from(false, None, [doc_imp(UpdateDocuments, false, None), doc_del_fil()]), @"Some((DocumentOperation { allow_index_creation: false, primary_key: None, operation_ids: [0] }, false, Some(DocumentOperationWithDeletionByFilter { id: 1 })))"); | ||||
|     debug_snapshot!(autobatch_from(false, None, [doc_imp(ReplaceDocuments, true, Some("catto")), doc_del_fil()]), @r###"Some((DocumentOperation { allow_index_creation: true, primary_key: Some("catto"), operation_ids: [0] }, true, Some(DocumentOperationWithDeletionByFilter { id: 1 })))"###); | ||||
|     debug_snapshot!(autobatch_from(false, None, [doc_imp(UpdateDocuments, true, Some("catto")), doc_del_fil()]), @r###"Some((DocumentOperation { allow_index_creation: true, primary_key: Some("catto"), operation_ids: [0] }, true, Some(DocumentOperationWithDeletionByFilter { id: 1 })))"###); | ||||
|     debug_snapshot!(autobatch_from(false, None, [doc_imp(ReplaceDocuments, false, Some("catto")), doc_del_fil()]), @r###"Some((DocumentOperation { allow_index_creation: false, primary_key: Some("catto"), operation_ids: [0] }, false, Some(DocumentOperationWithDeletionByFilter { id: 1 })))"###); | ||||
|     debug_snapshot!(autobatch_from(false, None, [doc_imp(UpdateDocuments, false, Some("catto")), doc_del_fil()]), @r###"Some((DocumentOperation { allow_index_creation: false, primary_key: Some("catto"), operation_ids: [0] }, false, Some(DocumentOperationWithDeletionByFilter { id: 1 })))"###); | ||||
|     // And the other way around | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_del_fil(), doc_imp(ReplaceDocuments, true, None)]), @"Some((DocumentDeletion { deletion_ids: [0], includes_by_filter: true }, false))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_del_fil(), doc_imp(UpdateDocuments, true, None)]), @"Some((DocumentDeletion { deletion_ids: [0], includes_by_filter: true }, false))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_del_fil(), doc_imp(ReplaceDocuments, false, None)]), @"Some((DocumentDeletion { deletion_ids: [0], includes_by_filter: true }, false))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_del_fil(), doc_imp(UpdateDocuments, false, None)]), @"Some((DocumentDeletion { deletion_ids: [0], includes_by_filter: true }, false))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_del_fil(), doc_imp(ReplaceDocuments, true, Some("catto"))]), @"Some((DocumentDeletion { deletion_ids: [0], includes_by_filter: true }, false))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_del_fil(), doc_imp(UpdateDocuments, true, Some("catto"))]), @"Some((DocumentDeletion { deletion_ids: [0], includes_by_filter: true }, false))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_del_fil(), doc_imp(ReplaceDocuments, false, Some("catto"))]), @"Some((DocumentDeletion { deletion_ids: [0], includes_by_filter: true }, false))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_del_fil(), doc_imp(UpdateDocuments, false, Some("catto"))]), @"Some((DocumentDeletion { deletion_ids: [0], includes_by_filter: true }, false))"); | ||||
|     debug_snapshot!(autobatch_from(false, None, [doc_del_fil(), doc_imp(ReplaceDocuments, false, None)]), @"Some((DocumentDeletion { deletion_ids: [0], includes_by_filter: true }, false))"); | ||||
|     debug_snapshot!(autobatch_from(false, None, [doc_del_fil(), doc_imp(UpdateDocuments, false, None)]), @"Some((DocumentDeletion { deletion_ids: [0], includes_by_filter: true }, false))"); | ||||
|     debug_snapshot!(autobatch_from(false, None, [doc_del_fil(), doc_imp(ReplaceDocuments, false, Some("catto"))]), @"Some((DocumentDeletion { deletion_ids: [0], includes_by_filter: true }, false))"); | ||||
|     debug_snapshot!(autobatch_from(false, None, [doc_del_fil(), doc_imp(UpdateDocuments, false, Some("catto"))]), @"Some((DocumentDeletion { deletion_ids: [0], includes_by_filter: true }, false))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_del_fil(), doc_imp(ReplaceDocuments, true, None)]), @"Some((DocumentDeletion { deletion_ids: [0], includes_by_filter: true }, false, Some(DeletionByFilterWithDocumentOperation { id: 1 })))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_del_fil(), doc_imp(UpdateDocuments, true, None)]), @"Some((DocumentDeletion { deletion_ids: [0], includes_by_filter: true }, false, Some(DeletionByFilterWithDocumentOperation { id: 1 })))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_del_fil(), doc_imp(ReplaceDocuments, false, None)]), @"Some((DocumentDeletion { deletion_ids: [0], includes_by_filter: true }, false, Some(DeletionByFilterWithDocumentOperation { id: 1 })))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_del_fil(), doc_imp(UpdateDocuments, false, None)]), @"Some((DocumentDeletion { deletion_ids: [0], includes_by_filter: true }, false, Some(DeletionByFilterWithDocumentOperation { id: 1 })))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_del_fil(), doc_imp(ReplaceDocuments, true, Some("catto"))]), @"Some((DocumentDeletion { deletion_ids: [0], includes_by_filter: true }, false, Some(DeletionByFilterWithDocumentOperation { id: 1 })))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_del_fil(), doc_imp(UpdateDocuments, true, Some("catto"))]), @"Some((DocumentDeletion { deletion_ids: [0], includes_by_filter: true }, false, Some(DeletionByFilterWithDocumentOperation { id: 1 })))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_del_fil(), doc_imp(ReplaceDocuments, false, Some("catto"))]), @"Some((DocumentDeletion { deletion_ids: [0], includes_by_filter: true }, false, Some(DeletionByFilterWithDocumentOperation { id: 1 })))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_del_fil(), doc_imp(UpdateDocuments, false, Some("catto"))]), @"Some((DocumentDeletion { deletion_ids: [0], includes_by_filter: true }, false, Some(DeletionByFilterWithDocumentOperation { id: 1 })))"); | ||||
|     debug_snapshot!(autobatch_from(false, None, [doc_del_fil(), doc_imp(ReplaceDocuments, false, None)]), @"Some((DocumentDeletion { deletion_ids: [0], includes_by_filter: true }, false, Some(DeletionByFilterWithDocumentOperation { id: 1 })))"); | ||||
|     debug_snapshot!(autobatch_from(false, None, [doc_del_fil(), doc_imp(UpdateDocuments, false, None)]), @"Some((DocumentDeletion { deletion_ids: [0], includes_by_filter: true }, false, Some(DeletionByFilterWithDocumentOperation { id: 1 })))"); | ||||
|     debug_snapshot!(autobatch_from(false, None, [doc_del_fil(), doc_imp(ReplaceDocuments, false, Some("catto"))]), @"Some((DocumentDeletion { deletion_ids: [0], includes_by_filter: true }, false, Some(DeletionByFilterWithDocumentOperation { id: 1 })))"); | ||||
|     debug_snapshot!(autobatch_from(false, None, [doc_del_fil(), doc_imp(UpdateDocuments, false, Some("catto"))]), @"Some((DocumentDeletion { deletion_ids: [0], includes_by_filter: true }, false, Some(DeletionByFilterWithDocumentOperation { id: 1 })))"); | ||||
| } | ||||
|  | ||||
| #[test] | ||||
| fn simple_different_document_operations_autobatch_together() { | ||||
|     // addition and updates with deletion by filter can't batch together | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, true, None), doc_imp(UpdateDocuments, true, None)]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0, 1] }, true))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(UpdateDocuments, true, None), doc_imp(ReplaceDocuments, true, None)]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0, 1] }, true))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(UpdateDocuments, true, None), doc_del_fil()]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, true, None), doc_del_fil()]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_del_fil(), doc_imp(UpdateDocuments, true, None)]), @"Some((DocumentDeletion { deletion_ids: [0], includes_by_filter: true }, false))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_del_fil(), doc_imp(ReplaceDocuments, true, None)]), @"Some((DocumentDeletion { deletion_ids: [0], includes_by_filter: true }, false))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, true, None), doc_imp(UpdateDocuments, true, None)]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0, 1] }, true, None))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(UpdateDocuments, true, None), doc_imp(ReplaceDocuments, true, None)]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0, 1] }, true, None))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(UpdateDocuments, true, None), doc_del_fil()]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true, Some(DocumentOperationWithDeletionByFilter { id: 1 })))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, true, None), doc_del_fil()]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true, Some(DocumentOperationWithDeletionByFilter { id: 1 })))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_del_fil(), doc_imp(UpdateDocuments, true, None)]), @"Some((DocumentDeletion { deletion_ids: [0], includes_by_filter: true }, false, Some(DeletionByFilterWithDocumentOperation { id: 1 })))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_del_fil(), doc_imp(ReplaceDocuments, true, None)]), @"Some((DocumentDeletion { deletion_ids: [0], includes_by_filter: true }, false, Some(DeletionByFilterWithDocumentOperation { id: 1 })))"); | ||||
|  | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, true, None), idx_create()]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(UpdateDocuments, true, None), idx_create()]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_del(), idx_create()]), @"Some((DocumentDeletion { deletion_ids: [0], includes_by_filter: false }, false))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_del_fil(), idx_create()]), @"Some((DocumentDeletion { deletion_ids: [0], includes_by_filter: true }, false))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, true, None), idx_create()]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true, Some(TaskCannotBeBatched { kind: IndexCreation, id: 1 })))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(UpdateDocuments, true, None), idx_create()]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true, Some(TaskCannotBeBatched { kind: IndexCreation, id: 1 })))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_del(), idx_create()]), @"Some((DocumentDeletion { deletion_ids: [0], includes_by_filter: false }, false, Some(TaskCannotBeBatched { kind: IndexCreation, id: 1 })))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_del_fil(), idx_create()]), @"Some((DocumentDeletion { deletion_ids: [0], includes_by_filter: true }, false, Some(TaskCannotBeBatched { kind: IndexCreation, id: 1 })))"); | ||||
|  | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, true, None), idx_update()]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(UpdateDocuments, true, None), idx_update()]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_del(), idx_update()]), @"Some((DocumentDeletion { deletion_ids: [0], includes_by_filter: false }, false))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_del_fil(), idx_update()]), @"Some((DocumentDeletion { deletion_ids: [0], includes_by_filter: true }, false))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, true, None), idx_update()]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true, Some(TaskCannotBeBatched { kind: IndexUpdate, id: 1 })))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(UpdateDocuments, true, None), idx_update()]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true, Some(TaskCannotBeBatched { kind: IndexUpdate, id: 1 })))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_del(), idx_update()]), @"Some((DocumentDeletion { deletion_ids: [0], includes_by_filter: false }, false, Some(TaskCannotBeBatched { kind: IndexUpdate, id: 1 })))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_del_fil(), idx_update()]), @"Some((DocumentDeletion { deletion_ids: [0], includes_by_filter: true }, false, Some(TaskCannotBeBatched { kind: IndexUpdate, id: 1 })))"); | ||||
|  | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, true, None), idx_swap()]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(UpdateDocuments, true, None), idx_swap()]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_del(), idx_swap()]), @"Some((DocumentDeletion { deletion_ids: [0], includes_by_filter: false }, false))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_del_fil(), idx_swap()]), @"Some((DocumentDeletion { deletion_ids: [0], includes_by_filter: true }, false))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, true, None), idx_swap()]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true, Some(TaskCannotBeBatched { kind: IndexSwap, id: 1 })))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(UpdateDocuments, true, None), idx_swap()]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true, Some(TaskCannotBeBatched { kind: IndexSwap, id: 1 })))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_del(), idx_swap()]), @"Some((DocumentDeletion { deletion_ids: [0], includes_by_filter: false }, false, Some(TaskCannotBeBatched { kind: IndexSwap, id: 1 })))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_del_fil(), idx_swap()]), @"Some((DocumentDeletion { deletion_ids: [0], includes_by_filter: true }, false, Some(TaskCannotBeBatched { kind: IndexSwap, id: 1 })))"); | ||||
| } | ||||
|  | ||||
| #[test] | ||||
| fn document_addition_doesnt_batch_with_settings() { | ||||
|     // simple case | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, true, None), settings(true)]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(UpdateDocuments, true, None), settings(true)]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, true, None), settings(true)]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true, Some(DocumentOperationWithSettings { id: 1 })))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(UpdateDocuments, true, None), settings(true)]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true, Some(DocumentOperationWithSettings { id: 1 })))"); | ||||
|  | ||||
|     // multiple settings and doc addition | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, true, None), doc_imp(ReplaceDocuments, true, None), settings(true), settings(true)]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0, 1] }, true))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, true, None), doc_imp(ReplaceDocuments, true, None), settings(true), settings(true)]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0, 1] }, true))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, true, None), doc_imp(ReplaceDocuments, true, None), settings(true), settings(true)]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0, 1] }, true, Some(DocumentOperationWithSettings { id: 2 })))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, true, None), doc_imp(ReplaceDocuments, true, None), settings(true), settings(true)]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0, 1] }, true, Some(DocumentOperationWithSettings { id: 2 })))"); | ||||
|  | ||||
|     // addition and setting unordered | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, true, None), settings(true), doc_imp(ReplaceDocuments, true, None), settings(true)]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(UpdateDocuments, true, None), settings(true), doc_imp(UpdateDocuments, true, None), settings(true)]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, true, None), settings(true), doc_imp(ReplaceDocuments, true, None), settings(true)]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true, Some(DocumentOperationWithSettings { id: 1 })))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(UpdateDocuments, true, None), settings(true), doc_imp(UpdateDocuments, true, None), settings(true)]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true, Some(DocumentOperationWithSettings { id: 1 })))"); | ||||
|  | ||||
|     // Doesn't batch with other forbidden operations | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, true, None), settings(true), doc_imp(UpdateDocuments, true, None)]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(UpdateDocuments, true, None), settings(true), doc_imp(ReplaceDocuments, true, None)]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, true, None), settings(true), doc_del()]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(UpdateDocuments, true, None), settings(true), doc_del()]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, true, None), settings(true), idx_create()]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(UpdateDocuments, true, None), settings(true), idx_create()]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, true, None), settings(true), idx_update()]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(UpdateDocuments, true, None), settings(true), idx_update()]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, true, None), settings(true), idx_swap()]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(UpdateDocuments, true, None), settings(true), idx_swap()]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, true, None), settings(true), doc_imp(UpdateDocuments, true, None)]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true, Some(DocumentOperationWithSettings { id: 1 })))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(UpdateDocuments, true, None), settings(true), doc_imp(ReplaceDocuments, true, None)]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true, Some(DocumentOperationWithSettings { id: 1 })))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, true, None), settings(true), doc_del()]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true, Some(DocumentOperationWithSettings { id: 1 })))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(UpdateDocuments, true, None), settings(true), doc_del()]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true, Some(DocumentOperationWithSettings { id: 1 })))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, true, None), settings(true), idx_create()]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true, Some(DocumentOperationWithSettings { id: 1 })))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(UpdateDocuments, true, None), settings(true), idx_create()]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true, Some(DocumentOperationWithSettings { id: 1 })))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, true, None), settings(true), idx_update()]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true, Some(DocumentOperationWithSettings { id: 1 })))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(UpdateDocuments, true, None), settings(true), idx_update()]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true, Some(DocumentOperationWithSettings { id: 1 })))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, true, None), settings(true), idx_swap()]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true, Some(DocumentOperationWithSettings { id: 1 })))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(UpdateDocuments, true, None), settings(true), idx_swap()]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true, Some(DocumentOperationWithSettings { id: 1 })))"); | ||||
| } | ||||
|  | ||||
| #[test] | ||||
| fn clear_and_additions() { | ||||
|     // these two doesn't need to batch | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_clr(), doc_imp(ReplaceDocuments, true, None)]), @"Some((DocumentClear { ids: [0] }, false))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_clr(), doc_imp(UpdateDocuments, true, None)]), @"Some((DocumentClear { ids: [0] }, false))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_clr(), doc_imp(ReplaceDocuments, true, None)]), @"Some((DocumentClear { ids: [0] }, false, Some(DocumentOperationWithSettings { id: 1 })))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_clr(), doc_imp(UpdateDocuments, true, None)]), @"Some((DocumentClear { ids: [0] }, false, Some(DocumentOperationWithSettings { id: 1 })))"); | ||||
|  | ||||
|     // Basic use case | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, true, None), doc_imp(ReplaceDocuments, true, None), doc_clr()]), @"Some((DocumentClear { ids: [0, 1, 2] }, true))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(UpdateDocuments, true, None), doc_imp(UpdateDocuments, true, None), doc_clr()]), @"Some((DocumentClear { ids: [0, 1, 2] }, true))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, true, None), doc_imp(ReplaceDocuments, true, None), doc_clr()]), @"Some((DocumentClear { ids: [0, 1, 2] }, true, None))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(UpdateDocuments, true, None), doc_imp(UpdateDocuments, true, None), doc_clr()]), @"Some((DocumentClear { ids: [0, 1, 2] }, true, None))"); | ||||
|  | ||||
|     // This batch kind doesn't mix with other document addition | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, true, None), doc_imp(ReplaceDocuments, true, None), doc_clr(), doc_imp(ReplaceDocuments, true, None)]), @"Some((DocumentClear { ids: [0, 1, 2] }, true))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(UpdateDocuments, true, None), doc_imp(UpdateDocuments, true, None), doc_clr(), doc_imp(UpdateDocuments, true, None)]), @"Some((DocumentClear { ids: [0, 1, 2] }, true))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, true, None), doc_imp(ReplaceDocuments, true, None), doc_clr(), doc_imp(ReplaceDocuments, true, None)]), @"Some((DocumentClear { ids: [0, 1, 2] }, true, Some(DocumentOperationWithSettings { id: 3 })))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(UpdateDocuments, true, None), doc_imp(UpdateDocuments, true, None), doc_clr(), doc_imp(UpdateDocuments, true, None)]), @"Some((DocumentClear { ids: [0, 1, 2] }, true, Some(DocumentOperationWithSettings { id: 3 })))"); | ||||
|  | ||||
|     // But you can batch multiple clear together | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, true, None), doc_imp(ReplaceDocuments, true, None), doc_clr(), doc_clr(), doc_clr()]), @"Some((DocumentClear { ids: [0, 1, 2, 3, 4] }, true))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(UpdateDocuments, true, None), doc_imp(UpdateDocuments, true, None), doc_clr(), doc_clr(), doc_clr()]), @"Some((DocumentClear { ids: [0, 1, 2, 3, 4] }, true))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, true, None), doc_imp(ReplaceDocuments, true, None), doc_clr(), doc_clr(), doc_clr()]), @"Some((DocumentClear { ids: [0, 1, 2, 3, 4] }, true, None))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(UpdateDocuments, true, None), doc_imp(UpdateDocuments, true, None), doc_clr(), doc_clr(), doc_clr()]), @"Some((DocumentClear { ids: [0, 1, 2, 3, 4] }, true, None))"); | ||||
| } | ||||
|  | ||||
| #[test] | ||||
| fn clear_and_additions_and_settings() { | ||||
|     // A clear don't need to autobatch the settings that happens AFTER there is no documents | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_clr(), settings(true)]), @"Some((DocumentClear { ids: [0] }, false))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_clr(), settings(true)]), @"Some((DocumentClear { ids: [0] }, false, Some(DocumentOperationWithSettings { id: 1 })))"); | ||||
|  | ||||
|     debug_snapshot!(autobatch_from(true, None, [settings(true), doc_clr(), settings(true)]), @"Some((ClearAndSettings { other: [1], allow_index_creation: true, settings_ids: [0, 2] }, true))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, true, None), settings(true), doc_clr()]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(UpdateDocuments, true, None), settings(true), doc_clr()]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [settings(true), doc_clr(), settings(true)]), @"Some((ClearAndSettings { other: [1], allow_index_creation: true, settings_ids: [0, 2] }, true, None))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, true, None), settings(true), doc_clr()]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true, Some(DocumentOperationWithSettings { id: 1 })))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(UpdateDocuments, true, None), settings(true), doc_clr()]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true, Some(DocumentOperationWithSettings { id: 1 })))"); | ||||
| } | ||||
|  | ||||
| #[test] | ||||
| fn anything_and_index_deletion() { | ||||
|     // The `IndexDeletion` doesn't batch with anything that happens AFTER. | ||||
|     debug_snapshot!(autobatch_from(true, None, [idx_del(), doc_imp(ReplaceDocuments, true, None)]), @"Some((IndexDeletion { ids: [0] }, false))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [idx_del(), doc_imp(UpdateDocuments, true, None)]), @"Some((IndexDeletion { ids: [0] }, false))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [idx_del(), doc_imp(ReplaceDocuments, false, None)]), @"Some((IndexDeletion { ids: [0] }, false))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [idx_del(), doc_imp(UpdateDocuments, false, None)]), @"Some((IndexDeletion { ids: [0] }, false))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [idx_del(), doc_del()]), @"Some((IndexDeletion { ids: [0] }, false))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [idx_del(), doc_del_fil()]), @"Some((IndexDeletion { ids: [0] }, false))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [idx_del(), doc_clr()]), @"Some((IndexDeletion { ids: [0] }, false))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [idx_del(), settings(true)]), @"Some((IndexDeletion { ids: [0] }, false))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [idx_del(), settings(false)]), @"Some((IndexDeletion { ids: [0] }, false))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [idx_del(), doc_imp(ReplaceDocuments, true, None)]), @"Some((IndexDeletion { ids: [0] }, false, Some(IndexDeletion { id: 0 })))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [idx_del(), doc_imp(UpdateDocuments, true, None)]), @"Some((IndexDeletion { ids: [0] }, false, Some(IndexDeletion { id: 0 })))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [idx_del(), doc_imp(ReplaceDocuments, false, None)]), @"Some((IndexDeletion { ids: [0] }, false, Some(IndexDeletion { id: 0 })))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [idx_del(), doc_imp(UpdateDocuments, false, None)]), @"Some((IndexDeletion { ids: [0] }, false, Some(IndexDeletion { id: 0 })))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [idx_del(), doc_del()]), @"Some((IndexDeletion { ids: [0] }, false, Some(IndexDeletion { id: 0 })))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [idx_del(), doc_del_fil()]), @"Some((IndexDeletion { ids: [0] }, false, Some(IndexDeletion { id: 0 })))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [idx_del(), doc_clr()]), @"Some((IndexDeletion { ids: [0] }, false, Some(IndexDeletion { id: 0 })))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [idx_del(), settings(true)]), @"Some((IndexDeletion { ids: [0] }, false, Some(IndexDeletion { id: 0 })))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [idx_del(), settings(false)]), @"Some((IndexDeletion { ids: [0] }, false, Some(IndexDeletion { id: 0 })))"); | ||||
|  | ||||
|     debug_snapshot!(autobatch_from(false,None,  [idx_del(), doc_imp(ReplaceDocuments, true, None)]), @"Some((IndexDeletion { ids: [0] }, false))"); | ||||
|     debug_snapshot!(autobatch_from(false,None,  [idx_del(), doc_imp(UpdateDocuments, true, None)]), @"Some((IndexDeletion { ids: [0] }, false))"); | ||||
|     debug_snapshot!(autobatch_from(false,None,  [idx_del(), doc_imp(ReplaceDocuments, false, None)]), @"Some((IndexDeletion { ids: [0] }, false))"); | ||||
|     debug_snapshot!(autobatch_from(false,None,  [idx_del(), doc_imp(UpdateDocuments, false, None)]), @"Some((IndexDeletion { ids: [0] }, false))"); | ||||
|     debug_snapshot!(autobatch_from(false,None,  [idx_del(), doc_del()]), @"Some((IndexDeletion { ids: [0] }, false))"); | ||||
|     debug_snapshot!(autobatch_from(false,None,  [idx_del(), doc_del_fil()]), @"Some((IndexDeletion { ids: [0] }, false))"); | ||||
|     debug_snapshot!(autobatch_from(false,None,  [idx_del(), doc_clr()]), @"Some((IndexDeletion { ids: [0] }, false))"); | ||||
|     debug_snapshot!(autobatch_from(false,None,  [idx_del(), settings(true)]), @"Some((IndexDeletion { ids: [0] }, false))"); | ||||
|     debug_snapshot!(autobatch_from(false,None,  [idx_del(), settings(false)]), @"Some((IndexDeletion { ids: [0] }, false))"); | ||||
|     debug_snapshot!(autobatch_from(false,None,  [idx_del(), doc_imp(ReplaceDocuments, true, None)]), @"Some((IndexDeletion { ids: [0] }, false, Some(IndexDeletion { id: 0 })))"); | ||||
|     debug_snapshot!(autobatch_from(false,None,  [idx_del(), doc_imp(UpdateDocuments, true, None)]), @"Some((IndexDeletion { ids: [0] }, false, Some(IndexDeletion { id: 0 })))"); | ||||
|     debug_snapshot!(autobatch_from(false,None,  [idx_del(), doc_imp(ReplaceDocuments, false, None)]), @"Some((IndexDeletion { ids: [0] }, false, Some(IndexDeletion { id: 0 })))"); | ||||
|     debug_snapshot!(autobatch_from(false,None,  [idx_del(), doc_imp(UpdateDocuments, false, None)]), @"Some((IndexDeletion { ids: [0] }, false, Some(IndexDeletion { id: 0 })))"); | ||||
|     debug_snapshot!(autobatch_from(false,None,  [idx_del(), doc_del()]), @"Some((IndexDeletion { ids: [0] }, false, Some(IndexDeletion { id: 0 })))"); | ||||
|     debug_snapshot!(autobatch_from(false,None,  [idx_del(), doc_del_fil()]), @"Some((IndexDeletion { ids: [0] }, false, Some(IndexDeletion { id: 0 })))"); | ||||
|     debug_snapshot!(autobatch_from(false,None,  [idx_del(), doc_clr()]), @"Some((IndexDeletion { ids: [0] }, false, Some(IndexDeletion { id: 0 })))"); | ||||
|     debug_snapshot!(autobatch_from(false,None,  [idx_del(), settings(true)]), @"Some((IndexDeletion { ids: [0] }, false, Some(IndexDeletion { id: 0 })))"); | ||||
|     debug_snapshot!(autobatch_from(false,None,  [idx_del(), settings(false)]), @"Some((IndexDeletion { ids: [0] }, false, Some(IndexDeletion { id: 0 })))"); | ||||
|  | ||||
|     // The index deletion can accept almost any type of `BatchKind` and transform it to an `IndexDeletion`. | ||||
|     // First, the basic cases | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, true, None), idx_del()]), @"Some((IndexDeletion { ids: [0, 1] }, true))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(UpdateDocuments, true, None), idx_del()]), @"Some((IndexDeletion { ids: [0, 1] }, true))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, false, None), idx_del()]), @"Some((IndexDeletion { ids: [0, 1] }, false))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(UpdateDocuments, false, None), idx_del()]), @"Some((IndexDeletion { ids: [0, 1] }, false))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_del(), idx_del()]), @"Some((IndexDeletion { ids: [0, 1] }, false))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_del_fil(), idx_del()]), @"Some((IndexDeletion { ids: [0, 1] }, false))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_clr(), idx_del()]), @"Some((IndexDeletion { ids: [0, 1] }, false))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [settings(true), idx_del()]), @"Some((IndexDeletion { ids: [0, 1] }, true))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [settings(false), idx_del()]), @"Some((IndexDeletion { ids: [0, 1] }, false))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, true, None), idx_del()]), @"Some((IndexDeletion { ids: [0, 1] }, true, Some(IndexDeletion { id: 1 })))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(UpdateDocuments, true, None), idx_del()]), @"Some((IndexDeletion { ids: [0, 1] }, true, Some(IndexDeletion { id: 1 })))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, false, None), idx_del()]), @"Some((IndexDeletion { ids: [0, 1] }, false, Some(IndexDeletion { id: 1 })))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(UpdateDocuments, false, None), idx_del()]), @"Some((IndexDeletion { ids: [0, 1] }, false, Some(IndexDeletion { id: 1 })))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_del(), idx_del()]), @"Some((IndexDeletion { ids: [0, 1] }, false, Some(IndexDeletion { id: 1 })))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_del_fil(), idx_del()]), @"Some((IndexDeletion { ids: [0, 1] }, false, Some(IndexDeletion { id: 1 })))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_clr(), idx_del()]), @"Some((IndexDeletion { ids: [0, 1] }, false, Some(IndexDeletion { id: 1 })))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [settings(true), idx_del()]), @"Some((IndexDeletion { ids: [0, 1] }, true, Some(IndexDeletion { id: 1 })))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [settings(false), idx_del()]), @"Some((IndexDeletion { ids: [0, 1] }, false, Some(IndexDeletion { id: 1 })))"); | ||||
|  | ||||
|     debug_snapshot!(autobatch_from(false,None,  [doc_imp(ReplaceDocuments, true, None), idx_del()]), @"Some((IndexDeletion { ids: [0, 1] }, true))"); | ||||
|     debug_snapshot!(autobatch_from(false,None,  [doc_imp(UpdateDocuments, true, None), idx_del()]), @"Some((IndexDeletion { ids: [0, 1] }, true))"); | ||||
|     debug_snapshot!(autobatch_from(false,None,  [doc_imp(ReplaceDocuments, false, None), idx_del()]), @"Some((IndexDeletion { ids: [0, 1] }, false))"); | ||||
|     debug_snapshot!(autobatch_from(false,None,  [doc_imp(UpdateDocuments, false, None), idx_del()]), @"Some((IndexDeletion { ids: [0, 1] }, false))"); | ||||
|     debug_snapshot!(autobatch_from(false,None,  [doc_del(), idx_del()]), @"Some((IndexDeletion { ids: [0, 1] }, false))"); | ||||
|     debug_snapshot!(autobatch_from(false,None,  [doc_del_fil(), idx_del()]), @"Some((IndexDeletion { ids: [0, 1] }, false))"); | ||||
|     debug_snapshot!(autobatch_from(false,None,  [doc_clr(), idx_del()]), @"Some((IndexDeletion { ids: [0, 1] }, false))"); | ||||
|     debug_snapshot!(autobatch_from(false,None,  [settings(true), idx_del()]), @"Some((IndexDeletion { ids: [0, 1] }, true))"); | ||||
|     debug_snapshot!(autobatch_from(false,None,  [settings(false), idx_del()]), @"Some((IndexDeletion { ids: [0, 1] }, false))"); | ||||
|     debug_snapshot!(autobatch_from(false,None,  [doc_imp(ReplaceDocuments, true, None), idx_del()]), @"Some((IndexDeletion { ids: [0, 1] }, true, Some(IndexDeletion { id: 1 })))"); | ||||
|     debug_snapshot!(autobatch_from(false,None,  [doc_imp(UpdateDocuments, true, None), idx_del()]), @"Some((IndexDeletion { ids: [0, 1] }, true, Some(IndexDeletion { id: 1 })))"); | ||||
|     debug_snapshot!(autobatch_from(false,None,  [doc_imp(ReplaceDocuments, false, None), idx_del()]), @"Some((IndexDeletion { ids: [0, 1] }, false, Some(IndexDeletion { id: 1 })))"); | ||||
|     debug_snapshot!(autobatch_from(false,None,  [doc_imp(UpdateDocuments, false, None), idx_del()]), @"Some((IndexDeletion { ids: [0, 1] }, false, Some(IndexDeletion { id: 1 })))"); | ||||
|     debug_snapshot!(autobatch_from(false,None,  [doc_del(), idx_del()]), @"Some((IndexDeletion { ids: [0, 1] }, false, Some(IndexDeletion { id: 1 })))"); | ||||
|     debug_snapshot!(autobatch_from(false,None,  [doc_del_fil(), idx_del()]), @"Some((IndexDeletion { ids: [0, 1] }, false, Some(IndexDeletion { id: 1 })))"); | ||||
|     debug_snapshot!(autobatch_from(false,None,  [doc_clr(), idx_del()]), @"Some((IndexDeletion { ids: [0, 1] }, false, Some(IndexDeletion { id: 1 })))"); | ||||
|     debug_snapshot!(autobatch_from(false,None,  [settings(true), idx_del()]), @"Some((IndexDeletion { ids: [0, 1] }, true, Some(IndexDeletion { id: 1 })))"); | ||||
|     debug_snapshot!(autobatch_from(false,None,  [settings(false), idx_del()]), @"Some((IndexDeletion { ids: [0, 1] }, false, Some(IndexDeletion { id: 1 })))"); | ||||
| } | ||||
|  | ||||
| #[test] | ||||
| fn allowed_and_disallowed_index_creation() { | ||||
|     // `DocumentImport` can't be mixed with those disallowed to do so except if the index already exists. | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, false, None), doc_imp(ReplaceDocuments, true, None)]), @"Some((DocumentOperation { allow_index_creation: false, primary_key: None, operation_ids: [0, 1] }, false))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, true, None), doc_imp(ReplaceDocuments, true, None)]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0, 1] }, true))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, false, None), doc_imp(ReplaceDocuments, false, None)]), @"Some((DocumentOperation { allow_index_creation: false, primary_key: None, operation_ids: [0, 1] }, false))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, true, None), settings(true)]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, false, None), settings(true)]), @"Some((DocumentOperation { allow_index_creation: false, primary_key: None, operation_ids: [0] }, false))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, false, None), doc_imp(ReplaceDocuments, true, None)]), @"Some((DocumentOperation { allow_index_creation: false, primary_key: None, operation_ids: [0, 1] }, false, None))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, true, None), doc_imp(ReplaceDocuments, true, None)]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0, 1] }, true, None))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, false, None), doc_imp(ReplaceDocuments, false, None)]), @"Some((DocumentOperation { allow_index_creation: false, primary_key: None, operation_ids: [0, 1] }, false, None))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, true, None), settings(true)]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true, Some(DocumentOperationWithSettings { id: 1 })))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, false, None), settings(true)]), @"Some((DocumentOperation { allow_index_creation: false, primary_key: None, operation_ids: [0] }, false, Some(DocumentOperationWithSettings { id: 1 })))"); | ||||
|  | ||||
|     debug_snapshot!(autobatch_from(false,None,  [doc_imp(ReplaceDocuments, false, None), doc_imp(ReplaceDocuments, true, None)]), @"Some((DocumentOperation { allow_index_creation: false, primary_key: None, operation_ids: [0] }, false))"); | ||||
|     debug_snapshot!(autobatch_from(false,None,  [doc_imp(ReplaceDocuments, true, None), doc_imp(ReplaceDocuments, true, None)]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0, 1] }, true))"); | ||||
|     debug_snapshot!(autobatch_from(false,None,  [doc_imp(ReplaceDocuments, false, None), doc_imp(ReplaceDocuments, false, None)]), @"Some((DocumentOperation { allow_index_creation: false, primary_key: None, operation_ids: [0, 1] }, false))"); | ||||
|     debug_snapshot!(autobatch_from(false,None,  [doc_imp(ReplaceDocuments, true, None), settings(true)]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true))"); | ||||
|     debug_snapshot!(autobatch_from(false,None,  [doc_imp(ReplaceDocuments, false, None), settings(true)]), @"Some((DocumentOperation { allow_index_creation: false, primary_key: None, operation_ids: [0] }, false))"); | ||||
|     debug_snapshot!(autobatch_from(false,None,  [doc_imp(ReplaceDocuments, false, None), doc_imp(ReplaceDocuments, true, None)]), @"Some((DocumentOperation { allow_index_creation: false, primary_key: None, operation_ids: [0] }, false, Some(IndexCreationMismatch { id: 1 })))"); | ||||
|     debug_snapshot!(autobatch_from(false,None,  [doc_imp(ReplaceDocuments, true, None), doc_imp(ReplaceDocuments, true, None)]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0, 1] }, true, None))"); | ||||
|     debug_snapshot!(autobatch_from(false,None,  [doc_imp(ReplaceDocuments, false, None), doc_imp(ReplaceDocuments, false, None)]), @"Some((DocumentOperation { allow_index_creation: false, primary_key: None, operation_ids: [0, 1] }, false, None))"); | ||||
|     debug_snapshot!(autobatch_from(false,None,  [doc_imp(ReplaceDocuments, true, None), settings(true)]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true, Some(DocumentOperationWithSettings { id: 1 })))"); | ||||
|     debug_snapshot!(autobatch_from(false,None,  [doc_imp(ReplaceDocuments, false, None), settings(true)]), @"Some((DocumentOperation { allow_index_creation: false, primary_key: None, operation_ids: [0] }, false, Some(IndexCreationMismatch { id: 1 })))"); | ||||
|  | ||||
|     // batch deletion and addition | ||||
|     debug_snapshot!(autobatch_from(false, None, [doc_del(), doc_imp(ReplaceDocuments, true, Some("catto"))]), @"Some((DocumentDeletion { deletion_ids: [0], includes_by_filter: false }, false))"); | ||||
|     debug_snapshot!(autobatch_from(false, None, [doc_del(), doc_imp(UpdateDocuments, true, Some("catto"))]), @"Some((DocumentDeletion { deletion_ids: [0], includes_by_filter: false }, false))"); | ||||
|     debug_snapshot!(autobatch_from(false, None, [doc_del(), doc_imp(ReplaceDocuments, true, None)]), @"Some((DocumentDeletion { deletion_ids: [0], includes_by_filter: false }, false))"); | ||||
|     debug_snapshot!(autobatch_from(false, None, [doc_del(), doc_imp(UpdateDocuments, true, None)]), @"Some((DocumentDeletion { deletion_ids: [0], includes_by_filter: false }, false))"); | ||||
|     debug_snapshot!(autobatch_from(false, None, [doc_del(), doc_imp(ReplaceDocuments, true, Some("catto"))]), @"Some((DocumentDeletion { deletion_ids: [0], includes_by_filter: false }, false, Some(IndexCreationMismatch { id: 1 })))"); | ||||
|     debug_snapshot!(autobatch_from(false, None, [doc_del(), doc_imp(UpdateDocuments, true, Some("catto"))]), @"Some((DocumentDeletion { deletion_ids: [0], includes_by_filter: false }, false, Some(IndexCreationMismatch { id: 1 })))"); | ||||
|     debug_snapshot!(autobatch_from(false, None, [doc_del(), doc_imp(ReplaceDocuments, true, None)]), @"Some((DocumentDeletion { deletion_ids: [0], includes_by_filter: false }, false, Some(IndexCreationMismatch { id: 1 })))"); | ||||
|     debug_snapshot!(autobatch_from(false, None, [doc_del(), doc_imp(UpdateDocuments, true, None)]), @"Some((DocumentDeletion { deletion_ids: [0], includes_by_filter: false }, false, Some(IndexCreationMismatch { id: 1 })))"); | ||||
| } | ||||
|  | ||||
| #[test] | ||||
| fn autobatch_primary_key() { | ||||
|     // ==> If I have a pk | ||||
|     // With a single update | ||||
|     debug_snapshot!(autobatch_from(true, Some("id"), [doc_imp(ReplaceDocuments, true, None)]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true))"); | ||||
|     debug_snapshot!(autobatch_from(true, Some("id"), [doc_imp(ReplaceDocuments, true, Some("id"))]), @r###"Some((DocumentOperation { allow_index_creation: true, primary_key: Some("id"), operation_ids: [0] }, true))"###); | ||||
|     debug_snapshot!(autobatch_from(true, Some("id"), [doc_imp(ReplaceDocuments, true, Some("other"))]), @r###"Some((DocumentOperation { allow_index_creation: true, primary_key: Some("other"), operation_ids: [0] }, true))"###); | ||||
|     debug_snapshot!(autobatch_from(true, Some("id"), [doc_imp(ReplaceDocuments, true, None)]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true, None))"); | ||||
|     debug_snapshot!(autobatch_from(true, Some("id"), [doc_imp(ReplaceDocuments, true, Some("id"))]), @r###"Some((DocumentOperation { allow_index_creation: true, primary_key: Some("id"), operation_ids: [0] }, true, None))"###); | ||||
|     debug_snapshot!(autobatch_from(true, Some("id"), [doc_imp(ReplaceDocuments, true, Some("other"))]), @r###"Some((DocumentOperation { allow_index_creation: true, primary_key: Some("other"), operation_ids: [0] }, true, Some(PrimaryKeyIndexMismatch { id: 0, in_index: "id", in_task: "other" })))"###); | ||||
|  | ||||
|     // With a multiple updates | ||||
|     debug_snapshot!(autobatch_from(true, Some("id"), [doc_imp(ReplaceDocuments, true, None), doc_imp(ReplaceDocuments, true, None)]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0, 1] }, true))"); | ||||
|     debug_snapshot!(autobatch_from(true, Some("id"), [doc_imp(ReplaceDocuments, true, None), doc_imp(ReplaceDocuments, true, Some("id"))]), @r###"Some((DocumentOperation { allow_index_creation: true, primary_key: Some("id"), operation_ids: [0, 1] }, true))"###); | ||||
|     debug_snapshot!(autobatch_from(true, Some("id"), [doc_imp(ReplaceDocuments, true, None), doc_imp(ReplaceDocuments, true, Some("id")), doc_imp(ReplaceDocuments, true, None)]), @r###"Some((DocumentOperation { allow_index_creation: true, primary_key: Some("id"), operation_ids: [0, 1] }, true))"###); | ||||
|     debug_snapshot!(autobatch_from(true, Some("id"), [doc_imp(ReplaceDocuments, true, None), doc_imp(ReplaceDocuments, true, Some("other"))]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true))"); | ||||
|     debug_snapshot!(autobatch_from(true, Some("id"), [doc_imp(ReplaceDocuments, true, None), doc_imp(ReplaceDocuments, true, Some("other")), doc_imp(ReplaceDocuments, true, None)]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true))"); | ||||
|     debug_snapshot!(autobatch_from(true, Some("id"), [doc_imp(ReplaceDocuments, true, None), doc_imp(ReplaceDocuments, true, Some("other")), doc_imp(ReplaceDocuments, true, Some("id"))]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true))"); | ||||
|     debug_snapshot!(autobatch_from(true, Some("id"), [doc_imp(ReplaceDocuments, true, None), doc_imp(ReplaceDocuments, true, None)]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0, 1] }, true, None))"); | ||||
|     debug_snapshot!(autobatch_from(true, Some("id"), [doc_imp(ReplaceDocuments, true, None), doc_imp(ReplaceDocuments, true, Some("id"))]), @r###"Some((DocumentOperation { allow_index_creation: true, primary_key: Some("id"), operation_ids: [0, 1] }, true, None))"###); | ||||
|     debug_snapshot!(autobatch_from(true, Some("id"), [doc_imp(ReplaceDocuments, true, None), doc_imp(ReplaceDocuments, true, Some("id")), doc_imp(ReplaceDocuments, true, None)]), @r###"Some((DocumentOperation { allow_index_creation: true, primary_key: Some("id"), operation_ids: [0, 1, 2] }, true, None))"###); | ||||
|     debug_snapshot!(autobatch_from(true, Some("id"), [doc_imp(ReplaceDocuments, true, None), doc_imp(ReplaceDocuments, true, Some("other"))]), @r###"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true, Some(PrimaryKeyMismatch { id: 1, reason: TaskPrimaryKeyDifferFromIndexPrimaryKey { task_pk: "other", index_pk: "id" } })))"###); | ||||
|     debug_snapshot!(autobatch_from(true, Some("id"), [doc_imp(ReplaceDocuments, true, None), doc_imp(ReplaceDocuments, true, Some("other")), doc_imp(ReplaceDocuments, true, None)]), @r###"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true, Some(PrimaryKeyMismatch { id: 1, reason: TaskPrimaryKeyDifferFromIndexPrimaryKey { task_pk: "other", index_pk: "id" } })))"###); | ||||
|     debug_snapshot!(autobatch_from(true, Some("id"), [doc_imp(ReplaceDocuments, true, None), doc_imp(ReplaceDocuments, true, Some("other")), doc_imp(ReplaceDocuments, true, Some("id"))]), @r###"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true, Some(PrimaryKeyMismatch { id: 1, reason: TaskPrimaryKeyDifferFromIndexPrimaryKey { task_pk: "other", index_pk: "id" } })))"###); | ||||
|  | ||||
|     debug_snapshot!(autobatch_from(true, Some("id"), [doc_imp(ReplaceDocuments, true, Some("id")), doc_imp(ReplaceDocuments, true, None)]), @r###"Some((DocumentOperation { allow_index_creation: true, primary_key: Some("id"), operation_ids: [0] }, true))"###); | ||||
|     debug_snapshot!(autobatch_from(true, Some("id"), [doc_imp(ReplaceDocuments, true, Some("id")), doc_imp(ReplaceDocuments, true, Some("id"))]), @r###"Some((DocumentOperation { allow_index_creation: true, primary_key: Some("id"), operation_ids: [0, 1] }, true))"###); | ||||
|     debug_snapshot!(autobatch_from(true, Some("id"), [doc_imp(ReplaceDocuments, true, Some("id")), doc_imp(ReplaceDocuments, true, Some("id")), doc_imp(ReplaceDocuments, true, None)]), @r###"Some((DocumentOperation { allow_index_creation: true, primary_key: Some("id"), operation_ids: [0, 1] }, true))"###); | ||||
|     debug_snapshot!(autobatch_from(true, Some("id"), [doc_imp(ReplaceDocuments, true, Some("id")), doc_imp(ReplaceDocuments, true, Some("other"))]), @r###"Some((DocumentOperation { allow_index_creation: true, primary_key: Some("id"), operation_ids: [0] }, true))"###); | ||||
|     debug_snapshot!(autobatch_from(true, Some("id"), [doc_imp(ReplaceDocuments, true, Some("id")), doc_imp(ReplaceDocuments, true, Some("other")), doc_imp(ReplaceDocuments, true, None)]), @r###"Some((DocumentOperation { allow_index_creation: true, primary_key: Some("id"), operation_ids: [0] }, true))"###); | ||||
|     debug_snapshot!(autobatch_from(true, Some("id"), [doc_imp(ReplaceDocuments, true, Some("id")), doc_imp(ReplaceDocuments, true, Some("other")), doc_imp(ReplaceDocuments, true, Some("id"))]), @r###"Some((DocumentOperation { allow_index_creation: true, primary_key: Some("id"), operation_ids: [0] }, true))"###); | ||||
|     debug_snapshot!(autobatch_from(true, Some("id"), [doc_imp(ReplaceDocuments, true, Some("id")), doc_imp(ReplaceDocuments, true, None)]), @r###"Some((DocumentOperation { allow_index_creation: true, primary_key: Some("id"), operation_ids: [0, 1] }, true, None))"###); | ||||
|     debug_snapshot!(autobatch_from(true, Some("id"), [doc_imp(ReplaceDocuments, true, Some("id")), doc_imp(ReplaceDocuments, true, Some("id"))]), @r###"Some((DocumentOperation { allow_index_creation: true, primary_key: Some("id"), operation_ids: [0, 1] }, true, None))"###); | ||||
|     debug_snapshot!(autobatch_from(true, Some("id"), [doc_imp(ReplaceDocuments, true, Some("id")), doc_imp(ReplaceDocuments, true, Some("id")), doc_imp(ReplaceDocuments, true, None)]), @r###"Some((DocumentOperation { allow_index_creation: true, primary_key: Some("id"), operation_ids: [0, 1, 2] }, true, None))"###); | ||||
|     debug_snapshot!(autobatch_from(true, Some("id"), [doc_imp(ReplaceDocuments, true, Some("id")), doc_imp(ReplaceDocuments, true, Some("other"))]), @r###"Some((DocumentOperation { allow_index_creation: true, primary_key: Some("id"), operation_ids: [0] }, true, Some(PrimaryKeyMismatch { id: 1, reason: TaskPrimaryKeyDifferFromIndexPrimaryKey { task_pk: "other", index_pk: "id" } })))"###); | ||||
|     debug_snapshot!(autobatch_from(true, Some("id"), [doc_imp(ReplaceDocuments, true, Some("id")), doc_imp(ReplaceDocuments, true, Some("other")), doc_imp(ReplaceDocuments, true, None)]), @r###"Some((DocumentOperation { allow_index_creation: true, primary_key: Some("id"), operation_ids: [0] }, true, Some(PrimaryKeyMismatch { id: 1, reason: TaskPrimaryKeyDifferFromIndexPrimaryKey { task_pk: "other", index_pk: "id" } })))"###); | ||||
|     debug_snapshot!(autobatch_from(true, Some("id"), [doc_imp(ReplaceDocuments, true, Some("id")), doc_imp(ReplaceDocuments, true, Some("other")), doc_imp(ReplaceDocuments, true, Some("id"))]), @r###"Some((DocumentOperation { allow_index_creation: true, primary_key: Some("id"), operation_ids: [0] }, true, Some(PrimaryKeyMismatch { id: 1, reason: TaskPrimaryKeyDifferFromIndexPrimaryKey { task_pk: "other", index_pk: "id" } })))"###); | ||||
|  | ||||
|     debug_snapshot!(autobatch_from(true, Some("id"), [doc_imp(ReplaceDocuments, true, Some("other")), doc_imp(ReplaceDocuments, true, None)]), @r###"Some((DocumentOperation { allow_index_creation: true, primary_key: Some("other"), operation_ids: [0] }, true))"###); | ||||
|     debug_snapshot!(autobatch_from(true, Some("id"), [doc_imp(ReplaceDocuments, true, Some("other")), doc_imp(ReplaceDocuments, true, Some("id"))]), @r###"Some((DocumentOperation { allow_index_creation: true, primary_key: Some("other"), operation_ids: [0] }, true))"###); | ||||
|     debug_snapshot!(autobatch_from(true, Some("id"), [doc_imp(ReplaceDocuments, true, Some("other")), doc_imp(ReplaceDocuments, true, Some("id")), doc_imp(ReplaceDocuments, true, None)]), @r###"Some((DocumentOperation { allow_index_creation: true, primary_key: Some("other"), operation_ids: [0] }, true))"###); | ||||
|     debug_snapshot!(autobatch_from(true, Some("id"), [doc_imp(ReplaceDocuments, true, Some("other")), doc_imp(ReplaceDocuments, true, Some("other"))]), @r###"Some((DocumentOperation { allow_index_creation: true, primary_key: Some("other"), operation_ids: [0] }, true))"###); | ||||
|     debug_snapshot!(autobatch_from(true, Some("id"), [doc_imp(ReplaceDocuments, true, Some("other")), doc_imp(ReplaceDocuments, true, Some("other")), doc_imp(ReplaceDocuments, true, None)]), @r###"Some((DocumentOperation { allow_index_creation: true, primary_key: Some("other"), operation_ids: [0] }, true))"###); | ||||
|     debug_snapshot!(autobatch_from(true, Some("id"), [doc_imp(ReplaceDocuments, true, Some("other")), doc_imp(ReplaceDocuments, true, Some("other")), doc_imp(ReplaceDocuments, true, Some("id"))]), @r###"Some((DocumentOperation { allow_index_creation: true, primary_key: Some("other"), operation_ids: [0] }, true))"###); | ||||
|     debug_snapshot!(autobatch_from(true, Some("id"), [doc_imp(ReplaceDocuments, true, Some("other")), doc_imp(ReplaceDocuments, true, None)]), @r###"Some((DocumentOperation { allow_index_creation: true, primary_key: Some("other"), operation_ids: [0] }, true, Some(PrimaryKeyIndexMismatch { id: 0, in_index: "id", in_task: "other" })))"###); | ||||
|     debug_snapshot!(autobatch_from(true, Some("id"), [doc_imp(ReplaceDocuments, true, Some("other")), doc_imp(ReplaceDocuments, true, Some("id"))]), @r###"Some((DocumentOperation { allow_index_creation: true, primary_key: Some("other"), operation_ids: [0] }, true, Some(PrimaryKeyIndexMismatch { id: 0, in_index: "id", in_task: "other" })))"###); | ||||
|     debug_snapshot!(autobatch_from(true, Some("id"), [doc_imp(ReplaceDocuments, true, Some("other")), doc_imp(ReplaceDocuments, true, Some("id")), doc_imp(ReplaceDocuments, true, None)]), @r###"Some((DocumentOperation { allow_index_creation: true, primary_key: Some("other"), operation_ids: [0] }, true, Some(PrimaryKeyIndexMismatch { id: 0, in_index: "id", in_task: "other" })))"###); | ||||
|     debug_snapshot!(autobatch_from(true, Some("id"), [doc_imp(ReplaceDocuments, true, Some("other")), doc_imp(ReplaceDocuments, true, Some("other"))]), @r###"Some((DocumentOperation { allow_index_creation: true, primary_key: Some("other"), operation_ids: [0] }, true, Some(PrimaryKeyIndexMismatch { id: 0, in_index: "id", in_task: "other" })))"###); | ||||
|     debug_snapshot!(autobatch_from(true, Some("id"), [doc_imp(ReplaceDocuments, true, Some("other")), doc_imp(ReplaceDocuments, true, Some("other")), doc_imp(ReplaceDocuments, true, None)]), @r###"Some((DocumentOperation { allow_index_creation: true, primary_key: Some("other"), operation_ids: [0] }, true, Some(PrimaryKeyIndexMismatch { id: 0, in_index: "id", in_task: "other" })))"###); | ||||
|     debug_snapshot!(autobatch_from(true, Some("id"), [doc_imp(ReplaceDocuments, true, Some("other")), doc_imp(ReplaceDocuments, true, Some("other")), doc_imp(ReplaceDocuments, true, Some("id"))]), @r###"Some((DocumentOperation { allow_index_creation: true, primary_key: Some("other"), operation_ids: [0] }, true, Some(PrimaryKeyIndexMismatch { id: 0, in_index: "id", in_task: "other" })))"###); | ||||
|  | ||||
|     // ==> If I don't have a pk | ||||
|     // With a single update | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, true, None)]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, true, Some("id"))]), @r###"Some((DocumentOperation { allow_index_creation: true, primary_key: Some("id"), operation_ids: [0] }, true))"###); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, true, Some("other"))]), @r###"Some((DocumentOperation { allow_index_creation: true, primary_key: Some("other"), operation_ids: [0] }, true))"###); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, true, None)]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true, None))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, true, Some("id"))]), @r###"Some((DocumentOperation { allow_index_creation: true, primary_key: Some("id"), operation_ids: [0] }, true, None))"###); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, true, Some("other"))]), @r###"Some((DocumentOperation { allow_index_creation: true, primary_key: Some("other"), operation_ids: [0] }, true, None))"###); | ||||
|  | ||||
|     // With a multiple updates | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, true, None), doc_imp(ReplaceDocuments, true, None)]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0, 1] }, true))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, true, None), doc_imp(ReplaceDocuments, true, Some("id"))]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, true, Some("id")), doc_imp(ReplaceDocuments, true, None)]), @r###"Some((DocumentOperation { allow_index_creation: true, primary_key: Some("id"), operation_ids: [0] }, true))"###); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, true, None), doc_imp(ReplaceDocuments, true, None)]), @"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0, 1] }, true, None))"); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, true, None), doc_imp(ReplaceDocuments, true, Some("id"))]), @r###"Some((DocumentOperation { allow_index_creation: true, primary_key: None, operation_ids: [0] }, true, Some(PrimaryKeyMismatch { id: 1, reason: CannotInterfereWithPrimaryKeyGuessing { task_pk: "id" } })))"###); | ||||
|     debug_snapshot!(autobatch_from(true, None, [doc_imp(ReplaceDocuments, true, Some("id")), doc_imp(ReplaceDocuments, true, None)]), @r###"Some((DocumentOperation { allow_index_creation: true, primary_key: Some("id"), operation_ids: [0, 1] }, true, None))"###); | ||||
| } | ||||
|   | ||||
| @@ -3,7 +3,7 @@ use std::fmt; | ||||
| use meilisearch_types::heed::RoTxn; | ||||
| use meilisearch_types::milli::update::IndexDocumentsMethod; | ||||
| use meilisearch_types::settings::{Settings, Unchecked}; | ||||
| use meilisearch_types::tasks::{Kind, KindWithContent, Status, Task}; | ||||
| use meilisearch_types::tasks::{BatchStopReason, Kind, KindWithContent, Status, Task}; | ||||
| use roaring::RoaringBitmap; | ||||
| use uuid::Uuid; | ||||
|  | ||||
| @@ -440,6 +440,7 @@ impl IndexScheduler { | ||||
|         let mut current_batch = ProcessingBatch::new(batch_id); | ||||
|  | ||||
|         let enqueued = &self.queue.tasks.get_status(rtxn, Status::Enqueued)?; | ||||
|         let count_total_enqueued = enqueued.len(); | ||||
|         let failed = &self.queue.tasks.get_status(rtxn, Status::Failed)?; | ||||
|  | ||||
|         // 0. The priority over everything is to upgrade the instance | ||||
| @@ -453,6 +454,8 @@ impl IndexScheduler { | ||||
|                 current_batch.uid = batch_uid; | ||||
|             } | ||||
|             current_batch.processing(&mut tasks); | ||||
|             current_batch | ||||
|                 .reason(BatchStopReason::TaskKindCannotBeBatched { kind: Kind::UpgradeDatabase }); | ||||
|             return Ok(Some((Batch::UpgradeDatabase { tasks }, current_batch))); | ||||
|         } | ||||
|  | ||||
| @@ -462,6 +465,10 @@ impl IndexScheduler { | ||||
|             let mut task = | ||||
|                 self.queue.tasks.get_task(rtxn, task_id)?.ok_or(Error::CorruptedTaskQueue)?; | ||||
|             current_batch.processing(Some(&mut task)); | ||||
|             current_batch.reason(BatchStopReason::TaskCannotBeBatched { | ||||
|                 kind: Kind::TaskCancelation, | ||||
|                 id: task_id, | ||||
|             }); | ||||
|             return Ok(Some((Batch::TaskCancelation { task }, current_batch))); | ||||
|         } | ||||
|  | ||||
| @@ -470,6 +477,8 @@ impl IndexScheduler { | ||||
|         if !to_delete.is_empty() { | ||||
|             let mut tasks = self.queue.tasks.get_existing_tasks(rtxn, to_delete)?; | ||||
|             current_batch.processing(&mut tasks); | ||||
|             current_batch | ||||
|                 .reason(BatchStopReason::TaskKindCannotBeBatched { kind: Kind::TaskDeletion }); | ||||
|             return Ok(Some((Batch::TaskDeletions(tasks), current_batch))); | ||||
|         } | ||||
|  | ||||
| @@ -478,6 +487,8 @@ impl IndexScheduler { | ||||
|         if !to_snapshot.is_empty() { | ||||
|             let mut tasks = self.queue.tasks.get_existing_tasks(rtxn, to_snapshot)?; | ||||
|             current_batch.processing(&mut tasks); | ||||
|             current_batch | ||||
|                 .reason(BatchStopReason::TaskKindCannotBeBatched { kind: Kind::SnapshotCreation }); | ||||
|             return Ok(Some((Batch::SnapshotCreation(tasks), current_batch))); | ||||
|         } | ||||
|  | ||||
| @@ -487,6 +498,10 @@ impl IndexScheduler { | ||||
|             let mut task = | ||||
|                 self.queue.tasks.get_task(rtxn, to_dump)?.ok_or(Error::CorruptedTaskQueue)?; | ||||
|             current_batch.processing(Some(&mut task)); | ||||
|             current_batch.reason(BatchStopReason::TaskCannotBeBatched { | ||||
|                 kind: Kind::DumpCreation, | ||||
|                 id: task.uid, | ||||
|             }); | ||||
|             return Ok(Some((Batch::Dump(task), current_batch))); | ||||
|         } | ||||
|  | ||||
| @@ -504,6 +519,10 @@ impl IndexScheduler { | ||||
|         } else { | ||||
|             assert!(matches!(&task.kind, KindWithContent::IndexSwap { swaps } if swaps.is_empty())); | ||||
|             current_batch.processing(Some(&mut task)); | ||||
|             current_batch.reason(BatchStopReason::TaskCannotBeBatched { | ||||
|                 kind: Kind::IndexSwap, | ||||
|                 id: task.uid, | ||||
|             }); | ||||
|             return Ok(Some((Batch::IndexSwap { task }, current_batch))); | ||||
|         }; | ||||
|  | ||||
| @@ -525,9 +544,14 @@ impl IndexScheduler { | ||||
|             1 | ||||
|         }; | ||||
|  | ||||
|         let mut stop_reason = BatchStopReason::default(); | ||||
|         let mut enqueued = Vec::new(); | ||||
|         let mut total_size: u64 = 0; | ||||
|         for task_id in index_tasks.into_iter().take(tasks_limit) { | ||||
|         for task_id in index_tasks.into_iter() { | ||||
|             if enqueued.len() >= tasks_limit { | ||||
|                 stop_reason = BatchStopReason::ReachedTaskLimit { task_limit: tasks_limit }; | ||||
|                 break; | ||||
|             } | ||||
|             let task = self | ||||
|                 .queue | ||||
|                 .tasks | ||||
| @@ -539,16 +563,27 @@ impl IndexScheduler { | ||||
|                 total_size = total_size.saturating_add(content_size); | ||||
|             } | ||||
|  | ||||
|             if total_size > self.scheduler.batched_tasks_size_limit && !enqueued.is_empty() { | ||||
|             let size_limit = self.scheduler.batched_tasks_size_limit; | ||||
|             if total_size > size_limit && !enqueued.is_empty() { | ||||
|                 stop_reason = BatchStopReason::ReachedSizeLimit { size_limit, size: total_size }; | ||||
|                 break; | ||||
|             } | ||||
|  | ||||
|             enqueued.push((task.uid, task.kind)); | ||||
|         } | ||||
|  | ||||
|         if let Some((batchkind, create_index)) = | ||||
|         stop_reason.replace_unspecified({ | ||||
|             if enqueued.len() == count_total_enqueued as usize { | ||||
|                 BatchStopReason::ExhaustedEnqueuedTasks | ||||
|             } else { | ||||
|                 BatchStopReason::ExhaustedEnqueuedTasksForIndex { index: index_name.to_owned() } | ||||
|             } | ||||
|         }); | ||||
|  | ||||
|         if let Some((batchkind, create_index, autobatch_stop_reason)) = | ||||
|             autobatcher::autobatch(enqueued, index_already_exists, primary_key.as_deref()) | ||||
|         { | ||||
|             current_batch.reason(autobatch_stop_reason.unwrap_or(stop_reason)); | ||||
|             return Ok(self | ||||
|                 .create_next_batch_index( | ||||
|                     rtxn, | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch None: | ||||
| @@ -40,7 +39,7 @@ catto [0,] | ||||
| [timestamp] [0,1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {"receivedDocuments":1,"indexedDocuments":0,"matchedTasks":1,"canceledTasks":1,"originalFilter":"test_query"}, stats: {"totalNbTasks":2,"status":{"succeeded":1,"canceled":1},"types":{"documentAdditionOrUpdate":1,"taskCancelation":1},"indexUids":{"catto":1}}, } | ||||
| 0 {uid: 0, details: {"receivedDocuments":1,"indexedDocuments":0,"matchedTasks":1,"canceledTasks":1,"originalFilter":"test_query"}, stats: {"totalNbTasks":2,"status":{"succeeded":1,"canceled":1},"types":{"documentAdditionOrUpdate":1,"taskCancelation":1},"indexUids":{"catto":1}}, stop reason: "task with id 1 of type `taskCancelation` cannot be batched", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,1,] | ||||
|   | ||||
| @@ -1,11 +1,10 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch Some(1): | ||||
| [1,] | ||||
| {uid: 1, details: {"receivedDocuments":1,"indexedDocuments":null}, stats: {"totalNbTasks":1,"status":{"processing":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"beavero":1}}, } | ||||
| {uid: 1, details: {"receivedDocuments":1,"indexedDocuments":null}, stats: {"totalNbTasks":1,"status":{"processing":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"beavero":1}}, stop reason: "batched all enqueued tasks for index `beavero`", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, batch_uid: 0, status: succeeded, details: { received_documents: 1, indexed_documents: Some(1) }, kind: DocumentAdditionOrUpdate { index_uid: "catto", primary_key: None, method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000000, documents_count: 1, allow_index_creation: true }} | ||||
| @@ -47,7 +46,7 @@ catto: { number_of_documents: 1, field_distribution: {"id": 1} } | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"catto":1}}, } | ||||
| 0 {uid: 0, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"catto":1}}, stop reason: "batched all enqueued tasks for index `catto`", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,] | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch None: | ||||
| @@ -50,8 +49,8 @@ catto: { number_of_documents: 1, field_distribution: {"id": 1} } | ||||
| [timestamp] [1,2,3,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"catto":1}}, } | ||||
| 1 {uid: 1, details: {"receivedDocuments":2,"indexedDocuments":0,"matchedTasks":3,"canceledTasks":2,"originalFilter":"test_query"}, stats: {"totalNbTasks":3,"status":{"succeeded":1,"canceled":2},"types":{"documentAdditionOrUpdate":2,"taskCancelation":1},"indexUids":{"beavero":1,"wolfo":1}}, } | ||||
| 0 {uid: 0, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"catto":1}}, stop reason: "batched all enqueued tasks for index `catto`", } | ||||
| 1 {uid: 1, details: {"receivedDocuments":2,"indexedDocuments":0,"matchedTasks":3,"canceledTasks":2,"originalFilter":"test_query"}, stats: {"totalNbTasks":3,"status":{"succeeded":1,"canceled":2},"types":{"documentAdditionOrUpdate":2,"taskCancelation":1},"indexUids":{"beavero":1,"wolfo":1}}, stop reason: "task with id 3 of type `taskCancelation` cannot be batched", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,] | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch None: | ||||
| @@ -42,7 +41,7 @@ catto: { number_of_documents: 1, field_distribution: {"id": 1} } | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"catto":1}}, } | ||||
| 0 {uid: 0, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"catto":1}}, stop reason: "batched all enqueued tasks for index `catto`", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,] | ||||
|   | ||||
| @@ -1,11 +1,10 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch Some(1): | ||||
| [1,] | ||||
| {uid: 1, details: {"receivedDocuments":1,"indexedDocuments":null}, stats: {"totalNbTasks":1,"status":{"processing":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"beavero":1}}, } | ||||
| {uid: 1, details: {"receivedDocuments":1,"indexedDocuments":null}, stats: {"totalNbTasks":1,"status":{"processing":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"beavero":1}}, stop reason: "batched all enqueued tasks for index `beavero`", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, batch_uid: 0, status: succeeded, details: { received_documents: 1, indexed_documents: Some(1) }, kind: DocumentAdditionOrUpdate { index_uid: "catto", primary_key: None, method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000000, documents_count: 1, allow_index_creation: true }} | ||||
| @@ -46,7 +45,7 @@ catto: { number_of_documents: 1, field_distribution: {"id": 1} } | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"catto":1}}, } | ||||
| 0 {uid: 0, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"catto":1}}, stop reason: "batched all enqueued tasks for index `catto`", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,] | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch None: | ||||
| @@ -39,7 +38,7 @@ canceled [0,] | ||||
| [timestamp] [0,1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {"matchedTasks":1,"canceledTasks":1,"originalFilter":"cancel dump"}, stats: {"totalNbTasks":2,"status":{"succeeded":1,"canceled":1},"types":{"taskCancelation":1,"dumpCreation":1},"indexUids":{}}, } | ||||
| 0 {uid: 0, details: {"matchedTasks":1,"canceledTasks":1,"originalFilter":"cancel dump"}, stats: {"totalNbTasks":2,"status":{"succeeded":1,"canceled":1},"types":{"taskCancelation":1,"dumpCreation":1},"indexUids":{}}, stop reason: "task with id 1 of type `taskCancelation` cannot be batched", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,1,] | ||||
|   | ||||
| @@ -1,11 +1,10 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch Some(0): | ||||
| [0,] | ||||
| {uid: 0, details: {"dumpUid":null}, stats: {"totalNbTasks":1,"status":{"processing":1},"types":{"dumpCreation":1},"indexUids":{}}, } | ||||
| {uid: 0, details: {"dumpUid":null}, stats: {"totalNbTasks":1,"status":{"processing":1},"types":{"dumpCreation":1},"indexUids":{}}, stop reason: "task with id 0 of type `dumpCreation` cannot be batched", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: enqueued, details: { dump_uid: None }, kind: DumpCreation { keys: [], instance_uid: None }} | ||||
|   | ||||
| @@ -1,11 +1,10 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch Some(0): | ||||
| [0,] | ||||
| {uid: 0, details: {"receivedDocuments":1,"indexedDocuments":null}, stats: {"totalNbTasks":1,"status":{"processing":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"catto":1}}, } | ||||
| {uid: 0, details: {"receivedDocuments":1,"indexedDocuments":null}, stats: {"totalNbTasks":1,"status":{"processing":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"catto":1}}, stop reason: "batched all enqueued tasks", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: enqueued, details: { received_documents: 1, indexed_documents: None }, kind: DocumentAdditionOrUpdate { index_uid: "catto", primary_key: None, method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000000, documents_count: 1, allow_index_creation: true }} | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch None: | ||||
| @@ -41,7 +40,7 @@ catto: { number_of_documents: 0, field_distribution: {} } | ||||
| [timestamp] [0,1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {"receivedDocuments":1,"indexedDocuments":0,"matchedTasks":1,"canceledTasks":1,"originalFilter":"test_query"}, stats: {"totalNbTasks":2,"status":{"succeeded":1,"canceled":1},"types":{"documentAdditionOrUpdate":1,"taskCancelation":1},"indexUids":{"catto":1}}, } | ||||
| 0 {uid: 0, details: {"receivedDocuments":1,"indexedDocuments":0,"matchedTasks":1,"canceledTasks":1,"originalFilter":"test_query"}, stats: {"totalNbTasks":2,"status":{"succeeded":1,"canceled":1},"types":{"documentAdditionOrUpdate":1,"taskCancelation":1},"indexUids":{"catto":1}}, stop reason: "task with id 1 of type `taskCancelation` cannot be batched", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,1,] | ||||
|   | ||||
| @@ -1,11 +1,10 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch Some(0): | ||||
| [0,] | ||||
| {uid: 0, details: {"receivedDocuments":1,"indexedDocuments":null}, stats: {"totalNbTasks":1,"status":{"processing":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"catto":1}}, } | ||||
| {uid: 0, details: {"receivedDocuments":1,"indexedDocuments":null}, stats: {"totalNbTasks":1,"status":{"processing":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"catto":1}}, stop reason: "batched all enqueued tasks", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: enqueued, details: { received_documents: 1, indexed_documents: None }, kind: DocumentAdditionOrUpdate { index_uid: "catto", primary_key: None, method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000000, documents_count: 1, allow_index_creation: true }} | ||||
|   | ||||
| @@ -1,11 +1,10 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch Some(0): | ||||
| [0,] | ||||
| {uid: 0, details: {"receivedDocuments":1,"indexedDocuments":null}, stats: {"totalNbTasks":1,"status":{"processing":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"catto":1}}, } | ||||
| {uid: 0, details: {"receivedDocuments":1,"indexedDocuments":null}, stats: {"totalNbTasks":1,"status":{"processing":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"catto":1}}, stop reason: "batched all enqueued tasks", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: enqueued, details: { received_documents: 1, indexed_documents: None }, kind: DocumentAdditionOrUpdate { index_uid: "catto", primary_key: None, method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000000, documents_count: 1, allow_index_creation: true }} | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch None: | ||||
| @@ -41,8 +40,8 @@ catto: { number_of_documents: 1, field_distribution: {"id": 1} } | ||||
| [timestamp] [1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"catto":1}}, } | ||||
| 1 {uid: 1, details: {"matchedTasks":1,"canceledTasks":0,"originalFilter":"test_query"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"taskCancelation":1},"indexUids":{}}, } | ||||
| 0 {uid: 0, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"catto":1}}, stop reason: "batched all enqueued tasks", } | ||||
| 1 {uid: 1, details: {"matchedTasks":1,"canceledTasks":0,"originalFilter":"test_query"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"taskCancelation":1},"indexUids":{}}, stop reason: "task with id 1 of type `taskCancelation` cannot be batched", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,] | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch None: | ||||
| @@ -36,7 +35,7 @@ catto: { number_of_documents: 1, field_distribution: {"id": 1} } | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"catto":1}}, } | ||||
| 0 {uid: 0, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"catto":1}}, stop reason: "batched all enqueued tasks", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,] | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch None: | ||||
| @@ -61,12 +60,12 @@ girafos: { number_of_documents: 0, field_distribution: {} } | ||||
| [timestamp] [5,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"doggos":1}}, } | ||||
| 1 {uid: 1, details: {}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"cattos":1}}, } | ||||
| 2 {uid: 2, details: {}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"girafos":1}}, } | ||||
| 3 {uid: 3, details: {"deletedDocuments":0}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentDeletion":1},"indexUids":{"doggos":1}}, } | ||||
| 4 {uid: 4, details: {"deletedDocuments":0}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentDeletion":1},"indexUids":{"cattos":1}}, } | ||||
| 5 {uid: 5, details: {"deletedDocuments":0}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentDeletion":1},"indexUids":{"girafos":1}}, } | ||||
| 0 {uid: 0, details: {}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"doggos":1}}, stop reason: "task with id 0 of type `indexCreation` cannot be batched", } | ||||
| 1 {uid: 1, details: {}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"cattos":1}}, stop reason: "task with id 1 of type `indexCreation` cannot be batched", } | ||||
| 2 {uid: 2, details: {}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"girafos":1}}, stop reason: "task with id 2 of type `indexCreation` cannot be batched", } | ||||
| 3 {uid: 3, details: {"deletedDocuments":0}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentDeletion":1},"indexUids":{"doggos":1}}, stop reason: "batched all enqueued tasks for index `doggos`", } | ||||
| 4 {uid: 4, details: {"deletedDocuments":0}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentDeletion":1},"indexUids":{"cattos":1}}, stop reason: "batched all enqueued tasks for index `cattos`", } | ||||
| 5 {uid: 5, details: {"deletedDocuments":0}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentDeletion":1},"indexUids":{"girafos":1}}, stop reason: "batched all enqueued tasks", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,] | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch None: | ||||
| @@ -42,7 +41,7 @@ doggos: { number_of_documents: 0, field_distribution: {} } | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"doggos":1}}, } | ||||
| 0 {uid: 0, details: {}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"doggos":1}}, stop reason: "task with id 0 of type `indexCreation` cannot be batched", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,] | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch None: | ||||
| @@ -43,8 +42,8 @@ doggos [0,1,2,] | ||||
| [timestamp] [1,2,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"doggos":1}}, } | ||||
| 1 {uid: 1, details: {"receivedDocuments":1,"indexedDocuments":0,"deletedDocuments":0}, stats: {"totalNbTasks":2,"status":{"succeeded":2},"types":{"documentAdditionOrUpdate":1,"indexDeletion":1},"indexUids":{"doggos":2}}, } | ||||
| 0 {uid: 0, details: {}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"doggos":1}}, stop reason: "task with id 0 of type `indexCreation` cannot be batched", } | ||||
| 1 {uid: 1, details: {"receivedDocuments":1,"indexedDocuments":0,"deletedDocuments":0}, stats: {"totalNbTasks":2,"status":{"succeeded":2},"types":{"documentAdditionOrUpdate":1,"indexDeletion":1},"indexUids":{"doggos":2}}, stop reason: "task with id 2 deletes the index", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,] | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch None: | ||||
| @@ -38,7 +37,7 @@ doggos [0,1,] | ||||
| [timestamp] [0,1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {"receivedDocuments":1,"indexedDocuments":0,"deletedDocuments":0}, stats: {"totalNbTasks":2,"status":{"succeeded":2},"types":{"documentAdditionOrUpdate":1,"indexDeletion":1},"indexUids":{"doggos":2}}, } | ||||
| 0 {uid: 0, details: {"receivedDocuments":1,"indexedDocuments":0,"deletedDocuments":0}, stats: {"totalNbTasks":2,"status":{"succeeded":2},"types":{"documentAdditionOrUpdate":1,"indexDeletion":1},"indexUids":{"doggos":2}}, stop reason: "task with id 1 deletes the index", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,1,] | ||||
|   | ||||
| @@ -1,11 +1,10 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch Some(0): | ||||
| [0,] | ||||
| {uid: 0, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"processing":1},"types":{"indexCreation":1},"indexUids":{"index_a":1}}, } | ||||
| {uid: 0, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"processing":1},"types":{"indexCreation":1},"indexUids":{"index_a":1}}, stop reason: "task with id 0 of type `indexCreation` cannot be batched", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: enqueued, details: { primary_key: Some("id") }, kind: IndexCreation { index_uid: "index_a", primary_key: Some("id") }} | ||||
|   | ||||
| @@ -1,11 +1,10 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch Some(0): | ||||
| [0,] | ||||
| {uid: 0, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"processing":1},"types":{"indexCreation":1},"indexUids":{"index_a":1}}, } | ||||
| {uid: 0, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"processing":1},"types":{"indexCreation":1},"indexUids":{"index_a":1}}, stop reason: "task with id 0 of type `indexCreation` cannot be batched", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: enqueued, details: { primary_key: Some("id") }, kind: IndexCreation { index_uid: "index_a", primary_key: Some("id") }} | ||||
|   | ||||
| @@ -1,11 +1,10 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch Some(0): | ||||
| [0,] | ||||
| {uid: 0, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"processing":1},"types":{"indexCreation":1},"indexUids":{"index_a":1}}, } | ||||
| {uid: 0, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"processing":1},"types":{"indexCreation":1},"indexUids":{"index_a":1}}, stop reason: "task with id 0 of type `indexCreation` cannot be batched", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: enqueued, details: { primary_key: Some("id") }, kind: IndexCreation { index_uid: "index_a", primary_key: Some("id") }} | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch None: | ||||
| @@ -42,7 +41,7 @@ doggos: { number_of_documents: 0, field_distribution: {} } | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"doggos":1}}, } | ||||
| 0 {uid: 0, details: {}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"doggos":1}}, stop reason: "task with id 0 of type `indexCreation` cannot be batched", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,] | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch None: | ||||
| @@ -45,8 +44,8 @@ doggos: { number_of_documents: 0, field_distribution: {} } | ||||
| [timestamp] [1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"doggos":1}}, } | ||||
| 1 {uid: 1, details: {}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"cattos":1}}, } | ||||
| 0 {uid: 0, details: {}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"doggos":1}}, stop reason: "task with id 0 of type `indexCreation` cannot be batched", } | ||||
| 1 {uid: 1, details: {}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"cattos":1}}, stop reason: "task with id 1 of type `indexCreation` cannot be batched", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,] | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch None: | ||||
| @@ -46,9 +45,9 @@ cattos: { number_of_documents: 0, field_distribution: {} } | ||||
| [timestamp] [2,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"doggos":1}}, } | ||||
| 1 {uid: 1, details: {}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"cattos":1}}, } | ||||
| 2 {uid: 2, details: {"deletedDocuments":0}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexDeletion":1},"indexUids":{"doggos":1}}, } | ||||
| 0 {uid: 0, details: {}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"doggos":1}}, stop reason: "task with id 0 of type `indexCreation` cannot be batched", } | ||||
| 1 {uid: 1, details: {}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"cattos":1}}, stop reason: "task with id 1 of type `indexCreation` cannot be batched", } | ||||
| 2 {uid: 2, details: {"deletedDocuments":0}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexDeletion":1},"indexUids":{"doggos":1}}, stop reason: "task with id 2 deletes the index", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,] | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = false | ||||
| ### Processing batch None: | ||||
| @@ -43,7 +42,7 @@ doggos: { number_of_documents: 0, field_distribution: {} } | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"doggos":1}}, } | ||||
| 0 {uid: 0, details: {}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"doggos":1}}, stop reason: "task with id 0 of type `indexCreation` cannot be batched", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,] | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = false | ||||
| ### Processing batch None: | ||||
| @@ -49,10 +48,10 @@ doggos: { number_of_documents: 0, field_distribution: {} } | ||||
| [timestamp] [3,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"doggos":1}}, } | ||||
| 1 {uid: 1, details: {"deletedDocuments":0}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentDeletion":1},"indexUids":{"doggos":1}}, } | ||||
| 2 {uid: 2, details: {"deletedDocuments":0}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentDeletion":1},"indexUids":{"doggos":1}}, } | ||||
| 3 {uid: 3, details: {"deletedDocuments":0}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentDeletion":1},"indexUids":{"doggos":1}}, } | ||||
| 0 {uid: 0, details: {}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"doggos":1}}, stop reason: "task with id 0 of type `indexCreation` cannot be batched", } | ||||
| 1 {uid: 1, details: {"deletedDocuments":0}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentDeletion":1},"indexUids":{"doggos":1}}, stop reason: "reached configured batch limit of 1 tasks", } | ||||
| 2 {uid: 2, details: {"deletedDocuments":0}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentDeletion":1},"indexUids":{"doggos":1}}, stop reason: "reached configured batch limit of 1 tasks", } | ||||
| 3 {uid: 3, details: {"deletedDocuments":0}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentDeletion":1},"indexUids":{"doggos":1}}, stop reason: "batched all enqueued tasks", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,] | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = false | ||||
| ### Processing batch None: | ||||
| @@ -45,8 +44,8 @@ doggos: { number_of_documents: 0, field_distribution: {} } | ||||
| [timestamp] [1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"doggos":1}}, } | ||||
| 1 {uid: 1, details: {"deletedDocuments":0}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentDeletion":1},"indexUids":{"doggos":1}}, } | ||||
| 0 {uid: 0, details: {}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"doggos":1}}, stop reason: "task with id 0 of type `indexCreation` cannot be batched", } | ||||
| 1 {uid: 1, details: {"deletedDocuments":0}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentDeletion":1},"indexUids":{"doggos":1}}, stop reason: "reached configured batch limit of 1 tasks", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,] | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = false | ||||
| ### Processing batch None: | ||||
| @@ -47,9 +46,9 @@ doggos: { number_of_documents: 0, field_distribution: {} } | ||||
| [timestamp] [2,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"doggos":1}}, } | ||||
| 1 {uid: 1, details: {"deletedDocuments":0}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentDeletion":1},"indexUids":{"doggos":1}}, } | ||||
| 2 {uid: 2, details: {"deletedDocuments":0}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentDeletion":1},"indexUids":{"doggos":1}}, } | ||||
| 0 {uid: 0, details: {}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"doggos":1}}, stop reason: "task with id 0 of type `indexCreation` cannot be batched", } | ||||
| 1 {uid: 1, details: {"deletedDocuments":0}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentDeletion":1},"indexUids":{"doggos":1}}, stop reason: "reached configured batch limit of 1 tasks", } | ||||
| 2 {uid: 2, details: {"deletedDocuments":0}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentDeletion":1},"indexUids":{"doggos":1}}, stop reason: "reached configured batch limit of 1 tasks", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,] | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch None: | ||||
| @@ -45,7 +44,7 @@ a: { number_of_documents: 0, field_distribution: {} } | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"a":1}}, } | ||||
| 0 {uid: 0, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"a":1}}, stop reason: "task with id 0 of type `indexCreation` cannot be batched", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,] | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch None: | ||||
| @@ -48,8 +47,8 @@ b: { number_of_documents: 0, field_distribution: {} } | ||||
| [timestamp] [1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"a":1}}, } | ||||
| 1 {uid: 1, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"b":1}}, } | ||||
| 0 {uid: 0, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"a":1}}, stop reason: "task with id 0 of type `indexCreation` cannot be batched", } | ||||
| 1 {uid: 1, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"b":1}}, stop reason: "task with id 1 of type `indexCreation` cannot be batched", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,] | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch None: | ||||
| @@ -51,9 +50,9 @@ c: { number_of_documents: 0, field_distribution: {} } | ||||
| [timestamp] [2,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"a":1}}, } | ||||
| 1 {uid: 1, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"b":1}}, } | ||||
| 2 {uid: 2, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"c":1}}, } | ||||
| 0 {uid: 0, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"a":1}}, stop reason: "task with id 0 of type `indexCreation` cannot be batched", } | ||||
| 1 {uid: 1, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"b":1}}, stop reason: "task with id 1 of type `indexCreation` cannot be batched", } | ||||
| 2 {uid: 2, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"c":1}}, stop reason: "task with id 2 of type `indexCreation` cannot be batched", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,] | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch None: | ||||
| @@ -54,10 +53,10 @@ d: { number_of_documents: 0, field_distribution: {} } | ||||
| [timestamp] [3,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"a":1}}, } | ||||
| 1 {uid: 1, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"b":1}}, } | ||||
| 2 {uid: 2, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"c":1}}, } | ||||
| 3 {uid: 3, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"d":1}}, } | ||||
| 0 {uid: 0, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"a":1}}, stop reason: "task with id 0 of type `indexCreation` cannot be batched", } | ||||
| 1 {uid: 1, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"b":1}}, stop reason: "task with id 1 of type `indexCreation` cannot be batched", } | ||||
| 2 {uid: 2, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"c":1}}, stop reason: "task with id 2 of type `indexCreation` cannot be batched", } | ||||
| 3 {uid: 3, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"d":1}}, stop reason: "task with id 3 of type `indexCreation` cannot be batched", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,] | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch None: | ||||
| @@ -61,11 +60,11 @@ d: { number_of_documents: 0, field_distribution: {} } | ||||
| [timestamp] [4,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"a":1}}, } | ||||
| 1 {uid: 1, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"b":1}}, } | ||||
| 2 {uid: 2, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"c":1}}, } | ||||
| 3 {uid: 3, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"d":1}}, } | ||||
| 4 {uid: 4, details: {"swaps":[{"indexes":["a","b"]},{"indexes":["c","d"]}]}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexSwap":1},"indexUids":{}}, } | ||||
| 0 {uid: 0, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"a":1}}, stop reason: "task with id 0 of type `indexCreation` cannot be batched", } | ||||
| 1 {uid: 1, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"b":1}}, stop reason: "task with id 1 of type `indexCreation` cannot be batched", } | ||||
| 2 {uid: 2, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"c":1}}, stop reason: "task with id 2 of type `indexCreation` cannot be batched", } | ||||
| 3 {uid: 3, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"d":1}}, stop reason: "task with id 3 of type `indexCreation` cannot be batched", } | ||||
| 4 {uid: 4, details: {"swaps":[{"indexes":["a","b"]},{"indexes":["c","d"]}]}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexSwap":1},"indexUids":{}}, stop reason: "task with id 4 of type `indexSwap` cannot be batched", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,] | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch None: | ||||
| @@ -57,10 +56,10 @@ d: { number_of_documents: 0, field_distribution: {} } | ||||
| [timestamp] [3,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"a":1}}, } | ||||
| 1 {uid: 1, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"b":1}}, } | ||||
| 2 {uid: 2, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"c":1}}, } | ||||
| 3 {uid: 3, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"d":1}}, } | ||||
| 0 {uid: 0, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"a":1}}, stop reason: "task with id 0 of type `indexCreation` cannot be batched", } | ||||
| 1 {uid: 1, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"b":1}}, stop reason: "task with id 1 of type `indexCreation` cannot be batched", } | ||||
| 2 {uid: 2, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"c":1}}, stop reason: "task with id 2 of type `indexCreation` cannot be batched", } | ||||
| 3 {uid: 3, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"d":1}}, stop reason: "task with id 3 of type `indexCreation` cannot be batched", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,] | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch None: | ||||
| @@ -63,12 +62,12 @@ d: { number_of_documents: 0, field_distribution: {} } | ||||
| [timestamp] [5,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"a":1}}, } | ||||
| 1 {uid: 1, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"b":1}}, } | ||||
| 2 {uid: 2, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"c":1}}, } | ||||
| 3 {uid: 3, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"d":1}}, } | ||||
| 4 {uid: 4, details: {"swaps":[{"indexes":["a","b"]},{"indexes":["c","d"]}]}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexSwap":1},"indexUids":{}}, } | ||||
| 5 {uid: 5, details: {"swaps":[{"indexes":["a","c"]}]}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexSwap":1},"indexUids":{}}, } | ||||
| 0 {uid: 0, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"a":1}}, stop reason: "task with id 0 of type `indexCreation` cannot be batched", } | ||||
| 1 {uid: 1, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"b":1}}, stop reason: "task with id 1 of type `indexCreation` cannot be batched", } | ||||
| 2 {uid: 2, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"c":1}}, stop reason: "task with id 2 of type `indexCreation` cannot be batched", } | ||||
| 3 {uid: 3, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"d":1}}, stop reason: "task with id 3 of type `indexCreation` cannot be batched", } | ||||
| 4 {uid: 4, details: {"swaps":[{"indexes":["a","b"]},{"indexes":["c","d"]}]}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexSwap":1},"indexUids":{}}, stop reason: "task with id 4 of type `indexSwap` cannot be batched", } | ||||
| 5 {uid: 5, details: {"swaps":[{"indexes":["a","c"]}]}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexSwap":1},"indexUids":{}}, stop reason: "task with id 5 of type `indexSwap` cannot be batched", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,] | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch None: | ||||
| @@ -67,13 +66,13 @@ d: { number_of_documents: 0, field_distribution: {} } | ||||
| [timestamp] [6,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"a":1}}, } | ||||
| 1 {uid: 1, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"b":1}}, } | ||||
| 2 {uid: 2, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"c":1}}, } | ||||
| 3 {uid: 3, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"d":1}}, } | ||||
| 4 {uid: 4, details: {"swaps":[{"indexes":["a","b"]},{"indexes":["c","d"]}]}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexSwap":1},"indexUids":{}}, } | ||||
| 5 {uid: 5, details: {"swaps":[{"indexes":["a","c"]}]}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexSwap":1},"indexUids":{}}, } | ||||
| 6 {uid: 6, details: {"swaps":[]}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexSwap":1},"indexUids":{}}, } | ||||
| 0 {uid: 0, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"a":1}}, stop reason: "task with id 0 of type `indexCreation` cannot be batched", } | ||||
| 1 {uid: 1, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"b":1}}, stop reason: "task with id 1 of type `indexCreation` cannot be batched", } | ||||
| 2 {uid: 2, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"c":1}}, stop reason: "task with id 2 of type `indexCreation` cannot be batched", } | ||||
| 3 {uid: 3, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"d":1}}, stop reason: "task with id 3 of type `indexCreation` cannot be batched", } | ||||
| 4 {uid: 4, details: {"swaps":[{"indexes":["a","b"]},{"indexes":["c","d"]}]}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexSwap":1},"indexUids":{}}, stop reason: "task with id 4 of type `indexSwap` cannot be batched", } | ||||
| 5 {uid: 5, details: {"swaps":[{"indexes":["a","c"]}]}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexSwap":1},"indexUids":{}}, stop reason: "task with id 5 of type `indexSwap` cannot be batched", } | ||||
| 6 {uid: 6, details: {"swaps":[]}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexSwap":1},"indexUids":{}}, stop reason: "task with id 6 of type `indexSwap` cannot be batched", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,] | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch None: | ||||
| @@ -59,10 +58,10 @@ d: { number_of_documents: 0, field_distribution: {} } | ||||
| [timestamp] [3,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"a":1}}, } | ||||
| 1 {uid: 1, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"b":1}}, } | ||||
| 2 {uid: 2, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"c":1}}, } | ||||
| 3 {uid: 3, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"d":1}}, } | ||||
| 0 {uid: 0, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"a":1}}, stop reason: "task with id 0 of type `indexCreation` cannot be batched", } | ||||
| 1 {uid: 1, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"b":1}}, stop reason: "task with id 1 of type `indexCreation` cannot be batched", } | ||||
| 2 {uid: 2, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"c":1}}, stop reason: "task with id 2 of type `indexCreation` cannot be batched", } | ||||
| 3 {uid: 3, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"d":1}}, stop reason: "task with id 3 of type `indexCreation` cannot be batched", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,] | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch None: | ||||
| @@ -54,10 +53,10 @@ d: { number_of_documents: 0, field_distribution: {} } | ||||
| [timestamp] [3,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"a":1}}, } | ||||
| 1 {uid: 1, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"b":1}}, } | ||||
| 2 {uid: 2, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"c":1}}, } | ||||
| 3 {uid: 3, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"d":1}}, } | ||||
| 0 {uid: 0, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"a":1}}, stop reason: "task with id 0 of type `indexCreation` cannot be batched", } | ||||
| 1 {uid: 1, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"b":1}}, stop reason: "task with id 1 of type `indexCreation` cannot be batched", } | ||||
| 2 {uid: 2, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"c":1}}, stop reason: "task with id 2 of type `indexCreation` cannot be batched", } | ||||
| 3 {uid: 3, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"d":1}}, stop reason: "task with id 3 of type `indexCreation` cannot be batched", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,] | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch None: | ||||
| @@ -62,11 +61,11 @@ d: { number_of_documents: 0, field_distribution: {} } | ||||
| [timestamp] [4,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"a":1}}, } | ||||
| 1 {uid: 1, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"b":1}}, } | ||||
| 2 {uid: 2, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"c":1}}, } | ||||
| 3 {uid: 3, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"d":1}}, } | ||||
| 4 {uid: 4, details: {"swaps":[{"indexes":["a","b"]},{"indexes":["c","e"]},{"indexes":["d","f"]}]}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"indexSwap":1},"indexUids":{}}, } | ||||
| 0 {uid: 0, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"a":1}}, stop reason: "task with id 0 of type `indexCreation` cannot be batched", } | ||||
| 1 {uid: 1, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"b":1}}, stop reason: "task with id 1 of type `indexCreation` cannot be batched", } | ||||
| 2 {uid: 2, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"c":1}}, stop reason: "task with id 2 of type `indexCreation` cannot be batched", } | ||||
| 3 {uid: 3, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"d":1}}, stop reason: "task with id 3 of type `indexCreation` cannot be batched", } | ||||
| 4 {uid: 4, details: {"swaps":[{"indexes":["a","b"]},{"indexes":["c","e"]},{"indexes":["d","f"]}]}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"indexSwap":1},"indexUids":{}}, stop reason: "task with id 4 of type `indexSwap` cannot be batched", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,] | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch None: | ||||
| @@ -54,10 +53,10 @@ d: { number_of_documents: 0, field_distribution: {} } | ||||
| [timestamp] [3,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"a":1}}, } | ||||
| 1 {uid: 1, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"b":1}}, } | ||||
| 2 {uid: 2, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"c":1}}, } | ||||
| 3 {uid: 3, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"d":1}}, } | ||||
| 0 {uid: 0, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"a":1}}, stop reason: "task with id 0 of type `indexCreation` cannot be batched", } | ||||
| 1 {uid: 1, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"b":1}}, stop reason: "task with id 1 of type `indexCreation` cannot be batched", } | ||||
| 2 {uid: 2, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"c":1}}, stop reason: "task with id 2 of type `indexCreation` cannot be batched", } | ||||
| 3 {uid: 3, details: {"primaryKey":"id"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"d":1}}, stop reason: "task with id 3 of type `indexCreation` cannot be batched", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,] | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch None: | ||||
| @@ -39,7 +38,7 @@ catto: { number_of_documents: 1, field_distribution: {"id": 1} } | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"catto":1}}, } | ||||
| 0 {uid: 0, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"catto":1}}, stop reason: "batched all enqueued tasks for index `catto`", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,] | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch None: | ||||
| @@ -41,7 +40,7 @@ catto: { number_of_documents: 1, field_distribution: {"id": 1} } | ||||
| [timestamp] [2,3,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 1 {uid: 1, details: {"matchedTasks":2,"deletedTasks":1,"originalFilter":"test_query&test_query"}, stats: {"totalNbTasks":2,"status":{"succeeded":2},"types":{"taskDeletion":2},"indexUids":{}}, } | ||||
| 1 {uid: 1, details: {"matchedTasks":2,"deletedTasks":1,"originalFilter":"test_query&test_query"}, stats: {"totalNbTasks":2,"status":{"succeeded":2},"types":{"taskDeletion":2},"indexUids":{}}, stop reason: "a batch of tasks of type `taskDeletion` cannot be batched with any other type of task", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 1 [2,3,] | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch None: | ||||
| @@ -42,7 +41,7 @@ catto: { number_of_documents: 1, field_distribution: {"id": 1} } | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"catto":1}}, } | ||||
| 0 {uid: 0, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"catto":1}}, stop reason: "batched all enqueued tasks for index `catto`", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,] | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch None: | ||||
| @@ -39,7 +38,7 @@ catto: { number_of_documents: 1, field_distribution: {"id": 1} } | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"catto":1}}, } | ||||
| 0 {uid: 0, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"catto":1}}, stop reason: "batched all enqueued tasks for index `catto`", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,] | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch None: | ||||
| @@ -39,7 +38,7 @@ catto: { number_of_documents: 1, field_distribution: {"id": 1} } | ||||
| [timestamp] [2,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 1 {uid: 1, details: {"matchedTasks":1,"deletedTasks":1,"originalFilter":"test_query"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"taskDeletion":1},"indexUids":{}}, } | ||||
| 1 {uid: 1, details: {"matchedTasks":1,"deletedTasks":1,"originalFilter":"test_query"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"taskDeletion":1},"indexUids":{}}, stop reason: "a batch of tasks of type `taskDeletion` cannot be batched with any other type of task", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 1 [2,] | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch None: | ||||
| @@ -44,7 +43,7 @@ doggo [2,] | ||||
| [timestamp] [3,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {"matchedTasks":2,"deletedTasks":0,"originalFilter":"test_query"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"taskDeletion":1},"indexUids":{}}, } | ||||
| 0 {uid: 0, details: {"matchedTasks":2,"deletedTasks":0,"originalFilter":"test_query"}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"taskDeletion":1},"indexUids":{}}, stop reason: "a batch of tasks of type `taskDeletion` cannot be batched with any other type of task", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [3,] | ||||
|   | ||||
| @@ -1,11 +1,10 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch Some(0): | ||||
| [3,] | ||||
| {uid: 0, details: {"matchedTasks":2,"deletedTasks":null,"originalFilter":"test_query"}, stats: {"totalNbTasks":1,"status":{"processing":1},"types":{"taskDeletion":1},"indexUids":{}}, } | ||||
| {uid: 0, details: {"matchedTasks":2,"deletedTasks":null,"originalFilter":"test_query"}, stats: {"totalNbTasks":1,"status":{"processing":1},"types":{"taskDeletion":1},"indexUids":{}}, stop reason: "a batch of tasks of type `taskDeletion` cannot be batched with any other type of task", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: enqueued, details: { primary_key: Some("mouse") }, kind: IndexCreation { index_uid: "catto", primary_key: Some("mouse") }} | ||||
|   | ||||
| @@ -35,7 +35,7 @@ doggos: { number_of_documents: 0, field_distribution: {} } | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {"embedders":{"default":{"source":"rest","apiKey":"MyXXXX...","dimensions":4,"url":"http://localhost:7777","request":"{{text}}","response":"{{embedding}}"}}}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"settingsUpdate":1},"indexUids":{"doggos":1}}, } | ||||
| 0 {uid: 0, details: {"embedders":{"default":{"source":"rest","apiKey":"MyXXXX...","dimensions":4,"url":"http://localhost:7777","request":"{{text}}","response":"{{embedding}}"}}}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"settingsUpdate":1},"indexUids":{"doggos":1}}, stop reason: "batched all enqueued tasks", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,] | ||||
|   | ||||
| @@ -1,11 +1,10 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test_document_addition.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch Some(0): | ||||
| [0,] | ||||
| {uid: 0, details: {"receivedDocuments":1,"indexedDocuments":null}, stats: {"totalNbTasks":1,"status":{"processing":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, } | ||||
| {uid: 0, details: {"receivedDocuments":1,"indexedDocuments":null}, stats: {"totalNbTasks":1,"status":{"processing":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, stop reason: "batched all enqueued tasks", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Tasks: | ||||
| 0 {uid: 0, status: enqueued, details: { received_documents: 1, indexed_documents: None }, kind: DocumentAdditionOrUpdate { index_uid: "doggos", primary_key: Some("id"), method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000000, documents_count: 1, allow_index_creation: true }} | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test_document_addition.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch None: | ||||
| @@ -36,7 +35,7 @@ doggos: { number_of_documents: 1, field_distribution: {"doggo": 1, "id": 1} } | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, } | ||||
| 0 {uid: 0, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, stop reason: "batched all enqueued tasks", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,] | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test_document_addition.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch None: | ||||
| @@ -39,7 +38,7 @@ doggos: { number_of_documents: 1, field_distribution: {"doggo": 1, "id": 1} } | ||||
| [timestamp] [0,1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {"receivedDocuments":3,"indexedDocuments":3,"providedIds":2,"deletedDocuments":2}, stats: {"totalNbTasks":2,"status":{"succeeded":2},"types":{"documentAdditionOrUpdate":1,"documentDeletion":1},"indexUids":{"doggos":2}}, } | ||||
| 0 {uid: 0, details: {"receivedDocuments":3,"indexedDocuments":3,"providedIds":2,"deletedDocuments":2}, stats: {"totalNbTasks":2,"status":{"succeeded":2},"types":{"documentAdditionOrUpdate":1,"documentDeletion":1},"indexUids":{"doggos":2}}, stop reason: "batched all enqueued tasks", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,1,] | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test_document_addition.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch None: | ||||
| @@ -38,7 +37,7 @@ doggos [0,1,] | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {"providedIds":2,"deletedDocuments":0}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"documentDeletion":1},"indexUids":{"doggos":1}}, } | ||||
| 0 {uid: 0, details: {"providedIds":2,"deletedDocuments":0}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"documentDeletion":1},"indexUids":{"doggos":1}}, stop reason: "task with id 1 has different index creation rules as in the batch", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,] | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test_document_addition.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch None: | ||||
| @@ -42,8 +41,8 @@ doggos: { number_of_documents: 3, field_distribution: {"catto": 1, "doggo": 2, " | ||||
| [timestamp] [1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {"providedIds":2,"deletedDocuments":0}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"documentDeletion":1},"indexUids":{"doggos":1}}, } | ||||
| 1 {uid: 1, details: {"receivedDocuments":3,"indexedDocuments":3}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, } | ||||
| 0 {uid: 0, details: {"providedIds":2,"deletedDocuments":0}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"documentDeletion":1},"indexUids":{"doggos":1}}, stop reason: "task with id 1 has different index creation rules as in the batch", } | ||||
| 1 {uid: 1, details: {"receivedDocuments":3,"indexedDocuments":3}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, stop reason: "batched all enqueued tasks", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,] | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test_document_addition.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch None: | ||||
| @@ -59,8 +58,8 @@ doggos: { number_of_documents: 10, field_distribution: {"doggo": 10, "id": 10} } | ||||
| [timestamp] [1,2,3,4,5,6,7,8,9,10,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"doggos":1}}, } | ||||
| 1 {uid: 1, details: {"receivedDocuments":10,"indexedDocuments":10}, stats: {"totalNbTasks":10,"status":{"succeeded":10},"types":{"documentAdditionOrUpdate":10},"indexUids":{"doggos":10}}, } | ||||
| 0 {uid: 0, details: {}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"doggos":1}}, stop reason: "task with id 0 of type `indexCreation` cannot be batched", } | ||||
| 1 {uid: 1, details: {"receivedDocuments":10,"indexedDocuments":10}, stats: {"totalNbTasks":10,"status":{"succeeded":10},"types":{"documentAdditionOrUpdate":10},"indexUids":{"doggos":10}}, stop reason: "batched all enqueued tasks", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,] | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test_document_addition.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch None: | ||||
| @@ -57,7 +56,7 @@ doggos: { number_of_documents: 0, field_distribution: {} } | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"doggos":1}}, } | ||||
| 0 {uid: 0, details: {}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"doggos":1}}, stop reason: "task with id 0 of type `indexCreation` cannot be batched", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,] | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test_document_addition.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch None: | ||||
| @@ -36,7 +35,7 @@ doggos: { number_of_documents: 0, field_distribution: {} } | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"doggos":1}}, } | ||||
| 0 {uid: 0, details: {}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"doggos":1}}, stop reason: "task with id 0 of type `indexCreation` cannot be batched", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,] | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test_document_addition.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = false | ||||
| ### Processing batch None: | ||||
| @@ -57,7 +56,7 @@ doggos: { number_of_documents: 0, field_distribution: {} } | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"doggos":1}}, } | ||||
| 0 {uid: 0, details: {}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"doggos":1}}, stop reason: "task with id 0 of type `indexCreation` cannot be batched", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,] | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test_document_addition.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = false | ||||
| ### Processing batch None: | ||||
| @@ -77,17 +76,17 @@ doggos: { number_of_documents: 10, field_distribution: {"doggo": 10, "id": 10} } | ||||
| [timestamp] [10,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"doggos":1}}, } | ||||
| 1 {uid: 1, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, } | ||||
| 2 {uid: 2, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, } | ||||
| 3 {uid: 3, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, } | ||||
| 4 {uid: 4, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, } | ||||
| 5 {uid: 5, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, } | ||||
| 6 {uid: 6, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, } | ||||
| 7 {uid: 7, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, } | ||||
| 8 {uid: 8, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, } | ||||
| 9 {uid: 9, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, } | ||||
| 10 {uid: 10, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, } | ||||
| 0 {uid: 0, details: {}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"doggos":1}}, stop reason: "task with id 0 of type `indexCreation` cannot be batched", } | ||||
| 1 {uid: 1, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, stop reason: "reached configured batch limit of 1 tasks", } | ||||
| 2 {uid: 2, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, stop reason: "reached configured batch limit of 1 tasks", } | ||||
| 3 {uid: 3, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, stop reason: "reached configured batch limit of 1 tasks", } | ||||
| 4 {uid: 4, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, stop reason: "reached configured batch limit of 1 tasks", } | ||||
| 5 {uid: 5, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, stop reason: "reached configured batch limit of 1 tasks", } | ||||
| 6 {uid: 6, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, stop reason: "reached configured batch limit of 1 tasks", } | ||||
| 7 {uid: 7, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, stop reason: "reached configured batch limit of 1 tasks", } | ||||
| 8 {uid: 8, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, stop reason: "reached configured batch limit of 1 tasks", } | ||||
| 9 {uid: 9, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, stop reason: "reached configured batch limit of 1 tasks", } | ||||
| 10 {uid: 10, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, stop reason: "batched all enqueued tasks", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,] | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test_document_addition.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = false | ||||
| ### Processing batch None: | ||||
| @@ -67,12 +66,12 @@ doggos: { number_of_documents: 5, field_distribution: {"doggo": 5, "id": 5} } | ||||
| [timestamp] [5,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"doggos":1}}, } | ||||
| 1 {uid: 1, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, } | ||||
| 2 {uid: 2, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, } | ||||
| 3 {uid: 3, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, } | ||||
| 4 {uid: 4, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, } | ||||
| 5 {uid: 5, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, } | ||||
| 0 {uid: 0, details: {}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"doggos":1}}, stop reason: "task with id 0 of type `indexCreation` cannot be batched", } | ||||
| 1 {uid: 1, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, stop reason: "reached configured batch limit of 1 tasks", } | ||||
| 2 {uid: 2, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, stop reason: "reached configured batch limit of 1 tasks", } | ||||
| 3 {uid: 3, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, stop reason: "reached configured batch limit of 1 tasks", } | ||||
| 4 {uid: 4, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, stop reason: "reached configured batch limit of 1 tasks", } | ||||
| 5 {uid: 5, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, stop reason: "reached configured batch limit of 1 tasks", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,] | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test_document_addition.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = false | ||||
| ### Processing batch None: | ||||
| @@ -36,7 +35,7 @@ doggos: { number_of_documents: 0, field_distribution: {} } | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"doggos":1}}, } | ||||
| 0 {uid: 0, details: {}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"doggos":1}}, stop reason: "task with id 0 of type `indexCreation` cannot be batched", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,] | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test_document_addition.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch None: | ||||
| @@ -53,7 +52,7 @@ doggos [0,1,2,3,4,5,6,7,8,9,] | ||||
| [timestamp] [0,1,2,3,4,5,6,7,8,9,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {"receivedDocuments":10,"indexedDocuments":0}, stats: {"totalNbTasks":10,"status":{"failed":10},"types":{"documentAdditionOrUpdate":10},"indexUids":{"doggos":10}}, } | ||||
| 0 {uid: 0, details: {"receivedDocuments":10,"indexedDocuments":0}, stats: {"totalNbTasks":10,"status":{"failed":10},"types":{"documentAdditionOrUpdate":10},"indexUids":{"doggos":10}}, stop reason: "batched all enqueued tasks", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,1,2,3,4,5,6,7,8,9,] | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test_document_addition.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = false | ||||
| ### Processing batch None: | ||||
| @@ -71,16 +70,16 @@ doggos [0,1,2,3,4,5,6,7,8,9,] | ||||
| [timestamp] [9,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {"receivedDocuments":1,"indexedDocuments":0}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, } | ||||
| 1 {uid: 1, details: {"receivedDocuments":1,"indexedDocuments":0}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, } | ||||
| 2 {uid: 2, details: {"receivedDocuments":1,"indexedDocuments":0}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, } | ||||
| 3 {uid: 3, details: {"receivedDocuments":1,"indexedDocuments":0}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, } | ||||
| 4 {uid: 4, details: {"receivedDocuments":1,"indexedDocuments":0}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, } | ||||
| 5 {uid: 5, details: {"receivedDocuments":1,"indexedDocuments":0}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, } | ||||
| 6 {uid: 6, details: {"receivedDocuments":1,"indexedDocuments":0}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, } | ||||
| 7 {uid: 7, details: {"receivedDocuments":1,"indexedDocuments":0}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, } | ||||
| 8 {uid: 8, details: {"receivedDocuments":1,"indexedDocuments":0}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, } | ||||
| 9 {uid: 9, details: {"receivedDocuments":1,"indexedDocuments":0}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, } | ||||
| 0 {uid: 0, details: {"receivedDocuments":1,"indexedDocuments":0}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, stop reason: "reached configured batch limit of 1 tasks", } | ||||
| 1 {uid: 1, details: {"receivedDocuments":1,"indexedDocuments":0}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, stop reason: "reached configured batch limit of 1 tasks", } | ||||
| 2 {uid: 2, details: {"receivedDocuments":1,"indexedDocuments":0}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, stop reason: "reached configured batch limit of 1 tasks", } | ||||
| 3 {uid: 3, details: {"receivedDocuments":1,"indexedDocuments":0}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, stop reason: "reached configured batch limit of 1 tasks", } | ||||
| 4 {uid: 4, details: {"receivedDocuments":1,"indexedDocuments":0}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, stop reason: "reached configured batch limit of 1 tasks", } | ||||
| 5 {uid: 5, details: {"receivedDocuments":1,"indexedDocuments":0}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, stop reason: "reached configured batch limit of 1 tasks", } | ||||
| 6 {uid: 6, details: {"receivedDocuments":1,"indexedDocuments":0}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, stop reason: "reached configured batch limit of 1 tasks", } | ||||
| 7 {uid: 7, details: {"receivedDocuments":1,"indexedDocuments":0}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, stop reason: "reached configured batch limit of 1 tasks", } | ||||
| 8 {uid: 8, details: {"receivedDocuments":1,"indexedDocuments":0}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, stop reason: "reached configured batch limit of 1 tasks", } | ||||
| 9 {uid: 9, details: {"receivedDocuments":1,"indexedDocuments":0}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, stop reason: "batched all enqueued tasks", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,] | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test_document_addition.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = false | ||||
| ### Processing batch None: | ||||
| @@ -61,11 +60,11 @@ doggos [0,1,2,3,4,5,6,7,8,9,] | ||||
| [timestamp] [4,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {"receivedDocuments":1,"indexedDocuments":0}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, } | ||||
| 1 {uid: 1, details: {"receivedDocuments":1,"indexedDocuments":0}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, } | ||||
| 2 {uid: 2, details: {"receivedDocuments":1,"indexedDocuments":0}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, } | ||||
| 3 {uid: 3, details: {"receivedDocuments":1,"indexedDocuments":0}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, } | ||||
| 4 {uid: 4, details: {"receivedDocuments":1,"indexedDocuments":0}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, } | ||||
| 0 {uid: 0, details: {"receivedDocuments":1,"indexedDocuments":0}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, stop reason: "reached configured batch limit of 1 tasks", } | ||||
| 1 {uid: 1, details: {"receivedDocuments":1,"indexedDocuments":0}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, stop reason: "reached configured batch limit of 1 tasks", } | ||||
| 2 {uid: 2, details: {"receivedDocuments":1,"indexedDocuments":0}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, stop reason: "reached configured batch limit of 1 tasks", } | ||||
| 3 {uid: 3, details: {"receivedDocuments":1,"indexedDocuments":0}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, stop reason: "reached configured batch limit of 1 tasks", } | ||||
| 4 {uid: 4, details: {"receivedDocuments":1,"indexedDocuments":0}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, stop reason: "reached configured batch limit of 1 tasks", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,] | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test_document_addition.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch None: | ||||
| @@ -57,8 +56,8 @@ doggos: { number_of_documents: 9, field_distribution: {"doggo": 9, "id": 9} } | ||||
| [timestamp] [1,2,3,4,5,6,7,8,9,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {"receivedDocuments":1,"indexedDocuments":0}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, } | ||||
| 1 {uid: 1, details: {"receivedDocuments":9,"indexedDocuments":9}, stats: {"totalNbTasks":9,"status":{"succeeded":9},"types":{"documentAdditionOrUpdate":9},"indexUids":{"doggos":9}}, } | ||||
| 0 {uid: 0, details: {"receivedDocuments":1,"indexedDocuments":0}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, stop reason: "task with id 1 has different index creation rules as in the batch", } | ||||
| 1 {uid: 1, details: {"receivedDocuments":9,"indexedDocuments":9}, stats: {"totalNbTasks":9,"status":{"succeeded":9},"types":{"documentAdditionOrUpdate":9},"indexUids":{"doggos":9}}, stop reason: "batched all enqueued tasks", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,] | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test_document_addition.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch None: | ||||
| @@ -53,7 +52,7 @@ doggos [0,1,2,3,4,5,6,7,8,9,] | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {"receivedDocuments":1,"indexedDocuments":0}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, } | ||||
| 0 {uid: 0, details: {"receivedDocuments":1,"indexedDocuments":0}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, stop reason: "task with id 1 has different index creation rules as in the batch", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,] | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test_document_addition.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch None: | ||||
| @@ -57,7 +56,7 @@ doggos: { number_of_documents: 0, field_distribution: {} } | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"doggos":1}}, } | ||||
| 0 {uid: 0, details: {}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"doggos":1}}, stop reason: "task with id 0 of type `indexCreation` cannot be batched", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,] | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test_document_addition.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch None: | ||||
| @@ -59,8 +58,8 @@ doggos: { number_of_documents: 10, field_distribution: {"doggo": 10, "id": 10} } | ||||
| [timestamp] [1,2,3,4,5,6,7,8,9,10,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"doggos":1}}, } | ||||
| 1 {uid: 1, details: {"receivedDocuments":10,"indexedDocuments":10}, stats: {"totalNbTasks":10,"status":{"succeeded":10},"types":{"documentAdditionOrUpdate":10},"indexUids":{"doggos":10}}, } | ||||
| 0 {uid: 0, details: {}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"doggos":1}}, stop reason: "task with id 0 of type `indexCreation` cannot be batched", } | ||||
| 1 {uid: 1, details: {"receivedDocuments":10,"indexedDocuments":10}, stats: {"totalNbTasks":10,"status":{"succeeded":10},"types":{"documentAdditionOrUpdate":10},"indexUids":{"doggos":10}}, stop reason: "batched all enqueued tasks", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,] | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test_document_addition.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch None: | ||||
| @@ -36,7 +35,7 @@ doggos: { number_of_documents: 0, field_distribution: {} } | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"doggos":1}}, } | ||||
| 0 {uid: 0, details: {}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"indexCreation":1},"indexUids":{"doggos":1}}, stop reason: "task with id 0 of type `indexCreation` cannot be batched", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,] | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test_document_addition.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch None: | ||||
| @@ -51,10 +50,10 @@ doggos: { number_of_documents: 2, field_distribution: {"doggo": 2, "id": 2} } | ||||
| [timestamp] [4,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {"receivedDocuments":2,"indexedDocuments":0}, stats: {"totalNbTasks":2,"status":{"failed":2},"types":{"documentAdditionOrUpdate":2},"indexUids":{"doggos":2}}, } | ||||
| 1 {uid: 1, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, } | ||||
| 2 {uid: 2, details: {"receivedDocuments":1,"indexedDocuments":0}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, } | ||||
| 3 {uid: 3, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, } | ||||
| 0 {uid: 0, details: {"receivedDocuments":2,"indexedDocuments":0}, stats: {"totalNbTasks":2,"status":{"failed":2},"types":{"documentAdditionOrUpdate":2},"indexUids":{"doggos":2}}, stop reason: "primary key `id` in task with id 2 is different from the primary key of the batch `bork`", } | ||||
| 1 {uid: 1, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, stop reason: "primary key `bork` in task with id 3 is different from the primary key of the batch `id`", } | ||||
| 2 {uid: 2, details: {"receivedDocuments":1,"indexedDocuments":0}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, stop reason: "primary key `bork` in task with id 3 is different from the primary key of the index `id`", } | ||||
| 3 {uid: 3, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, stop reason: "batched all enqueued tasks", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,1,] | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test_document_addition.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch None: | ||||
| @@ -44,7 +43,7 @@ doggos: { number_of_documents: 0, field_distribution: {} } | ||||
| [timestamp] [0,1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {"receivedDocuments":2,"indexedDocuments":0}, stats: {"totalNbTasks":2,"status":{"failed":2},"types":{"documentAdditionOrUpdate":2},"indexUids":{"doggos":2}}, } | ||||
| 0 {uid: 0, details: {"receivedDocuments":2,"indexedDocuments":0}, stats: {"totalNbTasks":2,"status":{"failed":2},"types":{"documentAdditionOrUpdate":2},"indexUids":{"doggos":2}}, stop reason: "primary key `id` in task with id 2 is different from the primary key of the batch `bork`", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,1,] | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test_document_addition.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch None: | ||||
| @@ -49,9 +48,9 @@ doggos: { number_of_documents: 1, field_distribution: {"doggo": 1, "id": 1} } | ||||
| [timestamp] [3,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {"receivedDocuments":2,"indexedDocuments":0}, stats: {"totalNbTasks":2,"status":{"failed":2},"types":{"documentAdditionOrUpdate":2},"indexUids":{"doggos":2}}, } | ||||
| 1 {uid: 1, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, } | ||||
| 2 {uid: 2, details: {"receivedDocuments":1,"indexedDocuments":0}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, } | ||||
| 0 {uid: 0, details: {"receivedDocuments":2,"indexedDocuments":0}, stats: {"totalNbTasks":2,"status":{"failed":2},"types":{"documentAdditionOrUpdate":2},"indexUids":{"doggos":2}}, stop reason: "primary key `id` in task with id 2 is different from the primary key of the batch `bork`", } | ||||
| 1 {uid: 1, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, stop reason: "primary key `bork` in task with id 3 is different from the primary key of the batch `id`", } | ||||
| 2 {uid: 2, details: {"receivedDocuments":1,"indexedDocuments":0}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, stop reason: "primary key `bork` in task with id 3 is different from the primary key of the index `id`", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,1,] | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test_document_addition.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch None: | ||||
| @@ -47,8 +46,8 @@ doggos: { number_of_documents: 1, field_distribution: {"doggo": 1, "id": 1} } | ||||
| [timestamp] [2,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {"receivedDocuments":2,"indexedDocuments":0}, stats: {"totalNbTasks":2,"status":{"failed":2},"types":{"documentAdditionOrUpdate":2},"indexUids":{"doggos":2}}, } | ||||
| 1 {uid: 1, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, } | ||||
| 0 {uid: 0, details: {"receivedDocuments":2,"indexedDocuments":0}, stats: {"totalNbTasks":2,"status":{"failed":2},"types":{"documentAdditionOrUpdate":2},"indexUids":{"doggos":2}}, stop reason: "primary key `id` in task with id 2 is different from the primary key of the batch `bork`", } | ||||
| 1 {uid: 1, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, stop reason: "primary key `bork` in task with id 3 is different from the primary key of the batch `id`", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,1,] | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test_document_addition.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch None: | ||||
| @@ -40,7 +39,7 @@ doggos: { number_of_documents: 1, field_distribution: {"doggo": 1, "id": 1} } | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, } | ||||
| 0 {uid: 0, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, stop reason: "primary key `bork` in task with id 1 is different from the primary key of the batch `id`", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,] | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test_document_addition.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch None: | ||||
| @@ -43,8 +42,8 @@ doggos: { number_of_documents: 1, field_distribution: {"doggo": 1, "id": 1} } | ||||
| [timestamp] [1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, } | ||||
| 1 {uid: 1, details: {"receivedDocuments":1,"indexedDocuments":0}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, } | ||||
| 0 {uid: 0, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, stop reason: "primary key `bork` in task with id 1 is different from the primary key of the batch `id`", } | ||||
| 1 {uid: 1, details: {"receivedDocuments":1,"indexedDocuments":0}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, stop reason: "primary key `bork` in task with id 1 is different from the primary key of the index `id`", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,] | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test_document_addition.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch None: | ||||
| @@ -45,9 +44,9 @@ doggos: { number_of_documents: 1, field_distribution: {"doggo": 1, "id": 1} } | ||||
| [timestamp] [2,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, } | ||||
| 1 {uid: 1, details: {"receivedDocuments":1,"indexedDocuments":0}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, } | ||||
| 2 {uid: 2, details: {"receivedDocuments":1,"indexedDocuments":0}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, } | ||||
| 0 {uid: 0, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, stop reason: "primary key `bork` in task with id 1 is different from the primary key of the batch `id`", } | ||||
| 1 {uid: 1, details: {"receivedDocuments":1,"indexedDocuments":0}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, stop reason: "primary key `bork` in task with id 1 is different from the primary key of the index `id`", } | ||||
| 2 {uid: 2, details: {"receivedDocuments":1,"indexedDocuments":0}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, stop reason: "primary key `bloup` in task with id 2 is different from the primary key of the index `id`", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,] | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test_document_addition.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch None: | ||||
| @@ -40,7 +39,7 @@ doggos: { number_of_documents: 1, field_distribution: {"doggo": 1, "id": 1} } | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, } | ||||
| 0 {uid: 0, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, stop reason: "primary key `bork` in task with id 1 is different from the primary key of the batch `id`", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,] | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test_document_addition.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch None: | ||||
| @@ -43,8 +42,8 @@ doggos: { number_of_documents: 1, field_distribution: {"doggo": 1, "id": 1} } | ||||
| [timestamp] [1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, } | ||||
| 1 {uid: 1, details: {"receivedDocuments":1,"indexedDocuments":0}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, } | ||||
| 0 {uid: 0, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, stop reason: "primary key `bork` in task with id 1 is different from the primary key of the batch `id`", } | ||||
| 1 {uid: 1, details: {"receivedDocuments":1,"indexedDocuments":0}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, stop reason: "primary key `bork` in task with id 1 is different from the primary key of the index `id`", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,] | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test_document_addition.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch None: | ||||
| @@ -10,9 +9,9 @@ snapshot_kind: text | ||||
| 0 {uid: 0, batch_uid: 0, status: failed, error: ResponseError { code: 200, message: "The primary key inference failed as the engine did not find any field ending with `id` in its name. Please specify the primary key manually using the `primaryKey` query parameter.", error_code: "index_primary_key_no_candidate_found", error_type: "invalid_request", error_link: "https://docs.meilisearch.com/errors#index_primary_key_no_candidate_found" }, details: { received_documents: 1, indexed_documents: Some(0) }, kind: DocumentAdditionOrUpdate { index_uid: "doggos", primary_key: None, method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000000, documents_count: 1, allow_index_creation: true }} | ||||
| 1 {uid: 1, batch_uid: 1, status: failed, error: ResponseError { code: 200, message: "Document doesn't have a `bork` attribute: `{\"paw\":1,\"doggo\":\"jean bob\"}`.", error_code: "missing_document_id", error_type: "invalid_request", error_link: "https://docs.meilisearch.com/errors#missing_document_id" }, details: { received_documents: 1, indexed_documents: Some(0) }, kind: DocumentAdditionOrUpdate { index_uid: "doggos", primary_key: Some("bork"), method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000001, documents_count: 1, allow_index_creation: true }} | ||||
| 2 {uid: 2, batch_uid: 2, status: succeeded, details: { received_documents: 1, indexed_documents: Some(1) }, kind: DocumentAdditionOrUpdate { index_uid: "doggos", primary_key: Some("paw"), method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000002, documents_count: 1, allow_index_creation: true }} | ||||
| 3 {uid: 3, batch_uid: 3, status: succeeded, details: { received_documents: 1, indexed_documents: Some(1) }, kind: DocumentAdditionOrUpdate { index_uid: "doggos", primary_key: None, method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000003, documents_count: 1, allow_index_creation: true }} | ||||
| 4 {uid: 4, batch_uid: 3, status: succeeded, details: { received_documents: 1, indexed_documents: Some(1) }, kind: DocumentAdditionOrUpdate { index_uid: "doggos", primary_key: None, method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000004, documents_count: 1, allow_index_creation: true }} | ||||
| 5 {uid: 5, batch_uid: 3, status: succeeded, details: { received_documents: 1, indexed_documents: Some(1) }, kind: DocumentAdditionOrUpdate { index_uid: "doggos", primary_key: Some("paw"), method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000005, documents_count: 1, allow_index_creation: true }} | ||||
| 3 {uid: 3, batch_uid: 2, status: succeeded, details: { received_documents: 1, indexed_documents: Some(1) }, kind: DocumentAdditionOrUpdate { index_uid: "doggos", primary_key: None, method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000003, documents_count: 1, allow_index_creation: true }} | ||||
| 4 {uid: 4, batch_uid: 2, status: succeeded, details: { received_documents: 1, indexed_documents: Some(1) }, kind: DocumentAdditionOrUpdate { index_uid: "doggos", primary_key: None, method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000004, documents_count: 1, allow_index_creation: true }} | ||||
| 5 {uid: 5, batch_uid: 2, status: succeeded, details: { received_documents: 1, indexed_documents: Some(1) }, kind: DocumentAdditionOrUpdate { index_uid: "doggos", primary_key: Some("paw"), method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000005, documents_count: 1, allow_index_creation: true }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [] | ||||
| @@ -43,55 +42,48 @@ doggos: { number_of_documents: 4, field_distribution: {"doggo": 4, "paw": 4} } | ||||
| ### Started At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| [timestamp] [2,] | ||||
| [timestamp] [3,4,5,] | ||||
| [timestamp] [2,3,4,5,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| [timestamp] [2,] | ||||
| [timestamp] [3,4,5,] | ||||
| [timestamp] [2,3,4,5,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {"receivedDocuments":1,"indexedDocuments":0}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, } | ||||
| 1 {uid: 1, details: {"receivedDocuments":1,"indexedDocuments":0}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, } | ||||
| 2 {uid: 2, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, } | ||||
| 3 {uid: 3, details: {"receivedDocuments":3,"indexedDocuments":3}, stats: {"totalNbTasks":3,"status":{"succeeded":3},"types":{"documentAdditionOrUpdate":3},"indexUids":{"doggos":3}}, } | ||||
| 0 {uid: 0, details: {"receivedDocuments":1,"indexedDocuments":0}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, stop reason: "task with id 1 is setting the `bork` primary key but cannot interfere with primary key guessing of the batch", } | ||||
| 1 {uid: 1, details: {"receivedDocuments":1,"indexedDocuments":0}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, stop reason: "primary key `paw` in task with id 2 is different from the primary key of the batch `bork`", } | ||||
| 2 {uid: 2, details: {"receivedDocuments":4,"indexedDocuments":4}, stats: {"totalNbTasks":4,"status":{"succeeded":4},"types":{"documentAdditionOrUpdate":4},"indexUids":{"doggos":4}}, stop reason: "batched all enqueued tasks", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,] | ||||
| 1 [1,] | ||||
| 2 [2,] | ||||
| 3 [3,4,5,] | ||||
| 2 [2,3,4,5,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batches Status: | ||||
| succeeded [2,3,] | ||||
| succeeded [2,] | ||||
| failed [0,1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batches Kind: | ||||
| "documentAdditionOrUpdate" [0,1,2,3,] | ||||
| "documentAdditionOrUpdate" [0,1,2,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batches Index Tasks: | ||||
| doggos [0,1,2,3,] | ||||
| doggos [0,1,2,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batches Enqueued At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| [timestamp] [2,] | ||||
| [timestamp] [3,] | ||||
| [timestamp] [3,] | ||||
| [timestamp] [2,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batches Started At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| [timestamp] [2,] | ||||
| [timestamp] [3,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batches Finished At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| [timestamp] [2,] | ||||
| [timestamp] [3,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
|  | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test_document_addition.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch None: | ||||
| @@ -46,7 +45,7 @@ doggos: { number_of_documents: 0, field_distribution: {} } | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {"receivedDocuments":1,"indexedDocuments":0}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, } | ||||
| 0 {uid: 0, details: {"receivedDocuments":1,"indexedDocuments":0}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, stop reason: "task with id 1 is setting the `bork` primary key but cannot interfere with primary key guessing of the batch", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,] | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test_document_addition.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch None: | ||||
| @@ -48,8 +47,8 @@ doggos: { number_of_documents: 0, field_distribution: {} } | ||||
| [timestamp] [1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {"receivedDocuments":1,"indexedDocuments":0}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, } | ||||
| 1 {uid: 1, details: {"receivedDocuments":1,"indexedDocuments":0}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, } | ||||
| 0 {uid: 0, details: {"receivedDocuments":1,"indexedDocuments":0}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, stop reason: "task with id 1 is setting the `bork` primary key but cannot interfere with primary key guessing of the batch", } | ||||
| 1 {uid: 1, details: {"receivedDocuments":1,"indexedDocuments":0}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, stop reason: "primary key `paw` in task with id 2 is different from the primary key of the batch `bork`", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,] | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test_document_addition.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch None: | ||||
| @@ -10,13 +9,13 @@ snapshot_kind: text | ||||
| 0 {uid: 0, batch_uid: 0, status: failed, error: ResponseError { code: 200, message: "The primary key inference failed as the engine did not find any field ending with `id` in its name. Please specify the primary key manually using the `primaryKey` query parameter.", error_code: "index_primary_key_no_candidate_found", error_type: "invalid_request", error_link: "https://docs.meilisearch.com/errors#index_primary_key_no_candidate_found" }, details: { received_documents: 1, indexed_documents: Some(0) }, kind: DocumentAdditionOrUpdate { index_uid: "doggos", primary_key: None, method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000000, documents_count: 1, allow_index_creation: true }} | ||||
| 1 {uid: 1, batch_uid: 1, status: failed, error: ResponseError { code: 200, message: "Document doesn't have a `bork` attribute: `{\"paw\":1,\"doggo\":\"jean bob\"}`.", error_code: "missing_document_id", error_type: "invalid_request", error_link: "https://docs.meilisearch.com/errors#missing_document_id" }, details: { received_documents: 1, indexed_documents: Some(0) }, kind: DocumentAdditionOrUpdate { index_uid: "doggos", primary_key: Some("bork"), method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000001, documents_count: 1, allow_index_creation: true }} | ||||
| 2 {uid: 2, batch_uid: 2, status: succeeded, details: { received_documents: 1, indexed_documents: Some(1) }, kind: DocumentAdditionOrUpdate { index_uid: "doggos", primary_key: Some("paw"), method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000002, documents_count: 1, allow_index_creation: true }} | ||||
| 3 {uid: 3, status: enqueued, details: { received_documents: 1, indexed_documents: None }, kind: DocumentAdditionOrUpdate { index_uid: "doggos", primary_key: None, method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000003, documents_count: 1, allow_index_creation: true }} | ||||
| 4 {uid: 4, status: enqueued, details: { received_documents: 1, indexed_documents: None }, kind: DocumentAdditionOrUpdate { index_uid: "doggos", primary_key: None, method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000004, documents_count: 1, allow_index_creation: true }} | ||||
| 5 {uid: 5, status: enqueued, details: { received_documents: 1, indexed_documents: None }, kind: DocumentAdditionOrUpdate { index_uid: "doggos", primary_key: Some("paw"), method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000005, documents_count: 1, allow_index_creation: true }} | ||||
| 3 {uid: 3, batch_uid: 2, status: succeeded, details: { received_documents: 1, indexed_documents: Some(1) }, kind: DocumentAdditionOrUpdate { index_uid: "doggos", primary_key: None, method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000003, documents_count: 1, allow_index_creation: true }} | ||||
| 4 {uid: 4, batch_uid: 2, status: succeeded, details: { received_documents: 1, indexed_documents: Some(1) }, kind: DocumentAdditionOrUpdate { index_uid: "doggos", primary_key: None, method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000004, documents_count: 1, allow_index_creation: true }} | ||||
| 5 {uid: 5, batch_uid: 2, status: succeeded, details: { received_documents: 1, indexed_documents: Some(1) }, kind: DocumentAdditionOrUpdate { index_uid: "doggos", primary_key: Some("paw"), method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000005, documents_count: 1, allow_index_creation: true }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [3,4,5,] | ||||
| succeeded [2,] | ||||
| enqueued [] | ||||
| succeeded [2,3,4,5,] | ||||
| failed [0,1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| @@ -26,7 +25,7 @@ failed [0,1,] | ||||
| doggos [0,1,2,3,4,5,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
| doggos: { number_of_documents: 1, field_distribution: {"doggo": 1, "paw": 1} } | ||||
| doggos: { number_of_documents: 4, field_distribution: {"doggo": 4, "paw": 4} } | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
| @@ -43,22 +42,22 @@ doggos: { number_of_documents: 1, field_distribution: {"doggo": 1, "paw": 1} } | ||||
| ### Started At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| [timestamp] [2,] | ||||
| [timestamp] [2,3,4,5,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| [timestamp] [2,] | ||||
| [timestamp] [2,3,4,5,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {"receivedDocuments":1,"indexedDocuments":0}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, } | ||||
| 1 {uid: 1, details: {"receivedDocuments":1,"indexedDocuments":0}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, } | ||||
| 2 {uid: 2, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, } | ||||
| 0 {uid: 0, details: {"receivedDocuments":1,"indexedDocuments":0}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, stop reason: "task with id 1 is setting the `bork` primary key but cannot interfere with primary key guessing of the batch", } | ||||
| 1 {uid: 1, details: {"receivedDocuments":1,"indexedDocuments":0}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, stop reason: "primary key `paw` in task with id 2 is different from the primary key of the batch `bork`", } | ||||
| 2 {uid: 2, details: {"receivedDocuments":4,"indexedDocuments":4}, stats: {"totalNbTasks":4,"status":{"succeeded":4},"types":{"documentAdditionOrUpdate":4},"indexUids":{"doggos":4}}, stop reason: "batched all enqueued tasks", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,] | ||||
| 1 [1,] | ||||
| 2 [2,] | ||||
| 2 [2,3,4,5,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batches Status: | ||||
| succeeded [2,] | ||||
| @@ -74,6 +73,7 @@ doggos [0,1,2,] | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| [timestamp] [2,] | ||||
| [timestamp] [2,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batches Started At: | ||||
| [timestamp] [0,] | ||||
| @@ -86,8 +86,5 @@ doggos [0,1,2,] | ||||
| [timestamp] [2,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
| 00000000-0000-0000-0000-000000000003 | ||||
| 00000000-0000-0000-0000-000000000004 | ||||
| 00000000-0000-0000-0000-000000000005 | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test_document_addition.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch None: | ||||
| @@ -10,9 +9,9 @@ snapshot_kind: text | ||||
| 0 {uid: 0, batch_uid: 0, status: succeeded, details: { received_documents: 1, indexed_documents: Some(1) }, kind: DocumentAdditionOrUpdate { index_uid: "doggos", primary_key: None, method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000000, documents_count: 1, allow_index_creation: true }} | ||||
| 1 {uid: 1, batch_uid: 1, status: failed, error: ResponseError { code: 200, message: "Index already has a primary key: `doggoid`.", error_code: "index_primary_key_already_exists", error_type: "invalid_request", error_link: "https://docs.meilisearch.com/errors#index_primary_key_already_exists" }, details: { received_documents: 1, indexed_documents: Some(0) }, kind: DocumentAdditionOrUpdate { index_uid: "doggos", primary_key: Some("bork"), method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000001, documents_count: 1, allow_index_creation: true }} | ||||
| 2 {uid: 2, batch_uid: 2, status: succeeded, details: { received_documents: 1, indexed_documents: Some(1) }, kind: DocumentAdditionOrUpdate { index_uid: "doggos", primary_key: Some("doggoid"), method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000002, documents_count: 1, allow_index_creation: true }} | ||||
| 3 {uid: 3, batch_uid: 3, status: succeeded, details: { received_documents: 1, indexed_documents: Some(1) }, kind: DocumentAdditionOrUpdate { index_uid: "doggos", primary_key: None, method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000003, documents_count: 1, allow_index_creation: true }} | ||||
| 4 {uid: 4, batch_uid: 3, status: succeeded, details: { received_documents: 1, indexed_documents: Some(1) }, kind: DocumentAdditionOrUpdate { index_uid: "doggos", primary_key: None, method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000004, documents_count: 1, allow_index_creation: true }} | ||||
| 5 {uid: 5, batch_uid: 3, status: succeeded, details: { received_documents: 1, indexed_documents: Some(1) }, kind: DocumentAdditionOrUpdate { index_uid: "doggos", primary_key: Some("doggoid"), method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000005, documents_count: 1, allow_index_creation: true }} | ||||
| 3 {uid: 3, batch_uid: 2, status: succeeded, details: { received_documents: 1, indexed_documents: Some(1) }, kind: DocumentAdditionOrUpdate { index_uid: "doggos", primary_key: None, method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000003, documents_count: 1, allow_index_creation: true }} | ||||
| 4 {uid: 4, batch_uid: 2, status: succeeded, details: { received_documents: 1, indexed_documents: Some(1) }, kind: DocumentAdditionOrUpdate { index_uid: "doggos", primary_key: None, method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000004, documents_count: 1, allow_index_creation: true }} | ||||
| 5 {uid: 5, batch_uid: 2, status: succeeded, details: { received_documents: 1, indexed_documents: Some(1) }, kind: DocumentAdditionOrUpdate { index_uid: "doggos", primary_key: Some("doggoid"), method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000005, documents_count: 1, allow_index_creation: true }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [] | ||||
| @@ -43,55 +42,48 @@ doggos: { number_of_documents: 5, field_distribution: {"doggo": 5, "doggoid": 5} | ||||
| ### Started At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| [timestamp] [2,] | ||||
| [timestamp] [3,4,5,] | ||||
| [timestamp] [2,3,4,5,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| [timestamp] [2,] | ||||
| [timestamp] [3,4,5,] | ||||
| [timestamp] [2,3,4,5,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, } | ||||
| 1 {uid: 1, details: {"receivedDocuments":1,"indexedDocuments":0}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, } | ||||
| 2 {uid: 2, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, } | ||||
| 3 {uid: 3, details: {"receivedDocuments":3,"indexedDocuments":3}, stats: {"totalNbTasks":3,"status":{"succeeded":3},"types":{"documentAdditionOrUpdate":3},"indexUids":{"doggos":3}}, } | ||||
| 0 {uid: 0, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, stop reason: "task with id 1 is setting the `bork` primary key but cannot interfere with primary key guessing of the batch", } | ||||
| 1 {uid: 1, details: {"receivedDocuments":1,"indexedDocuments":0}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, stop reason: "primary key `bork` in task with id 1 is different from the primary key of the index `doggoid`", } | ||||
| 2 {uid: 2, details: {"receivedDocuments":4,"indexedDocuments":4}, stats: {"totalNbTasks":4,"status":{"succeeded":4},"types":{"documentAdditionOrUpdate":4},"indexUids":{"doggos":4}}, stop reason: "batched all enqueued tasks", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,] | ||||
| 1 [1,] | ||||
| 2 [2,] | ||||
| 3 [3,4,5,] | ||||
| 2 [2,3,4,5,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batches Status: | ||||
| succeeded [0,2,3,] | ||||
| succeeded [0,2,] | ||||
| failed [1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batches Kind: | ||||
| "documentAdditionOrUpdate" [0,1,2,3,] | ||||
| "documentAdditionOrUpdate" [0,1,2,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batches Index Tasks: | ||||
| doggos [0,1,2,3,] | ||||
| doggos [0,1,2,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batches Enqueued At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| [timestamp] [2,] | ||||
| [timestamp] [3,] | ||||
| [timestamp] [3,] | ||||
| [timestamp] [2,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batches Started At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| [timestamp] [2,] | ||||
| [timestamp] [3,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batches Finished At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| [timestamp] [2,] | ||||
| [timestamp] [3,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
|  | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test_document_addition.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch None: | ||||
| @@ -46,7 +45,7 @@ doggos: { number_of_documents: 1, field_distribution: {"doggo": 1, "doggoid": 1} | ||||
| [timestamp] [0,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, } | ||||
| 0 {uid: 0, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, stop reason: "task with id 1 is setting the `bork` primary key but cannot interfere with primary key guessing of the batch", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,] | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test_document_addition.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch None: | ||||
| @@ -49,8 +48,8 @@ doggos: { number_of_documents: 1, field_distribution: {"doggo": 1, "doggoid": 1} | ||||
| [timestamp] [1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, } | ||||
| 1 {uid: 1, details: {"receivedDocuments":1,"indexedDocuments":0}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, } | ||||
| 0 {uid: 0, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, stop reason: "task with id 1 is setting the `bork` primary key but cannot interfere with primary key guessing of the batch", } | ||||
| 1 {uid: 1, details: {"receivedDocuments":1,"indexedDocuments":0}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, stop reason: "primary key `bork` in task with id 1 is different from the primary key of the index `doggoid`", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,] | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test_document_addition.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch None: | ||||
| @@ -10,13 +9,13 @@ snapshot_kind: text | ||||
| 0 {uid: 0, batch_uid: 0, status: succeeded, details: { received_documents: 1, indexed_documents: Some(1) }, kind: DocumentAdditionOrUpdate { index_uid: "doggos", primary_key: None, method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000000, documents_count: 1, allow_index_creation: true }} | ||||
| 1 {uid: 1, batch_uid: 1, status: failed, error: ResponseError { code: 200, message: "Index already has a primary key: `doggoid`.", error_code: "index_primary_key_already_exists", error_type: "invalid_request", error_link: "https://docs.meilisearch.com/errors#index_primary_key_already_exists" }, details: { received_documents: 1, indexed_documents: Some(0) }, kind: DocumentAdditionOrUpdate { index_uid: "doggos", primary_key: Some("bork"), method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000001, documents_count: 1, allow_index_creation: true }} | ||||
| 2 {uid: 2, batch_uid: 2, status: succeeded, details: { received_documents: 1, indexed_documents: Some(1) }, kind: DocumentAdditionOrUpdate { index_uid: "doggos", primary_key: Some("doggoid"), method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000002, documents_count: 1, allow_index_creation: true }} | ||||
| 3 {uid: 3, status: enqueued, details: { received_documents: 1, indexed_documents: None }, kind: DocumentAdditionOrUpdate { index_uid: "doggos", primary_key: None, method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000003, documents_count: 1, allow_index_creation: true }} | ||||
| 4 {uid: 4, status: enqueued, details: { received_documents: 1, indexed_documents: None }, kind: DocumentAdditionOrUpdate { index_uid: "doggos", primary_key: None, method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000004, documents_count: 1, allow_index_creation: true }} | ||||
| 5 {uid: 5, status: enqueued, details: { received_documents: 1, indexed_documents: None }, kind: DocumentAdditionOrUpdate { index_uid: "doggos", primary_key: Some("doggoid"), method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000005, documents_count: 1, allow_index_creation: true }} | ||||
| 3 {uid: 3, batch_uid: 2, status: succeeded, details: { received_documents: 1, indexed_documents: Some(1) }, kind: DocumentAdditionOrUpdate { index_uid: "doggos", primary_key: None, method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000003, documents_count: 1, allow_index_creation: true }} | ||||
| 4 {uid: 4, batch_uid: 2, status: succeeded, details: { received_documents: 1, indexed_documents: Some(1) }, kind: DocumentAdditionOrUpdate { index_uid: "doggos", primary_key: None, method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000004, documents_count: 1, allow_index_creation: true }} | ||||
| 5 {uid: 5, batch_uid: 2, status: succeeded, details: { received_documents: 1, indexed_documents: Some(1) }, kind: DocumentAdditionOrUpdate { index_uid: "doggos", primary_key: Some("doggoid"), method: ReplaceDocuments, content_file: 00000000-0000-0000-0000-000000000005, documents_count: 1, allow_index_creation: true }} | ||||
| ---------------------------------------------------------------------- | ||||
| ### Status: | ||||
| enqueued [3,4,5,] | ||||
| succeeded [0,2,] | ||||
| enqueued [] | ||||
| succeeded [0,2,3,4,5,] | ||||
| failed [1,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Kind: | ||||
| @@ -26,7 +25,7 @@ failed [1,] | ||||
| doggos [0,1,2,3,4,5,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Index Mapper: | ||||
| doggos: { number_of_documents: 2, field_distribution: {"doggo": 2, "doggoid": 2} } | ||||
| doggos: { number_of_documents: 5, field_distribution: {"doggo": 5, "doggoid": 5} } | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
| ### Canceled By: | ||||
| @@ -43,22 +42,22 @@ doggos: { number_of_documents: 2, field_distribution: {"doggo": 2, "doggoid": 2} | ||||
| ### Started At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| [timestamp] [2,] | ||||
| [timestamp] [2,3,4,5,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Finished At: | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| [timestamp] [2,] | ||||
| [timestamp] [2,3,4,5,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, } | ||||
| 1 {uid: 1, details: {"receivedDocuments":1,"indexedDocuments":0}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, } | ||||
| 2 {uid: 2, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, } | ||||
| 0 {uid: 0, details: {"receivedDocuments":1,"indexedDocuments":1}, stats: {"totalNbTasks":1,"status":{"succeeded":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, stop reason: "task with id 1 is setting the `bork` primary key but cannot interfere with primary key guessing of the batch", } | ||||
| 1 {uid: 1, details: {"receivedDocuments":1,"indexedDocuments":0}, stats: {"totalNbTasks":1,"status":{"failed":1},"types":{"documentAdditionOrUpdate":1},"indexUids":{"doggos":1}}, stop reason: "primary key `bork` in task with id 1 is different from the primary key of the index `doggoid`", } | ||||
| 2 {uid: 2, details: {"receivedDocuments":4,"indexedDocuments":4}, stats: {"totalNbTasks":4,"status":{"succeeded":4},"types":{"documentAdditionOrUpdate":4},"indexUids":{"doggos":4}}, stop reason: "batched all enqueued tasks", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,] | ||||
| 1 [1,] | ||||
| 2 [2,] | ||||
| 2 [2,3,4,5,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batches Status: | ||||
| succeeded [0,2,] | ||||
| @@ -74,6 +73,7 @@ doggos [0,1,2,] | ||||
| [timestamp] [0,] | ||||
| [timestamp] [1,] | ||||
| [timestamp] [2,] | ||||
| [timestamp] [2,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batches Started At: | ||||
| [timestamp] [0,] | ||||
| @@ -86,8 +86,5 @@ doggos [0,1,2,] | ||||
| [timestamp] [2,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### File Store: | ||||
| 00000000-0000-0000-0000-000000000003 | ||||
| 00000000-0000-0000-0000-000000000004 | ||||
| 00000000-0000-0000-0000-000000000005 | ||||
|  | ||||
| ---------------------------------------------------------------------- | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| --- | ||||
| source: crates/index-scheduler/src/scheduler/test_document_addition.rs | ||||
| snapshot_kind: text | ||||
| --- | ||||
| ### Autobatching Enabled = true | ||||
| ### Processing batch None: | ||||
| @@ -54,7 +53,7 @@ doggos: { number_of_documents: 10, field_distribution: {"doggo": 10, "id": 10} } | ||||
| [timestamp] [0,1,2,3,4,5,6,7,8,9,] | ||||
| ---------------------------------------------------------------------- | ||||
| ### All Batches: | ||||
| 0 {uid: 0, details: {"receivedDocuments":10,"indexedDocuments":10}, stats: {"totalNbTasks":10,"status":{"succeeded":10},"types":{"documentAdditionOrUpdate":10},"indexUids":{"doggos":10}}, } | ||||
| 0 {uid: 0, details: {"receivedDocuments":10,"indexedDocuments":10}, stats: {"totalNbTasks":10,"status":{"succeeded":10},"types":{"documentAdditionOrUpdate":10},"indexUids":{"doggos":10}}, stop reason: "batched all enqueued tasks", } | ||||
| ---------------------------------------------------------------------- | ||||
| ### Batch to tasks mapping: | ||||
| 0 [0,1,2,3,4,5,6,7,8,9,] | ||||
|   | ||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user