openraft 0.10.0-alpha.18

Advanced Raft consensus
Documentation
extern crate test;

use maplit::btreeset;
use test::Bencher;
use test::black_box;

use crate::Membership;
use crate::engine::testing::UTConfig;
use crate::quorum::QuorumSet;
use crate::type_config::alias::EffectiveMembershipOf;

#[bench]
fn m12345_ids_slice(b: &mut Bencher) {
    let m = Membership::<u64, ()>::new_with_defaults(vec![btreeset! {1,2,3,4,5}], None);
    let m = EffectiveMembershipOf::<UTConfig>::new(None, m);
    let x = [1, 2, 3, 6, 7];

    b.iter(|| m.is_quorum(black_box(x.iter())))
}

#[bench]
fn m12345_ids_btreeset(b: &mut Bencher) {
    let m = Membership::<u64, ()>::new_with_defaults(vec![btreeset! {1,2,3,4,5}], None);
    let m = EffectiveMembershipOf::<UTConfig>::new(None, m);
    let x = btreeset! {1, 2, 3, 6, 7};

    b.iter(|| m.is_quorum(black_box(x.iter())))
}

#[bench]
fn m12345_678_ids_slice(b: &mut Bencher) {
    let m = Membership::<u64, ()>::new_with_defaults(vec![btreeset! {1,2,3,4,5}], None);
    let m = EffectiveMembershipOf::<UTConfig>::new(None, m);
    let x = [1, 2, 3, 6, 7];

    b.iter(|| m.is_quorum(black_box(x.iter())))
}

#[bench]
fn m12345_678_ids_btreeset(b: &mut Bencher) {
    let m = Membership::<u64, ()>::new_with_defaults(vec![btreeset! {1,2,3,4,5}], None);
    let m = EffectiveMembershipOf::<UTConfig>::new(None, m);
    let x = btreeset! {1, 2, 3, 6, 7};

    b.iter(|| m.is_quorum(black_box(x.iter())))
}