Cassandra单分区存储1MB blob合理性及最优分区大小相关咨询
Cassandra 1MB Blob 存储合理性与分区大小规范
1MB Blob 存储合理性结论
1MB 大小的单分区 Blob 在 Cassandra 中完全合理,方案一(直接存1MB Blob,总分区6000万)是更适配你场景的选择,理由如下:
- Cassandra 官方对单分区的大小容忍上限远高于1MB,你当前的分区大小远远低于风险阈值,不存在额外读写损耗
- 你的场景所有查询都是主键直接命中单分区,读路径非常短,1MB 数据的单次查询延迟远低于拆分后需要读上千个小分区的延迟
- 方案二拆分出6亿+的1KB小分区会带来严重的额外开销:布隆过滤器、分区索引等元数据的内存占用会提升10倍以上,单次查询需要协调上千个分区请求,一致性校验、网络开销都会指数级上升,完全得不偿失
Cassandra 最优分区大小规范
Cassandra 社区和官方给出的分区大小推荐区间如下:
- 最优区间:10MB ~ 100MB,这个区间内分区读写性能、元数据开销、压缩效率、故障恢复速度的综合表现最好
- 安全上限:不超过1GB,超过1GB的分区会出现 Tombstone 清理缓慢、读写放大升高、节点数据同步耗时过长等问题,非特殊场景不建议触碰
- 不建议使用小于10KB的过小区,过小区会导致元数据占总存储的比例过高,大量小分区同时查询时的请求放大问题会严重拖累整体性能
内容的提问来源于stack exchange,提问作者Klun
相关产品推荐
相关产品推荐

