Skip to content
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

Supporting parallel raft #399

Open
BusyJay opened this issue Sep 23, 2020 · 6 comments
Open

Supporting parallel raft #399

BusyJay opened this issue Sep 23, 2020 · 6 comments
Labels
Feature Related to a major feature.

Comments

@BusyJay
Copy link
Member

BusyJay commented Sep 23, 2020

Is your feature request related to a problem? Please describe.
Paper introduces a mechanism that allows applying raft logs out of order. Quotes from the paper:

. As the I/O depth increases, the performance gap between two protocols becomes wider. When I/O depth grows to 32, the
latency of Raft is approximately 2.5X times of the latency of ParallelRaft, with less than half of the IOPS ParallelRaft achieves.

This feature is also useful in TiKV.

  1. TiKV already have memory locks for transaction writes, so the dependency between raft entries are already known.
  2. If we support multi-range in the future, each range is independent by design, which can reduce the latency and even make it possible to scale vertically in single group.
@BusyJay BusyJay added the Feature Related to a major feature. label Sep 23, 2020
@Fullstop000
Copy link
Member

Fullstop000 commented Sep 24, 2020

If we support multi-range in the future, each range is independent by design,

What does multi-range mean?

@BusyJay
Copy link
Member Author

BusyJay commented Sep 24, 2020

It means single raft group manages multiple ranges.

@Fullstop000
Copy link
Member

It means single raft group manages multiple ranges.

Only set up a single raft group but serve the commands and replication for multiple regions?

@BusyJay
Copy link
Member Author

BusyJay commented Sep 24, 2020

Yes, exactly.

@breezewish
Copy link
Member

https://zhuanlan.zhihu.com/p/228335745 may be helpful which provides a TLA+ formal verification, as well as a detailed explanation for the original algorithm.

@gengliqi
Copy link
Member

https://zhuanlan.zhihu.com/p/228335745 may be helpful which provides a TLA+ formal verification, as well as a detailed explanation for the original algorithm.

I have seen it yesterday. What a coincidence!🤣

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Feature Related to a major feature.
Projects
None yet
Development

No branches or pull requests

4 participants