概述
分片服务器是嬴图Powerhouse (v5)架构的一个重要组件,通常由多个服务器组成,专用于分布式图数据存储和计算。这种设计实现了横向扩展,同时提供了极具竞争力的性能表现。
每个分片支持多副本数据存储。在以下三分片设置中,分片1
和2
各有三个副本,而分片3
有两个副本。图集分布在这些分片中,其中Graph_1
存储在所有三个分片,Graph_2
和Graph_3
存储在部分分片,而Graph_4
存储在单个分片。
将分片服务器物理存储中的图集投影至内存中,就能得到分布式投影。图算法可以在分布式投影上以更高的性能执行。
显示分片服务器
获取所有分片服务器的信息:
show().shard()
每个分片服务器返回的详细信息包括:
字段 |
描述 |
---|---|
shardId |
每个分片服务器的唯一标识符,通常按顺序编号(1,2,3,…) |
shardStatus |
分片服务器的当前状态,包括ACTIVE 和DEAD |
replicas |
分片服务器的副本。每个副本包括:
|
添加分片服务器
成功部署新的分片服务器后,必须使用语句alter().shard().add()
将其注册至meta服务器,在系统能够识别该分片服务器后才能使用它。
以下示例添加分片服务器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"}
]
})
删除分片服务器
可以使用语句alter().shard().delete()
从meta服务器注销非活动或过时的分片服务器。
以下示例删除shardId
为1的分片服务器:
alter().shard().delete({shardId: 1})