文档数据库服务 DDS-设计规范:分片设计规范

时间:2024-05-13 17:11:07

分片设计规范

对于使用DDS分片集群,建议尽可能的使用分片集合以充分利用性能,详情请参见设置数据分片以充分利用分片性能

分片集合使用上建议如下:

  • 对于大数据量(数据量过百万),并有较高读写请求的业务场景,数据量随着业务量增大而增大的,建议采用分片。
  • 对于采用hash分片的集合,需要根据业务后面实际数据量大小,采用预分片,提前预置chunk数量,减少自动均衡和分裂对业务运行造成影响。
  • 对于非空集合开启分片,应将均衡器的开启时间窗放在业务空闲时,避免分片间均衡数据与业务冲突影响性能。设置时间窗口的API接口详情请参见设置集群均衡活动时间窗
  • 需要基于分片键排序查询且增加数据时可以分布均匀建议使用范围分片,其他使用哈希分片。
  • 合理设计shard key,防止出现大量的数据使用相同shard key,导致出现jumbo chunk。
  • 使用分片集群,执行dropDatabase后,一定要执行flushRouterConfig命令,详情请参见如何规避dds mongos路由缓存缺陷
  • 业务的update请求需要注意与片键相适配。在使用分片表时,如果出现如下场景则update请求会报错,并返回“An upsert on a sharded collection must contain the shard key and have the simple collation”。
    • update请求的filter中未携带片键字段且选项multi:false
    • set中未携带片键字段且选项upsert:true
support.huaweicloud.com/devg-dds/dds_taps_0002.html