最近、 仕事がピリっとしないからか、 趣味で分散ストレージでも作ってみようかなぁと思って色々と思考を巡らしている。 分散ストレージには大きく分けて2つの実装がある(と思う)。 1つは、どのデータがどこにあるかなどのメタデータを持つメタデータサーバを 保持し、そのメタデータサーバを参照・更新しながらレプリケーションや、ピースの分散を行うというタイプのもの。 もしこれをやるのであれば、メタデータはTiKVを使おうかなと考えていた。 TiKVはRustで実装された分散KVSだが、 レプリケーションを行う単位をRaftグループとして、これを複数持つMulti-Raftという構成をとっている。 外にはプレースメントドライバというプロセスがデータや負荷の分散具合を監視し、 必要に応じてマイグレーションを行っているらしい。 Raftを使っていれば、マイグレーションは簡単だろうと想像する。 もう1つは、そ