cholcombe973 / rusix

Distributed filesystem in Rust
Other
54 stars 11 forks source link

Basics: Finish RPC system #4

Open cholcombe973 opened 6 years ago

cholcombe973 commented 6 years ago

The RPC system currently consists of ZeroMQ + Protobuf+ Rendezvous hashing. In theory this should be enough I'm not certain if this will be the final implementation.

cholcombe973 commented 6 years ago

I added #11 to capture what I've learned over the past week or so in testing various serialization formats. Protobuf is fairly slow compared to Capnp. I'm planning on benchmarking capnp against flatbuffers to see which one comes out on top. I suspect flatbuffers but you never know.

cgmcintyr commented 5 years ago

Is there a to-do list for the RPC system?

RamakrishnaChilaka commented 5 years ago

@cholcombe973 , What RPC system did you finally choose ?

cholcombe973 commented 5 years ago

I think if I remember right I settled on flatbuffers as being the fastest rpc system but it required a lot of additional code to be written to make it into a fully functional rpc. The client_server branch has the last bit of code I worked on.

cholcombe973 commented 5 years ago

So after talking with Ramakrisha on gitter a bit I'm remembering where I left off. The RPC system in the client_server branch uses flatbuffers which I think is the fastest thing to use. I wanted to see if I could create just a minimal 1 call RPC that calls mkdir to validate things work. https://github.com/cholcombe973/rusix/compare/client_server#diff-86b6664f52f12928447466849606e520R44 I don't exactly remember where I left off though.

There's also been some developments with zmq and nng might be the better library to use now. The zmq author said there was a bunch of problems with zmq and went a different direction unfortunately.