0

我知道在 Cassandra 中删除记录时,该值实际上并未被删除,而是被标记为墓碑,以便在其他节点之间实现一致性。

在我的生产设置中,我从 1000 个传感器接收数据,并将这些数据推送到 Azure 服务总线,互联网在生产中不是很稳定,所以我有一个 cassandra 节点来存储尚未发送到 Azure 的数据,

发送到 Azure 后,我会删除已成功发送的 Cassandra 记录中的数据,我已将 GC_Grace_Seconds 表设置为 0,并且我以后永远不会计划向此集群添加另一个节点(始终是单个节点 Cassandra)。

这会不会在未来给我带来这个计划的任何问题..?这张桌子的性能会降低..吗?它会影响我可能要在此节点中创建的任何其他表吗?

4

1 回答 1

0

对于此特定用例,当您计划继续使用单节点 cassandra 集群时,它不会产生任何此类影响。因此,每当数据从 gc_grace_seconds=0 的表中删除时,它将被视为已删除并且不标记为墓碑。另一件事,因为它只是一个单节点 cassandra 集群,所以无需担心任何对等节点共享删除更新。

但另一个提出的问题是选择 cassandra 数据库作为此用例的单节点集群,首选是 Postgres 可以轻松满足您的需求。

于 2020-04-28T01:56:35.530 回答