存储Storage服务的疑问


https://docs.nebula-graph.com.cn/2.0.1/1.introduction/3.nebula-graph-architecture/4.storage-service/

Store Engine层 是Storage服务的最底层,是一个单机版本地存储引擎。
疑问一,是否可以这么理解:针对某一个space,在某一台机器里面Store Engine是一个RocksDB实例,不同的space,对应不同的Store Engine实例。

此外,blog里面提到:

每个Storage Server 中可以包含多个 Storage Engine, 每个 Storage Engine中可以包含多个Partition, 不同的Partition之间通过 Raft 协议进行一致性同步。每个 Partition 中既包含了 data,也包含了 index,同一个点或边的 data 和 index 将被存储到同一个 Partition 中

疑问二,Storage Engine可以包含多个partion,那每个Partition对应一个RocksDB的实例?

结合之前的帖子,每个space的wal子目录个数和partion个数是一一对应的

我感觉 每一个Partition 对应一个RocksDB的实例,某一个Storage Engine是对应某一个space下的多个RocksDB的实例的集合 不知道理解对不对
谢谢

1赞

每个Storage Server下包含多个Storage Engine;每个Storage Engine对应于一个rocksdb实例,且每个Storage Engine包含多个partition,也就是说,partition是一个逻辑的概念,多个partition被存储在一个rocksdb Engine中;每个partition有其独立的wal目录。

2赞

再请教一个问题,Multi Group Raft怎么划分的呢?按照不同的space划分吗?space空间下的partition个数也会考虑吗?

raft group是针对partition的, 每个partition及其副本构成一个raft group.

Raft
由于Storage服务需要支持集群分布式架构,所以基于Raft协议实现了Multi Group Raft,即每个分片的所有副本共同组成一个Raft group,其中一个副本是leader,其他副本是follower,从而实现强一致性和高可用性。
2赞

对某一个space 在某一台storage服务器上(只部署了一个storage服务) Store Engine层只有一个rocksdb实例(包含多个partition分片),不同的space是不同的rocksdb实例。 是这样的吗?
@jievince @bright-starry-sky 谢谢

根据这篇帖子里面讨论的内容 我感觉 官方的这个文档内容 可以迭代更新一版了
https://docs.nebula-graph.com.cn/2.0.1/1.introduction/3.nebula-graph-architecture/4.storage-service/

1赞

@bright-starry-sky @jievince 帮忙看看 谢谢

是这样的。其实从storage的data_path可以看出来,不同space的目录是相互独立的。

1赞

该主题在最后一个回复创建后7天后自动关闭。不再允许新的回复。

浙ICP备20010487号