用于写入和读取用例的 Cassandra 压缩

Cassandra Compaction for Write and Read use cases

我们计划在我们的一个项目中使用 Cassandra,我们将在其中进行大量写入和适度读取。平均而言,我们的写入速度约为 250 tps,我们正在为下游应用程序公开 REST API,预计读取速度约为 100 tps。哪种压缩策略最适合我们的用例,因为我们既有写入又有读取。非常感谢对此提出任何建议。

对于您的工作负载,默认 SizeTieredCompactionStrategy (STCS) 将是最佳选择,因为:

  • LeveledCompactionStrategy (LCS) 主要设计用于主要读取工作负载和少量 updates/writes(documentation 也提到了更新,但我的个人经验并不能证实这一点)
  • TimeWindowCompactionStrategy (TWCS) 专为仅附加工作负载而设计,其中通过 TTL
  • 进行删除

P.S。 DataStax 已经创建了 Unified Compaction Strategy (UCS),就像是 STCS 和 LCS 的混合体,但不清楚它是否会包含在 Cassandra 中。