Skip to content

Commit 6155117

Browse files
committed
change: remove EntryMembership
1 parent 6625484 commit 6155117

10 files changed

+60
-107
lines changed

async-raft/src/core/append_entries.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -362,7 +362,7 @@ impl<D: AppData, R: AppDataResponse, N: RaftNetwork<D>, S: RaftStorage<D, R>> Ra
362362
.filter_map(|ent| match &ent.payload {
363363
EntryPayload::Membership(conf) => Some(ActiveMembership {
364364
log_id: ent.log_id,
365-
membership: conf.membership.clone(),
365+
membership: conf.clone(),
366366
}),
367367
_ => None,
368368
})

async-raft/src/core/client.rs

+2-3
Original file line numberDiff line numberDiff line change
@@ -321,7 +321,7 @@ impl<'a, D: AppData, R: AppDataResponse, N: RaftNetwork<D>, S: RaftStorage<D, R>
321321
let res = match resp {
322322
Ok(data) => {
323323
let membership = if let EntryPayload::Membership(ref c) = entry.payload {
324-
Some(c.membership.clone())
324+
Some(c.clone())
325325
} else {
326326
None
327327
};
@@ -347,8 +347,7 @@ impl<'a, D: AppData, R: AppDataResponse, N: RaftNetwork<D>, S: RaftStorage<D, R>
347347

348348
pub fn handle_special_log(&mut self, entry: &Entry<D>) {
349349
match &entry.payload {
350-
EntryPayload::Membership(ref mem) => {
351-
let m = &mem.membership;
350+
EntryPayload::Membership(ref m) => {
352351
if m.is_in_joint_consensus() {
353352
// nothing to do
354353
} else {

async-raft/src/raft.rs

+3-10
Original file line numberDiff line numberDiff line change
@@ -597,7 +597,7 @@ pub enum EntryPayload<D: AppData> {
597597
Normal(D),
598598

599599
/// A config change log entry.
600-
Membership(EntryMembership),
600+
Membership(MembershipConfig),
601601
}
602602

603603
impl<D: AppData> MessageSummary for EntryPayload<D> {
@@ -606,19 +606,12 @@ impl<D: AppData> MessageSummary for EntryPayload<D> {
606606
EntryPayload::Blank => "blank".to_string(),
607607
EntryPayload::Normal(_n) => "normal".to_string(),
608608
EntryPayload::Membership(c) => {
609-
format!("config-change: {:?}", c.membership)
609+
format!("config-change: {:?}", c)
610610
}
611611
}
612612
}
613613
}
614614

615-
/// A log entry holding a config change.
616-
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
617-
pub struct EntryMembership {
618-
/// Details on the cluster's membership configuration.
619-
pub membership: MembershipConfig,
620-
}
621-
622615
//////////////////////////////////////////////////////////////////////////////////////////////////
623616

624617
/// The membership configuration of the cluster.
@@ -804,7 +797,7 @@ impl<D: AppData> ClientWriteRequest<D> {
804797

805798
/// Generate a new payload holding a config change.
806799
pub(crate) fn new_config(membership: MembershipConfig) -> Self {
807-
Self::new_base(EntryPayload::Membership(EntryMembership { membership }))
800+
Self::new_base(EntryPayload::Membership(membership))
808801
}
809802

810803
/// Generate a new blank payload.

async-raft/tests/append_updates_membership.rs

+6-11
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ use std::time::Duration;
44
use anyhow::Result;
55
use async_raft::raft::AppendEntriesRequest;
66
use async_raft::raft::Entry;
7-
use async_raft::raft::EntryMembership;
87
use async_raft::raft::EntryPayload;
98
use async_raft::raft::MembershipConfig;
109
use async_raft::AppData;
@@ -53,21 +52,17 @@ async fn append_updates_membership() -> Result<()> {
5352
ent(1, 1),
5453
Entry {
5554
log_id: LogId { term: 1, index: 2 },
56-
payload: EntryPayload::Membership(EntryMembership {
57-
membership: MembershipConfig {
58-
members: btreeset! {1,2},
59-
members_after_consensus: None,
60-
},
55+
payload: EntryPayload::Membership(MembershipConfig {
56+
members: btreeset! {1,2},
57+
members_after_consensus: None,
6158
}),
6259
},
6360
ent(1, 3),
6461
Entry {
6562
log_id: LogId { term: 1, index: 4 },
66-
payload: EntryPayload::Membership(EntryMembership {
67-
membership: MembershipConfig {
68-
members: btreeset! {1,2,3,4},
69-
members_after_consensus: None,
70-
},
63+
payload: EntryPayload::Membership(MembershipConfig {
64+
members: btreeset! {1,2,3,4},
65+
members_after_consensus: None,
7166
}),
7267
},
7368
ent(1, 5),

async-raft/tests/elect_compare_last_log.rs

+6-11
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ use std::time::Duration;
33

44
use anyhow::Result;
55
use async_raft::raft::Entry;
6-
use async_raft::raft::EntryMembership;
76
use async_raft::raft::EntryPayload;
87
use async_raft::raft::MembershipConfig;
98
use async_raft::storage::HardState;
@@ -45,11 +44,9 @@ async fn elect_compare_last_log() -> Result<()> {
4544

4645
sto0.append_to_log(&[&Entry {
4746
log_id: LogId { term: 2, index: 1 },
48-
payload: EntryPayload::Membership(EntryMembership {
49-
membership: MembershipConfig {
50-
members: btreeset! {0,1},
51-
members_after_consensus: None,
52-
},
47+
payload: EntryPayload::Membership(MembershipConfig {
48+
members: btreeset! {0,1},
49+
members_after_consensus: None,
5350
}),
5451
}])
5552
.await?;
@@ -66,11 +63,9 @@ async fn elect_compare_last_log() -> Result<()> {
6663
sto1.append_to_log(&[
6764
&Entry {
6865
log_id: LogId { term: 1, index: 1 },
69-
payload: EntryPayload::Membership(EntryMembership {
70-
membership: MembershipConfig {
71-
members: btreeset! {0,1},
72-
members_after_consensus: None,
73-
},
66+
payload: EntryPayload::Membership(MembershipConfig {
67+
members: btreeset! {0,1},
68+
members_after_consensus: None,
7469
}),
7570
},
7671
&Entry {

async-raft/tests/initialization.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ async fn initialization() -> Result<()> {
5959

6060
tracing::info!("--- check membership is replicated: id: {}, first log: {:?}", i, first);
6161
let mem = match first.unwrap().payload {
62-
EntryPayload::Membership(ref x) => x.membership.clone(),
62+
EntryPayload::Membership(ref x) => x.clone(),
6363
_ => {
6464
panic!("expect Membership payload")
6565
}

async-raft/tests/members_leader_fix_partial.rs

+3-6
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ use std::sync::Arc;
22

33
use anyhow::Result;
44
use async_raft::raft::Entry;
5-
use async_raft::raft::EntryMembership;
65
use async_raft::raft::EntryPayload;
76
use async_raft::raft::MembershipConfig;
87
use async_raft::Config;
@@ -44,11 +43,9 @@ async fn members_leader_fix_partial() -> Result<()> {
4443
term: 1,
4544
index: want + 1,
4645
},
47-
payload: EntryPayload::Membership(EntryMembership {
48-
membership: MembershipConfig {
49-
members: btreeset! {0},
50-
members_after_consensus: Some(btreeset! {0,1,2}),
51-
},
46+
payload: EntryPayload::Membership(MembershipConfig {
47+
members: btreeset! {0},
48+
members_after_consensus: Some(btreeset! {0,1,2}),
5249
}),
5350
}])
5451
.await?;

async-raft/tests/snapshot_overrides_membership.rs

+3-6
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ use std::time::Duration;
44
use anyhow::Result;
55
use async_raft::raft::AppendEntriesRequest;
66
use async_raft::raft::Entry;
7-
use async_raft::raft::EntryMembership;
87
use async_raft::raft::EntryPayload;
98
use async_raft::raft::MembershipConfig;
109
use async_raft::Config;
@@ -100,11 +99,9 @@ async fn snapshot_overrides_membership() -> Result<()> {
10099
prev_log_id: LogId::new(0, 0),
101100
entries: vec![Entry {
102101
log_id: LogId { term: 1, index: 1 },
103-
payload: EntryPayload::Membership(EntryMembership {
104-
membership: MembershipConfig {
105-
members: btreeset![2, 3],
106-
members_after_consensus: None,
107-
},
102+
payload: EntryPayload::Membership(MembershipConfig {
103+
members: btreeset![2, 3],
104+
members_after_consensus: None,
108105
}),
109106
}],
110107
leader_commit: 0,

memstore/src/lib.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -491,7 +491,7 @@ impl MemStore {
491491
it.find_map(|entry| match &entry.payload {
492492
EntryPayload::Membership(cfg) => Some(ActiveMembership {
493493
log_id: entry.log_id,
494-
membership: cfg.membership.clone(),
494+
membership: cfg.clone(),
495495
}),
496496
_ => None,
497497
})
@@ -728,7 +728,7 @@ impl RaftStorage<ClientRequest, ClientResponse> for MemStore {
728728
EntryPayload::Membership(ref mem) => {
729729
sm.last_membership = Some(ActiveMembership {
730730
log_id: entry.log_id,
731-
membership: mem.membership.clone(),
731+
membership: mem.clone(),
732732
});
733733
res.push(ClientResponse(None))
734734
}

memstore/src/test.rs

+33-56
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
use std::future::Future;
22
use std::marker::PhantomData;
33

4-
use async_raft::raft::EntryMembership;
54
use async_trait::async_trait;
65
use maplit::btreeset;
76

@@ -157,11 +156,9 @@ where
157156
},
158157
&Entry {
159158
log_id: LogId { term: 1, index: 2 },
160-
payload: EntryPayload::Membership(EntryMembership {
161-
membership: MembershipConfig {
162-
members: btreeset! {3,4,5},
163-
members_after_consensus: None,
164-
},
159+
payload: EntryPayload::Membership(MembershipConfig {
160+
members: btreeset! {3,4,5},
161+
members_after_consensus: None,
165162
}),
166163
},
167164
])
@@ -183,11 +180,9 @@ where
183180
store
184181
.append_to_log(&[&Entry {
185182
log_id: (1, 1).into(),
186-
payload: EntryPayload::Membership(EntryMembership {
187-
membership: MembershipConfig {
188-
members: btreeset! {1,2,3},
189-
members_after_consensus: None,
190-
},
183+
payload: EntryPayload::Membership(MembershipConfig {
184+
members: btreeset! {1,2,3},
185+
members_after_consensus: None,
191186
}),
192187
}])
193188
.await?;
@@ -208,11 +203,9 @@ where
208203
store
209204
.append_to_log(&[&Entry {
210205
log_id: LogId { term: 1, index: 3 },
211-
payload: EntryPayload::Membership(EntryMembership {
212-
membership: MembershipConfig {
213-
members: btreeset! {1,2,3},
214-
members_after_consensus: None,
215-
},
206+
payload: EntryPayload::Membership(MembershipConfig {
207+
members: btreeset! {1,2,3},
208+
members_after_consensus: None,
216209
}),
217210
}])
218211
.await?;
@@ -326,11 +319,9 @@ where
326319
},
327320
&Entry {
328321
log_id: LogId { term: 1, index: 2 },
329-
payload: EntryPayload::Membership(EntryMembership {
330-
membership: MembershipConfig {
331-
members: btreeset! {3,4,5},
332-
members_after_consensus: None,
333-
},
322+
payload: EntryPayload::Membership(MembershipConfig {
323+
members: btreeset! {3,4,5},
324+
members_after_consensus: None,
334325
}),
335326
},
336327
])
@@ -352,11 +343,9 @@ where
352343
store
353344
.append_to_log(&[&Entry {
354345
log_id: (1, 1).into(),
355-
payload: EntryPayload::Membership(EntryMembership {
356-
membership: MembershipConfig {
357-
members: btreeset! {1,2,3},
358-
members_after_consensus: None,
359-
},
346+
payload: EntryPayload::Membership(MembershipConfig {
347+
members: btreeset! {1,2,3},
348+
members_after_consensus: None,
360349
}),
361350
}])
362351
.await?;
@@ -377,11 +366,9 @@ where
377366
store
378367
.append_to_log(&[&Entry {
379368
log_id: LogId { term: 1, index: 3 },
380-
payload: EntryPayload::Membership(EntryMembership {
381-
membership: MembershipConfig {
382-
members: btreeset! {1,2,3},
383-
members_after_consensus: None,
384-
},
369+
payload: EntryPayload::Membership(MembershipConfig {
370+
members: btreeset! {1,2,3},
371+
members_after_consensus: None,
385372
}),
386373
}])
387374
.await?;
@@ -696,11 +683,9 @@ where
696683
store
697684
.apply_to_state_machine(&[&Entry {
698685
log_id: LogId { term: 1, index: 3 },
699-
payload: EntryPayload::Membership(EntryMembership {
700-
membership: MembershipConfig {
701-
members: btreeset! {1,2},
702-
members_after_consensus: None,
703-
},
686+
payload: EntryPayload::Membership(MembershipConfig {
687+
members: btreeset! {1,2},
688+
members_after_consensus: None,
704689
}),
705690
}])
706691
.await?;
@@ -1004,11 +989,9 @@ where
1004989
},
1005990
&Entry {
1006991
log_id: LogId { term: 1, index: 3 },
1007-
payload: EntryPayload::Membership(EntryMembership {
1008-
membership: MembershipConfig {
1009-
members: btreeset! {1,2,3},
1010-
members_after_consensus: None,
1011-
},
992+
payload: EntryPayload::Membership(MembershipConfig {
993+
members: btreeset! {1,2,3},
994+
members_after_consensus: None,
1012995
}),
1013996
},
1014997
])
@@ -1021,11 +1004,9 @@ where
10211004
},
10221005
&Entry {
10231006
log_id: LogId { term: 2, index: 2 },
1024-
payload: EntryPayload::Membership(EntryMembership {
1025-
membership: MembershipConfig {
1026-
members: btreeset! {3,4,5},
1027-
members_after_consensus: None,
1028-
},
1007+
payload: EntryPayload::Membership(MembershipConfig {
1008+
members: btreeset! {3,4,5},
1009+
members_after_consensus: None,
10291010
}),
10301011
},
10311012
])
@@ -1064,11 +1045,9 @@ where
10641045
},
10651046
&Entry {
10661047
log_id: LogId { term: 1, index: 3 },
1067-
payload: EntryPayload::Membership(EntryMembership {
1068-
membership: MembershipConfig {
1069-
members: btreeset! {1,2,3},
1070-
members_after_consensus: None,
1071-
},
1048+
payload: EntryPayload::Membership(MembershipConfig {
1049+
members: btreeset! {1,2,3},
1050+
members_after_consensus: None,
10721051
}),
10731052
},
10741053
])
@@ -1082,11 +1061,9 @@ where
10821061
},
10831062
&Entry {
10841063
log_id: LogId { term: 2, index: 2 },
1085-
payload: EntryPayload::Membership(EntryMembership {
1086-
membership: MembershipConfig {
1087-
members: btreeset! {3,4,5},
1088-
members_after_consensus: None,
1089-
},
1064+
payload: EntryPayload::Membership(MembershipConfig {
1065+
members: btreeset! {3,4,5},
1066+
members_after_consensus: None,
10901067
}),
10911068
},
10921069
])

0 commit comments

Comments
 (0)