/sks

Primary LanguageGo

sks

一个分布式的kv服务。大部分代码来自proglog,它是Distributed Services with Go的项目源码。

Raft

使用etcd-raft来实现一致性。书上使用的hashicorp-raft,有以下问题:

  • 无法扩展对ConfChange这里消息的应用。hashicorp的实现中,消息体只有node的地址,没有端口信息。这样应用监听到有node加入/离开到集群,但是无法确定应用的端口。 书上使用连接复用来解决这个问题。
  • 没有etcd的实现使用广泛

计划

  • raft集成
    • 单节点使用。通过proposeC提交消息,通过commitC应用消息
    • 单节点wal
    • 单节点快照
    • 多节点使用、wal和快照