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

用户可将一个图从shard服务器的物理存储投影到相应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().replace()
可修改已添加的shard服务器的副本信息:
修改shard服务器4
的副本信息:
alter().shard().replace({
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"}
]
})
删除shard服务器
使用语句alter().shard().delete()
可从meta服务器注销非活动或过时的shard服务器。
删除shard服务器1
:
alter().shard().delete({shardId: 1})