Skip to content

Commit be933c3

Browse files
committed
chore: codefmt
1 parent 6a37789 commit be933c3

File tree

7 files changed

+58
-59
lines changed

7 files changed

+58
-59
lines changed

src/meta/app/src/principal/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ pub use task::TaskDependentKey;
101101
pub use task::TaskDependentValue;
102102
pub use task::TaskMessage;
103103
pub use task::TaskRun;
104-
pub use task::TaskStateValue;
104+
pub use task::TaskSucceededStateValue;
105105
pub use task::WarehouseOptions;
106106
pub use task_ident::TaskIdent;
107107
pub use task_ident::TaskIdentRaw;

src/meta/app/src/principal/task.rs

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -175,21 +175,22 @@ impl TaskMessage {
175175
}
176176

177177
#[derive(Debug, Clone, PartialEq)]
178-
pub struct TaskStateKey {
179-
pub current: String,
180-
pub next: String,
178+
pub struct TaskSucceededStateKey {
179+
pub before_task: String,
180+
pub after_task: String,
181181
}
182182

183-
impl TaskStateKey {
184-
pub fn new(current: String, next: String) -> Self {
185-
Self { current, next }
183+
impl TaskSucceededStateKey {
184+
pub fn new(before_task: String, after_task: String) -> Self {
185+
Self {
186+
before_task,
187+
after_task,
188+
}
186189
}
187190
}
188191

189192
#[derive(Debug, Clone, PartialEq)]
190-
pub struct TaskStateValue {
191-
pub is_succeeded: bool,
192-
}
193+
pub struct TaskSucceededStateValue;
193194

194195
#[derive(Debug, Clone, Copy, PartialEq)]
195196
pub enum DependentType {
@@ -218,22 +219,25 @@ mod kvapi_key_impl {
218219
use databend_common_meta_kvapi::kvapi::KeyError;
219220
use databend_common_meta_kvapi::kvapi::KeyParser;
220221

221-
use crate::principal::task::TaskStateKey;
222+
use crate::principal::task::TaskSucceededStateKey;
222223
use crate::principal::DependentType;
223224
use crate::principal::TaskDependentKey;
224225

225-
impl kvapi::KeyCodec for TaskStateKey {
226+
impl kvapi::KeyCodec for TaskSucceededStateKey {
226227
fn encode_key(&self, b: KeyBuilder) -> KeyBuilder {
227-
b.push_str(self.current.as_str())
228-
.push_str(self.next.as_str())
228+
b.push_str(self.before_task.as_str())
229+
.push_str(self.after_task.as_str())
229230
}
230231

231232
fn decode_key(parser: &mut KeyParser) -> Result<Self, KeyError>
232233
where Self: Sized {
233-
let current = parser.next_str()?;
234-
let next = parser.next_str()?;
234+
let before_task = parser.next_str()?;
235+
let after_task = parser.next_str()?;
235236

236-
Ok(Self { current, next })
237+
Ok(Self {
238+
before_task,
239+
after_task,
240+
})
237241
}
238242
}
239243

src/meta/app/src/principal/task_state_ident.rs

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -14,39 +14,43 @@
1414

1515
use crate::tenant_key::ident::TIdent;
1616

17-
pub type TaskStateIdent = TIdent<Resource, TaskStateKey>;
18-
19-
impl TaskStateIdent {
20-
pub fn new(tenant: impl ToTenant, current: impl ToString, next: impl ToString) -> Self {
21-
TaskStateIdent::new_generic(
17+
pub type TaskSucceededStateIdent = TIdent<Resource, TaskSucceededStateKey>;
18+
19+
impl TaskSucceededStateIdent {
20+
pub fn new(
21+
tenant: impl ToTenant,
22+
before_task: impl ToString,
23+
after_task: impl ToString,
24+
) -> Self {
25+
TaskSucceededStateIdent::new_generic(
2226
tenant,
23-
TaskStateKey::new(current.to_string(), next.to_string()),
27+
TaskSucceededStateKey::new(before_task.to_string(), after_task.to_string()),
2428
)
2529
}
2630
}
2731

2832
pub use kvapi_impl::Resource;
2933

30-
use crate::principal::task::TaskStateKey;
34+
use crate::principal::task::TaskSucceededStateKey;
3135
use crate::tenant::ToTenant;
3236

3337
mod kvapi_impl {
3438
use databend_common_meta_kvapi::kvapi;
3539

36-
use crate::principal::task::TaskStateValue;
37-
use crate::principal::task_state_ident::TaskStateIdent;
40+
use crate::principal::task_state_ident::TaskSucceededStateIdent;
41+
use crate::principal::TaskSucceededStateValue;
3842
use crate::tenant_key::resource::TenantResource;
3943

4044
pub struct Resource;
4145
impl TenantResource for Resource {
4246
const PREFIX: &'static str = "__fd_task_states";
43-
const TYPE: &'static str = "TaskStateIdent";
47+
const TYPE: &'static str = "TaskSucceededStateIdent";
4448
const HAS_TENANT: bool = true;
45-
type ValueType = TaskStateValue;
49+
type ValueType = TaskSucceededStateValue;
4650
}
4751

48-
impl kvapi::Value for TaskStateValue {
49-
type KeyType = TaskStateIdent;
52+
impl kvapi::Value for TaskSucceededStateValue {
53+
type KeyType = TaskSucceededStateIdent;
5054

5155
fn dependency_keys(&self, _key: &Self::KeyType) -> impl IntoIterator<Item = String> {
5256
[]

src/meta/proto-conv/src/task_from_to_protobuf_impl.rs

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -219,25 +219,22 @@ impl FromToProto for mt::TaskDependentValue {
219219
}
220220
}
221221

222-
impl FromToProto for mt::TaskStateValue {
222+
impl FromToProto for mt::TaskSucceededStateValue {
223223
type PB = pb::TaskStateValue;
224224

225225
fn get_pb_ver(p: &Self::PB) -> u64 {
226226
p.ver
227227
}
228228

229-
fn from_pb(p: Self::PB) -> Result<Self, Incompatible>
229+
fn from_pb(_p: Self::PB) -> Result<Self, Incompatible>
230230
where Self: Sized {
231-
Ok(Self {
232-
is_succeeded: p.is_succeeded,
233-
})
231+
Ok(Self)
234232
}
235233

236234
fn to_pb(&self) -> Result<Self::PB, Incompatible> {
237235
Ok(pb::TaskStateValue {
238236
ver: VER,
239237
min_reader_ver: MIN_READER_VER,
240-
is_succeeded: self.is_succeeded,
241238
})
242239
}
243240
}

src/meta/proto-conv/tests/it/v141_task_state.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@ use crate::common;
2121

2222
#[test]
2323
fn test_decode_v141_task_state() -> anyhow::Result<()> {
24-
let task_state_v141 = vec![8, 1, 160, 6, 141, 1, 168, 6, 24];
24+
let task_state_v141 = vec![160, 6, 141, 1, 168, 6, 24];
2525

26-
let want = || mt::TaskStateValue { is_succeeded: true };
26+
let want = || mt::TaskSucceededStateValue;
2727
common::test_pb_from_to(func_name!(), want())?;
2828
common::test_load_old(func_name!(), task_state_v141.as_slice(), 141, want())?;
2929

src/meta/protos/proto/task.proto

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,8 +82,6 @@ message Task {
8282
message TaskStateValue {
8383
uint64 ver = 100;
8484
uint64 min_reader_ver = 101;
85-
86-
bool is_succeeded = 1;
8785
}
8886

8987
message TaskDependentValue {

src/query/management/src/task/task_mgr.rs

Lines changed: 15 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,15 @@ use databend_common_ast::ast::ScheduleOptions;
2323
use databend_common_meta_api::kv_pb_api::KVPbApi;
2424
use databend_common_meta_api::kv_pb_api::UpsertPB;
2525
use databend_common_meta_api::txn_cond_eq_seq;
26+
use databend_common_meta_api::txn_op_del;
2627
use databend_common_meta_api::util::txn_put_pb;
2728
use databend_common_meta_api::SchemaApi;
2829
use databend_common_meta_app::principal::task;
2930
use databend_common_meta_app::principal::task::TaskMessage;
30-
use databend_common_meta_app::principal::task::TaskStateValue;
31+
use databend_common_meta_app::principal::task::TaskSucceededStateValue;
3132
use databend_common_meta_app::principal::task_dependent_ident::TaskDependentIdent;
3233
use databend_common_meta_app::principal::task_message_ident::TaskMessageIdent;
33-
use databend_common_meta_app::principal::task_state_ident::TaskStateIdent;
34+
use databend_common_meta_app::principal::task_state_ident::TaskSucceededStateIdent;
3435
use databend_common_meta_app::principal::ScheduleType;
3536
use databend_common_meta_app::principal::Status;
3637
use databend_common_meta_app::principal::Task;
@@ -40,16 +41,16 @@ use databend_common_meta_app::tenant::Tenant;
4041
use databend_common_meta_kvapi::kvapi;
4142
use databend_common_meta_kvapi::kvapi::DirName;
4243
use databend_common_meta_kvapi::kvapi::Key;
44+
use databend_common_meta_types::txn_condition::Target;
45+
use databend_common_meta_types::ConditionResult;
4346
use databend_common_meta_types::MatchSeq;
4447
use databend_common_meta_types::MetaError;
4548
use databend_common_meta_types::TxnCondition;
4649
use databend_common_meta_types::TxnOp;
4750
use databend_common_meta_types::TxnRequest;
4851
use databend_common_meta_types::With;
49-
use databend_common_proto_conv::FromToProto;
5052
use futures::StreamExt;
5153
use futures::TryStreamExt;
52-
use prost::Message;
5354
use seq_marked::SeqValue;
5455

5556
use crate::task::errors::TaskApiError;
@@ -407,7 +408,7 @@ impl TaskMgr {
407408
));
408409
let mut stream = self
409410
.kv_api
410-
.list_pb_keys(&DirName::new(TaskStateIdent::new(
411+
.list_pb_keys(&DirName::new(TaskSucceededStateIdent::new(
411412
&self.tenant,
412413
task_name,
413414
"",
@@ -456,10 +457,6 @@ impl TaskMgr {
456457
task_name: &str,
457458
) -> Result<Result<Vec<String>, TaskError>, TaskApiError> {
458459
let task_before_ident = TaskDependentIdent::new_before(&self.tenant, task_name);
459-
let succeeded_value = TaskStateValue { is_succeeded: true };
460-
let not_succeeded_value = TaskStateValue {
461-
is_succeeded: false,
462-
};
463460

464461
let Some(task_before_dependent) = self.kv_api.get_pb(&task_before_ident).await? else {
465462
return Ok(Ok(Vec::new()));
@@ -478,25 +475,24 @@ impl TaskMgr {
478475
};
479476
let target_after = &target_after_ident.name().source;
480477
let this_task_to_target_state =
481-
TaskStateIdent::new(&self.tenant, task_name, target_after);
478+
TaskSucceededStateIdent::new(&self.tenant, task_name, target_after);
482479
let mut request = TxnRequest::new(vec![], vec![]).with_else(vec![txn_put_pb(
483480
&this_task_to_target_state,
484-
&succeeded_value,
481+
&TaskSucceededStateValue,
485482
)?]);
486483

487484
for before_target_after in target_after_dependent.0.iter() {
488485
let task_ident =
489-
TaskStateIdent::new(&self.tenant, before_target_after, target_after);
486+
TaskSucceededStateIdent::new(&self.tenant, before_target_after, target_after);
490487
// Only care about the predecessors of this task's successor tasks, excluding this task itself.
491488
if before_target_after != task_name {
492-
request.condition.push(TxnCondition::eq_value(
493-
task_ident.to_string_key(),
494-
succeeded_value.to_pb()?.encode_to_vec(),
495-
));
489+
request.condition.push(TxnCondition {
490+
key: task_ident.to_string_key(),
491+
expected: ConditionResult::Gt as i32,
492+
target: Some(Target::Seq(0)),
493+
});
496494
}
497-
request
498-
.if_then
499-
.push(txn_put_pb(&task_ident, &not_succeeded_value)?);
495+
request.if_then.push(txn_op_del(&task_ident));
500496
}
501497
let reply = self.kv_api.transaction(request).await?;
502498

0 commit comments

Comments
 (0)