
Building a Large-Scale Distributed Storage System Based on Raft - jinqueeny
https://www.cncf.io/blog/2019/11/04/building-a-large-scale-distributed-storage-system-based-on-raft/
======
shenli3514
We also introduced another role (Raft-learner) to the Raft group and make a
columnar extension. More details can be found here:
[https://pingcap.com/blog/delivering-real-time-analytics-
and-...](https://pingcap.com/blog/delivering-real-time-analytics-and-true-
htap-by-combining-columnstore-and-rowstore/)

------
kevan
I'm not quite following the ensuring secure execution of split operations
section. There's an incomplete sentence:

>The split process is coupled with network isolation, which can lead to very
complicated.

Maybe the second idea should be first, demonstrate the complexity of splits
and then presenting the solution?

~~~
c4pt0r
Thank you for pointing out, this place is indeed a typo, what I want to say
here is: because in our implementation, the split operation of a raft group is
treated as a special raft log, because raft is a quourum-based algorithm, so
in the case of network isolation, there may be followers that cannot receive
the split command. I added a practical example after the paragraph. The
solution to this problem is written behind, using the epoch + logic clock to
ensure that the system is able to confirm the newest leader for specific raft
group at any time.

------
toolslive
Typically, you want to be able to put multiple ranges on the same node, (for
example if you keep an extra index with a reverse mapping). If both the
forward mapping and the reverse mapping are located on the same node, you only
have a 'local' transaction.

~~~
shenli3514
Do you mean 1PC transaction?

