Paxos 共识算法的Rust实现

上传者: 38334677 | 上传时间: 2022-06-11 14:03:37 | 文件大小: 171KB | 文件类型: ZIP
Paxakos 是基于 Leslie Lamport 的Paxos的分布式共识算法的纯 Rust 实现。它使分布式系统能够一致地修改其网络中的共享状态,即使在出现故障的情况下也是如此 为了使用 Paxakos,需要实现特征 [ LogEntry]、[ State]、[ NodeInfo] 和Communicator。前两个描述了将在网络上复制的状态以及可用的操作。后者描述了网络中的节点以及它们之间的通信方式。 下面是和的两个部分实现。其他两个特征比较抽象,这里不再赘述。请参阅示例以获得更全面的信息

文件下载

资源详情

[{"title":"( 71 个子文件 171KB ) Paxos 共识算法的Rust实现","children":[{"title":"paxakos-master","children":[{"title":"paxakos","children":[{"title":"src","children":[{"title":"error.rs <span style='color:#111;'> 10.74KB </span>","children":null,"spread":false},{"title":"node","children":[{"title":"mod.rs <span style='color:#111;'> 14.70KB </span>","children":null,"spread":false},{"title":"inner.rs <span style='color:#111;'> 30.41KB </span>","children":null,"spread":false},{"title":"commits.rs <span style='color:#111;'> 4.18KB </span>","children":null,"spread":false},{"title":"shell.rs <span style='color:#111;'> 5.59KB </span>","children":null,"spread":false},{"title":"req_handler.rs <span style='color:#111;'> 2.31KB </span>","children":null,"spread":false},{"title":"info.rs <span style='color:#111;'> 877B </span>","children":null,"spread":false},{"title":"snapshot.rs <span style='color:#111;'> 6.37KB </span>","children":null,"spread":false},{"title":"builder.rs <span style='color:#111;'> 18.28KB </span>","children":null,"spread":false},{"title":"handle.rs <span style='color:#111;'> 6.77KB </span>","children":null,"spread":false},{"title":"status.rs <span style='color:#111;'> 625B </span>","children":null,"spread":false},{"title":"shutdown.rs <span style='color:#111;'> 1.56KB </span>","children":null,"spread":false},{"title":"state_keeper","children":[{"title":"error.rs <span style='color:#111;'> 3.23KB </span>","children":null,"spread":false},{"title":"mod.rs <span style='color:#111;'> 51.37KB </span>","children":null,"spread":false},{"title":"handle.rs <span style='color:#111;'> 9.88KB </span>","children":null,"spread":false},{"title":"msg.rs <span style='color:#111;'> 3.96KB </span>","children":null,"spread":false}],"spread":false},{"title":"core.rs <span style='color:#111;'> 10.49KB </span>","children":null,"spread":false}],"spread":false},{"title":"leases","children":[{"title":"releaser.rs <span style='color:#111;'> 11.56KB </span>","children":null,"spread":false},{"title":"leaser.rs <span style='color:#111;'> 11.90KB </span>","children":null,"spread":false},{"title":"mod.rs <span style='color:#111;'> 166B </span>","children":null,"spread":false},{"title":"master","children":[{"title":"voter.rs <span style='color:#111;'> 8.29KB </span>","children":null,"spread":false},{"title":"mod.rs <span style='color:#111;'> 13.49KB </span>","children":null,"spread":false},{"title":"communicator.rs <span style='color:#111;'> 5.03KB </span>","children":null,"spread":false}],"spread":true}],"spread":true},{"title":"util.rs <span style='color:#111;'> 3.68KB </span>","children":null,"spread":false},{"title":"autofill.rs <span style='color:#111;'> 15.32KB </span>","children":null,"spread":false},{"title":"log_entry.rs <span style='color:#111;'> 630B </span>","children":null,"spread":false},{"title":"voting.rs <span style='color:#111;'> 4.60KB </span>","children":null,"spread":false},{"title":"state.rs <span style='color:#111;'> 5.54KB </span>","children":null,"spread":false},{"title":"delegate.rs <span style='color:#111;'> 18.36KB </span>","children":null,"spread":false},{"title":"event.rs <span style='color:#111;'> 7.51KB </span>","children":null,"spread":false},{"title":"append.rs <span style='color:#111;'> 6.99KB </span>","children":null,"spread":false},{"title":"catch_up.rs <span style='color:#111;'> 7.62KB </span>","children":null,"spread":false},{"title":"executor.rs <span style='color:#111;'> 1.84KB </span>","children":null,"spread":false},{"title":"communicator.rs <span style='color:#111;'> 10.01KB </span>","children":null,"spread":false},{"title":"cluster.rs <span style='color:#111;'> 19.62KB </span>","children":null,"spread":false},{"title":"invocation.rs <span style='color:#111;'> 4.48KB </span>","children":null,"spread":false},{"title":"lib.rs <span style='color:#111;'> 24.57KB </span>","children":null,"spread":false},{"title":"retry.rs <span style='color:#111;'> 5.28KB </span>","children":null,"spread":false},{"title":"tracer.rs <span style='color:#111;'> 1.07KB </span>","children":null,"spread":false},{"title":"prototyping","children":[{"title":"mod.rs <span style='color:#111;'> 14.46KB </span>","children":null,"spread":false}],"spread":false},{"title":"heartbeats.rs <span style='color:#111;'> 12.70KB </span>","children":null,"spread":false},{"title":"decoration.rs <span style='color:#111;'> 1.08KB </span>","children":null,"spread":false},{"title":"verify.rs <span style='color:#111;'> 17.11KB </span>","children":null,"spread":false},{"title":"buffer.rs <span style='color:#111;'> 3.59KB </span>","children":null,"spread":false},{"title":"leadership","children":[{"title":"mod.rs <span style='color:#111;'> 131B </span>","children":null,"spread":false},{"title":"track.rs <span style='color:#111;'> 14.05KB </span>","children":null,"spread":false},{"title":"ensure.rs <span style='color:#111;'> 7.59KB </span>","children":null,"spread":false}],"spread":false},{"title":"applicable.rs <span style='color:#111;'> 4.05KB </span>","children":null,"spread":false}],"spread":false},{"title":"Cargo.toml <span style='color:#111;'> 1.39KB </span>","children":null,"spread":false}],"spread":true},{"title":"tests","children":[{"title":"tests","children":[{"title":"gaps.rs <span style='color:#111;'> 5.00KB </span>","children":null,"spread":false},{"title":"single_node.rs <span style='color:#111;'> 3.32KB </span>","children":null,"spread":false},{"title":"passive.rs <span style='color:#111;'> 9.00KB </span>","children":null,"spread":false},{"title":"tracer","children":[{"title":"mod.rs <span style='color:#111;'> 8.55KB </span>","children":null,"spread":false}],"spread":true},{"title":"builder.rs <span style='color:#111;'> 1.36KB </span>","children":null,"spread":false},{"title":"stress.rs <span style='color:#111;'> 9.35KB </span>","children":null,"spread":false},{"title":"shutdown.rs <span style='color:#111;'> 1.52KB </span>","children":null,"spread":false},{"title":"calc_app","children":[{"title":"mod.rs <span style='color:#111;'> 3.32KB </span>","children":null,"spread":false}],"spread":true}],"spread":true},{"title":"src","children":[{"title":"lib.rs <span style='color:#111;'> 47B </span>","children":null,"spread":false}],"spread":true},{"title":"Cargo.toml <span style='color:#111;'> 613B </span>","children":null,"spread":false}],"spread":true},{"title":"LICENSE <span style='color:#111;'> 34.33KB </span>","children":null,"spread":false},{"title":"CONTRIBUTING.md <span style='color:#111;'> 682B </span>","children":null,"spread":false},{"title":".rustfmt.toml <span style='color:#111;'> 50B </span>","children":null,"spread":false},{"title":"Cargo.toml <span style='color:#111;'> 90B </span>","children":null,"spread":false},{"title":"examples","children":[{"title":"chat","children":[{"title":"src","children":[{"title":"main.rs <span style='color:#111;'> 5.20KB </span>","children":null,"spread":false}],"spread":true},{"title":"Cargo.toml <span style='color:#111;'> 344B </span>","children":null,"spread":false}],"spread":true},{"title":"playground","children":[{"title":".prettierrc.toml <span style='color:#111;'> 57B </span>","children":null,"spread":false},{"title":"src","children":[{"title":"index.html <span style='color:#111;'> 49.85KB </span>","children":null,"spread":false},{"title":"lib.rs <span style='color:#111;'> 38.52KB </span>","children":null,"spread":false}],"spread":true},{"title":"Cargo.toml <span style='color:#111;'> 682B </span>","children":null,"spread":false}],"spread":true}],"spread":true},{"title":".gitignore <span style='color:#111;'> 30B </span>","children":null,"spread":false},{"title":"README.md <span style='color:#111;'> 14.02KB </span>","children":null,"spread":false}],"spread":true}],"spread":true}]

评论信息

免责申明

【只为小站】的资源来自网友分享,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,【只为小站】 无法对用户传输的作品、信息、内容的权属或合法性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论 【只为小站】 经营者是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。
本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二条之规定,若资源存在侵权或相关问题请联系本站客服人员,zhiweidada#qq.com,请把#换成@,本站将给予最大的支持与配合,做到及时反馈和处理。关于更多版权及免责申明参见 版权及免责申明