关于服务
翻译我在 Apache Cassandra 和 ScyllaDB 上设计和操作分布式宽列数据库,我总是从一件事开始:你的查询。在启动节点之前,我映射应用程序实际需要的所有读写路径,然后围绕这些访问模式构建数据模型。在列式存储中,表格遵循查询,因此我故意进行反规范化,选择具有均匀环分布的分区键,并选择将热读放在一个分区的聚类列。
然后我调优集群以承载真实流量。我根据你的可靠性和延迟预算设置复制因子和一致性级别,限制分区大小,选择适合你负载的压缩策略——时间序列、事件日志或高更换率的键值。我保持写入管道在每秒数万次操作而不在刷新和压缩期间停滞,并使尾延迟可预测:我提前捕捉宽分区、墓碑和热分片。在 ScyllaDB 上,我使用每核心一个分片的架构,从相同的硬件中提取显著更多的吞吐量。
我还负责在凌晨 3 点破坏集群的任务:修复调度、节点替换、跨数据中心复制、容量规划,以及从停止扩展的关系数据库迁移。在退出时——一个能够吸收峰值并通过添加节点进行扩展的数据库。
— 从查询和分区设计进行数据建模
— 复制、一致性和压缩调优
— 高写入吞吐量和可预测延迟
— 修复、节点替换和多数据中心设置
然后我调优集群以承载真实流量。我根据你的可靠性和延迟预算设置复制因子和一致性级别,限制分区大小,选择适合你负载的压缩策略——时间序列、事件日志或高更换率的键值。我保持写入管道在每秒数万次操作而不在刷新和压缩期间停滞,并使尾延迟可预测:我提前捕捉宽分区、墓碑和热分片。在 ScyllaDB 上,我使用每核心一个分片的架构,从相同的硬件中提取显著更多的吞吐量。
我还负责在凌晨 3 点破坏集群的任务:修复调度、节点替换、跨数据中心复制、容量规划,以及从停止扩展的关系数据库迁移。在退出时——一个能够吸收峰值并通过添加节点进行扩展的数据库。
— 从查询和分区设计进行数据建模
— 复制、一致性和压缩调优
— 高写入吞吐量和可预测延迟
— 修复、节点替换和多数据中心设置