mirror of
https://github.com/meilisearch/meilisearch.git
synced 2025-10-17 09:06:27 +00:00
Remove duplicated logic in auto batching of tasks
This commit is contained in:
@@ -25,7 +25,6 @@ enum AutobatchKind {
|
|||||||
IndexDeletion,
|
IndexDeletion,
|
||||||
IndexUpdate,
|
IndexUpdate,
|
||||||
IndexSwap,
|
IndexSwap,
|
||||||
IndexCompaction,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
impl AutobatchKind {
|
impl AutobatchKind {
|
||||||
@@ -69,14 +68,14 @@ impl From<KindWithContent> for AutobatchKind {
|
|||||||
KindWithContent::IndexCreation { .. } => AutobatchKind::IndexCreation,
|
KindWithContent::IndexCreation { .. } => AutobatchKind::IndexCreation,
|
||||||
KindWithContent::IndexUpdate { .. } => AutobatchKind::IndexUpdate,
|
KindWithContent::IndexUpdate { .. } => AutobatchKind::IndexUpdate,
|
||||||
KindWithContent::IndexSwap { .. } => AutobatchKind::IndexSwap,
|
KindWithContent::IndexSwap { .. } => AutobatchKind::IndexSwap,
|
||||||
KindWithContent::IndexCompaction { .. } => AutobatchKind::IndexCompaction,
|
KindWithContent::IndexCompaction { .. }
|
||||||
KindWithContent::TaskCancelation { .. }
|
| KindWithContent::TaskCancelation { .. }
|
||||||
| KindWithContent::TaskDeletion { .. }
|
| KindWithContent::TaskDeletion { .. }
|
||||||
| KindWithContent::DumpCreation { .. }
|
| KindWithContent::DumpCreation { .. }
|
||||||
| KindWithContent::Export { .. }
|
| KindWithContent::Export { .. }
|
||||||
| KindWithContent::UpgradeDatabase { .. }
|
| KindWithContent::UpgradeDatabase { .. }
|
||||||
| KindWithContent::SnapshotCreation => {
|
| KindWithContent::SnapshotCreation => {
|
||||||
panic!("The autobatcher should never be called with tasks that don't apply to an index.")
|
panic!("The autobatcher should never be called with tasks with special priority or that don't apply to an index.")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -120,9 +119,6 @@ pub enum BatchKind {
|
|||||||
IndexSwap {
|
IndexSwap {
|
||||||
id: TaskId,
|
id: TaskId,
|
||||||
},
|
},
|
||||||
IndexCompaction {
|
|
||||||
id: TaskId,
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
|
|
||||||
impl BatchKind {
|
impl BatchKind {
|
||||||
@@ -188,13 +184,6 @@ impl BatchKind {
|
|||||||
)),
|
)),
|
||||||
false,
|
false,
|
||||||
),
|
),
|
||||||
K::IndexCompaction => (
|
|
||||||
Break((
|
|
||||||
BatchKind::IndexCompaction { id: task_id },
|
|
||||||
BatchStopReason::TaskCannotBeBatched { kind, id: task_id },
|
|
||||||
)),
|
|
||||||
false,
|
|
||||||
),
|
|
||||||
K::DocumentClear => (Continue(BatchKind::DocumentClear { ids: vec![task_id] }), false),
|
K::DocumentClear => (Continue(BatchKind::DocumentClear { ids: vec![task_id] }), false),
|
||||||
K::DocumentImport { allow_index_creation, primary_key: pk }
|
K::DocumentImport { allow_index_creation, primary_key: pk }
|
||||||
if primary_key.is_none() || pk.is_none() || primary_key == pk.as_deref() =>
|
if primary_key.is_none() || pk.is_none() || primary_key == pk.as_deref() =>
|
||||||
@@ -300,7 +289,7 @@ impl BatchKind {
|
|||||||
|
|
||||||
match (self, autobatch_kind) {
|
match (self, autobatch_kind) {
|
||||||
// We don't batch any of these operations
|
// We don't batch any of these operations
|
||||||
(this, K::IndexCreation | K::IndexUpdate | K::IndexSwap | K::DocumentEdition | K::IndexCompaction) => {
|
(this, K::IndexCreation | K::IndexUpdate | K::IndexSwap | K::DocumentEdition) => {
|
||||||
Break((this, BatchStopReason::TaskCannotBeBatched { kind, id }))
|
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.
|
// We must not batch tasks that don't have the same index creation rights if the index doesn't already exists.
|
||||||
@@ -497,7 +486,6 @@ impl BatchKind {
|
|||||||
| BatchKind::IndexDeletion { .. }
|
| BatchKind::IndexDeletion { .. }
|
||||||
| BatchKind::IndexUpdate { .. }
|
| BatchKind::IndexUpdate { .. }
|
||||||
| BatchKind::IndexSwap { .. }
|
| BatchKind::IndexSwap { .. }
|
||||||
| BatchKind::IndexCompaction { .. }
|
|
||||||
| BatchKind::DocumentEdition { .. },
|
| BatchKind::DocumentEdition { .. },
|
||||||
_,
|
_,
|
||||||
) => {
|
) => {
|
||||||
|
@@ -437,12 +437,6 @@ impl IndexScheduler {
|
|||||||
current_batch.processing(Some(&mut task));
|
current_batch.processing(Some(&mut task));
|
||||||
Ok(Some(Batch::IndexSwap { task }))
|
Ok(Some(Batch::IndexSwap { task }))
|
||||||
}
|
}
|
||||||
BatchKind::IndexCompaction { id } => {
|
|
||||||
let mut task =
|
|
||||||
self.queue.tasks.get_task(rtxn, id)?.ok_or(Error::CorruptedTaskQueue)?;
|
|
||||||
current_batch.processing(Some(&mut task));
|
|
||||||
Ok(Some(Batch::IndexCompaction { index_uid, task }))
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user