Project2中Raftlog和storage变量的问题

在raftlog结构体中,有一个变量为

// all entries that have not yet compact.
	entries []pb.Entry

在memoryStorage结构体中,有一个变量为

// ents[i] has raft log position i+snapshot.Metadata.Index
	ents []pb.Entry

请问在Raft层调用appendEntries等函数,获得commit等变量时,是不是都在log.entries上操作? 那这样的话,storage中的ents的作用是什么呢?

1 个赞

Raft层调用appendEntries等函数 是在log.entries上的操作。

memoryStorage是测试需要用到的,假装是写入到了底层数据库中,进行了持久化的操作。

所以可以认为是 memory.ents 是 raft.entries 的持久化存储。

3 个赞

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。