lni / dragonboat

A feature complete and high performance multi-group Raft library in Go.
Apache License 2.0
5.06k stars 541 forks source link

a bit "high load" for raft running on-disk example on idling #294

Closed kolinfluence closed 1 year ago

kolinfluence commented 1 year ago

2% average on a laptop doing nothing needs lots of optimization. i think it's acceptable if it does 0.2-0.3% cpu time. need to shave 10x more.

  1. need "geo" aware "cluster" for this to work fantastic.

this project is great work. really hope to see it moving. if u have a sponsor location to buy coffees, will buy u some.

if geo aware is done, i can contribute code and help optimize this but since naming convention v4.0 is not set, i'm not able to help at this stage.

great work! hope to see v4.0 and geo feature out!

lni commented 1 year ago

Thanks for offering coffees, more coffees is always good. :) That being said, I'd like to see more users contributing to this project so we can move it forward together.

Would you like to do some profiling and see how we can reduce the load on idle? I have the feeling that go runtime used certain part of those cpu cycles on idle, then there might be some quick changes we can make to reduce some cycles on dragonboat's side.

Please feel free to ask questions when you start profiling.

kolinfluence commented 1 year ago

once v4.0 and "geo aware" by datacenter feature is out, will help with optimization.

at this stage, i see a few issues not suitable to my use case only now but otherwise, your direction is right in just making it extremely solid for enterprise raft implementation.

keeping up with ur good work, in 2-3 years time this dragonboat can be super solid.

lni commented 1 year ago

there is no plan to add such geo aware feature from my end.

when distributed across different data centers in geo distributed locations (across cities), epaxos style protocol with synchronized clocks is way more efficient. I rather building that (and I am building that) than providing band-aid feature for raft.

thanks for looking into dragonboat.

kolinfluence commented 1 year ago

i was only thinking cross datacenter geo distributed locations using dragonboat is fine with the other datacenter used as backup that's all. means inactive instance, more for backup purposes.

possible to do just that?

also your epaxos style protocol ... when is the roadmap for general availability?