-
Notifications
You must be signed in to change notification settings - Fork 3.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Multiraft Implementation #20
Comments
What do you mean by multiraft? We have a new raft implementation here which might be of interest: etcd-io/etcd#874 |
Multiraft is the as-yet-unfinished raft implementation in https://github.com/cockroachdb/cockroach/tree/master/multiraft. It differs from most existing raft implementations in that it optimizes for the case where each server is a member of many (partially overlapping) consensus groups by e.g. consolidating heartbeats per pair of nodes. |
@bdarnell It would be great if we could work on a shared raft implementation with this feature in mind. |
Agreed. Please let me know what we can do to work together, if possible. |
@bdarnell Why you want to have some overlapped raft clusters rather than well-partitioned ones? |
@xiangli, "overlapped" in this context means that each node in the cluster With cockroach, we cache rpc connections between nodes and use the periodic On Wed, Jul 23, 2014 at 11:45 AM, Xiang Li [email protected] wrote:
|
@spencerkimball It seems like what exactly we did for our new raft. We do not trigger heartbeat/election inside raft. We do not have network layer inside raft. You can send |
Thanks for the interest; I'll definitely take a closer look at etcd's raft implementation (hashicorp's is on my list too). It would be great to collaborate on a single high-quality implementation. |
@bdarnell An update on this. We have merged our raft implementation and the separate WAL that is used by etcd over here: http://godoc.org/github.com/coreos/etcd/raft and here http://godoc.org/github.com/coreos/etcd/wal It would be great to get some feedback and perhaps work together. |
@philips Thanks for letting me know the etcd raft implementation have been merged. I've looked over it and I like a lot of the abstractions here (especially the way you batch up different kinds of updates in a single Ready struct. It took me while to convince myself that that was safe, but I think it's simpler than separating update channels for different types of events). That said, there are a few big things we need that aren't there yet:
This adds up to a sizable amount of complexity, although at least some of it would be useful for etcd and other projects as well. |
@bdarnell We are absolutely looking at online membership change and plan on doing that in the next week or so. The other two are things we would like to do but haven't yet. Working together on either of those two would be great. |
|
I'm closing this now that we've incorporated etcd's raft implementation; I'll open new issues for tracking the remaining work. |
removing wait for clear buffer
Pick up cockroachdb#20 which fixes a performance regression that caused range tombstones to be added to some sstables unnecessarily which in turn could cause compactions that are larger than necessary. Revert the workaround to `TestRocksDBDeleteRangeCompaction` which was made due to the now fixed bug. Release note: None
32007: c-deps: bump RocksDB to pick up perf fix r=benesch a=petermattis Pick up #20 which fixes a performance regression that caused range tombstones to be added to some sstables unnecessarily which in turn could cause compactions that are larger than necessary. Revert the workaround to `TestRocksDBDeleteRangeCompaction` which was made due to the now fixed bug. Release note: None Co-authored-by: Peter Mattis <[email protected]>
Pick up cockroachdb#20 which fixes a performance regression that caused range tombstones to be added to some sstables unnecessarily which in turn could cause compactions that are larger than necessary. Revert the workaround to `TestRocksDBDeleteRangeCompaction` which was made due to the now fixed bug. Release note: None
No description provided.
The text was updated successfully, but these errors were encountered: