概述
Shard服务器是嬴图Powerhouse (v5) 架构的一个重要组件,通常由多个服务器组成,专用于分布式图数据存储和计算。这种设计实现了横向扩展,同时提供了极具竞争力的性能表现。
每个分片支持多副本数据存储。在以下三分片设置中,分片1
和2
各有三个副本,而分片3
有两个副本。图集分布在这些分片中,其中Graph_1
存储在所有三个分片,Graph_2
和Graph_3
存储在部分分片,而Graph_4
存储在单个分片。

你可以将一个图集shard服务器的物理存储投影到各自的内存中,从而创建分布式投影。分布式投影上可以执行图算法。详情请参考管理分布式投影。
显示shard服务器
获取所有shard服务器的信息:
show().shard()
每个shard服务器返回的详细信息包括:
字段 |
描述 |
---|---|
shardId |
每个shard服务器的唯一标识符,通常按顺序编号(1,2,3,…) |
shardStatus |
Shard服务器当前状态,包括ACTIVE 和DEAD |
replicas |
Shard服务器的副本。每个副本包括:
|
添加shard服务器
成功部署新的shard服务器后,必须使用语句alter().shard().add()
将其注册至meta服务器,在系统能够识别该shard服务器后才能使用它。
以下示例添加shard服务器4
及其三个副本:
alter().shard().add({
shardId: 4,
replicas: [
{addr: "127.0.0.1:40061", streamAddr: "127.0.0.1:40023"},
{addr: "127.0.0.2:40061", streamAddr: "127.0.0.2:40023"},
{addr: "127.0.0.3:40061", streamAddr: "127.0.0.3:40023"}
]
})
删除shard服务器
可以使用语句alter().shard().delete()
从meta服务器注销非活动或过时的shard服务器。
以下示例删除shardId
为1的shard服务器:
alter().shard().delete({shardId: 1})