我们正在运行一个由Cassandra作为持久化存储支持的Titan Graph DB服务器,但遇到了达到Cassandra墓碑阈值限制的问题,导致数据积累时查询周期性失败/超时。似乎压缩无法跟上添加的墓碑数量。
我们的用例支持:
1.高读/写吞吐量。
2.对读取非常敏感。
3.Titan中节点值频繁更新,导致在Cassandra中更新行。
鉴于以上用例,我们已经通过以下方式优化Cassandra:
1.使用分层压缩策略进行积极压缩。
2.将tombstone_compaction_interval设置为60秒。
3.将tombstone_threshold设置为0.01。
4.将gc_grace_seconds设置为1800。
尽管进行了以上优化,我们仍然在Cassandra日志中看到类似以下的警告:
[WARN] (ReadStage:7510) org.apache.cassandra.db.filter.SliceQueryFilter:在.graphindex中读取0个活动单元格和10350个墓碑单元格(请参见tombstone_warn_threshold)。请求了8001列,切片=[00-ff],delInfo={deletedAt=-9223372036854775808, localDeletion=2147483647}
随着时间的推移,偶尔会看到失败阈值被突破并导致错误。
我们的cassandra.yaml文件中,tombstone_warn_threshold设置为10000,tombstone_failure_threshold远高于推荐值250000,但没有真正明显的好处。
如果还有进一步优化的空间,请指导我们正确的配置。非常感谢您的时间和帮助。
我们的用例支持:
1.高读/写吞吐量。
2.对读取非常敏感。
3.Titan中节点值频繁更新,导致在Cassandra中更新行。
鉴于以上用例,我们已经通过以下方式优化Cassandra:
1.使用分层压缩策略进行积极压缩。
2.将tombstone_compaction_interval设置为60秒。
3.将tombstone_threshold设置为0.01。
4.将gc_grace_seconds设置为1800。
尽管进行了以上优化,我们仍然在Cassandra日志中看到类似以下的警告:
[WARN] (ReadStage:7510) org.apache.cassandra.db.filter.SliceQueryFilter:在.graphindex中读取0个活动单元格和10350个墓碑单元格(请参见tombstone_warn_threshold)。请求了8001列,切片=[00-ff],delInfo={deletedAt=-9223372036854775808, localDeletion=2147483647}
随着时间的推移,偶尔会看到失败阈值被突破并导致错误。
我们的cassandra.yaml文件中,tombstone_warn_threshold设置为10000,tombstone_failure_threshold远高于推荐值250000,但没有真正明显的好处。
如果还有进一步优化的空间,请指导我们正确的配置。非常感谢您的时间和帮助。