项目作者: pariahGH

项目描述 :
Client for testing distributed systems, passing messages over Unix sockets instead of IP ports.
高级语言: Rust
项目地址: git://github.com/pariahGH/distributed_network_tester.git
创建时间: 2019-01-05T18:21:41Z
项目社区:https://github.com/pariahGH/distributed_network_tester

开源协议:MIT License

下载


This originally started as a project to learn Rust, but I think it would be neat to be able to test a distributed system with hundreds of thousands of clients without needing VMs or containers or anything - just a really, really high file descriptor limit. You can only have ~64k ish TCP ports on localhost, but you can have hundreds of thousands of Unix sockets. Assuming you have sufficient RAM of course.

Not sure yet if RAM will become bottleneck before I even reach 64k clients, rendering the whole thing possibly moot depending on where exactly the bottleneck hits, but then thats why we just dive in blindly and see what happens, because what’s the worst that could happen? have the scientific method isn’t it?

At some point I plan to introduce the ability to affect communication between clients by introducing an intermediary that will emulate a realistic network topology and support stuff like dropping arbitrary messages at random, isolating whole blocks from each other, etc so that I can really play with how various distributed mechanisms react to real world layer 1-3 (or 4) failures, something that I think isn’t really talked about much in the cryptocurrency space (for example), at least not at the power consumer/enthusiast/semi-pro level.