Commit 30f1ae6
committed
feat: add
This commit introduces the `ChangeMembers::Batch(Vec<ChangeMembers>)`
variant, allowing `Raft::change_membership()` to accept an arbitrary
series of membership configuration changes as a single input command.
This enables users to define complex membership changes by combining
multiple `ChangeMembers` operations.
### Example:
The following example demonstrates removing nodes 1 and 2, and adding
node 3 in a two-step joint membership configuration change:
```rust
my_raft.change_membership(ChangeMembers::Batch(vec![
ChangeMembers::RemoveVoters(btreeset! {1, 2}),
ChangeMembers::AddVoters(btreemap! {3 => ()}),
]));
```ChangeMembers::Batch(Vec<ChangeMembers>) for batched membership changes1 parent c09290f commit 30f1ae6
File tree
4 files changed
+94
-17
lines changed- openraft/src
- core/sm
- membership
4 files changed
+94
-17
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
55 | 55 | | |
56 | 56 | | |
57 | 57 | | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
58 | 64 | | |
59 | 65 | | |
60 | 66 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
| 23 | + | |
| 24 | + | |
23 | 25 | | |
24 | 26 | | |
25 | 27 | | |
| |||
43 | 45 | | |
44 | 46 | | |
45 | 47 | | |
46 | | - | |
47 | | - | |
48 | 48 | | |
49 | 49 | | |
50 | 50 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
315 | 315 | | |
316 | 316 | | |
317 | 317 | | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
| 321 | + | |
| 322 | + | |
| 323 | + | |
| 324 | + | |
| 325 | + | |
| 326 | + | |
| 327 | + | |
| 328 | + | |
| 329 | + | |
| 330 | + | |
| 331 | + | |
| 332 | + | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
| 336 | + | |
| 337 | + | |
| 338 | + | |
| 339 | + | |
| 340 | + | |
| 341 | + | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
318 | 345 | | |
319 | 346 | | |
320 | | - | |
| 347 | + | |
321 | 348 | | |
322 | 349 | | |
323 | | - | |
| 350 | + | |
| 351 | + | |
324 | 352 | | |
325 | 353 | | |
326 | 354 | | |
327 | 355 | | |
328 | 356 | | |
329 | 357 | | |
330 | 358 | | |
331 | | - | |
| 359 | + | |
| 360 | + | |
332 | 361 | | |
333 | 362 | | |
334 | 363 | | |
335 | | - | |
| 364 | + | |
| 365 | + | |
| 366 | + | |
| 367 | + | |
| 368 | + | |
| 369 | + | |
336 | 370 | | |
337 | | - | |
338 | 371 | | |
339 | 372 | | |
340 | 373 | | |
| |||
358 | 391 | | |
359 | 392 | | |
360 | 393 | | |
361 | | - | |
362 | | - | |
363 | | - | |
364 | | - | |
365 | | - | |
366 | | - | |
367 | | - | |
| 394 | + | |
| 395 | + | |
| 396 | + | |
| 397 | + | |
| 398 | + | |
| 399 | + | |
| 400 | + | |
368 | 401 | | |
369 | 402 | | |
370 | 403 | | |
| |||
597 | 630 | | |
598 | 631 | | |
599 | 632 | | |
| 633 | + | |
| 634 | + | |
| 635 | + | |
| 636 | + | |
| 637 | + | |
| 638 | + | |
| 639 | + | |
| 640 | + | |
| 641 | + | |
| 642 | + | |
| 643 | + | |
| 644 | + | |
| 645 | + | |
| 646 | + | |
| 647 | + | |
| 648 | + | |
| 649 | + | |
| 650 | + | |
| 651 | + | |
| 652 | + | |
| 653 | + | |
| 654 | + | |
| 655 | + | |
| 656 | + | |
| 657 | + | |
| 658 | + | |
| 659 | + | |
| 660 | + | |
| 661 | + | |
| 662 | + | |
| 663 | + | |
| 664 | + | |
| 665 | + | |
| 666 | + | |
| 667 | + | |
600 | 668 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
141 | 141 | | |
142 | 142 | | |
143 | 143 | | |
144 | | - | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
145 | 148 | | |
146 | 149 | | |
147 | 150 | | |
148 | 151 | | |
149 | 152 | | |
150 | 153 | | |
151 | | - | |
| 154 | + | |
152 | 155 | | |
153 | 156 | | |
154 | 157 | | |
| |||
172 | 175 | | |
173 | 176 | | |
174 | 177 | | |
175 | | - | |
| 178 | + | |
176 | 179 | | |
177 | 180 | | |
178 | 181 | | |
| |||
0 commit comments