我知道当一个记录在cassandra中被删除时,这个值实际上并没有被删除,而是被标记为一个墓碑,以便在其他节点之间实现一致性。
在我的生产设置中,我接收来自1000个传感器的数据,并将这些数据推送到azure服务总线,生产中的internet不是很稳定,因此我有一个cassandra节点来存储尚未发送到azure的数据,
一旦我发送到azure,我就删除了我成功发送的cassandra记录中的数据,我已经将gc\u grace\u seconds表设置为0,我以后再也不会计划向这个集群添加另一个节点(总是单个节点cassandra)。
这会不会给我以后的计划带来任何问题。。?这张table的性能会降低吗。。?它是否会影响我可能要在此节点中创建的任何其他表。。?
1条答案
按热度按时间ajsxfq5m1#
对于这个特定的用例,当您计划继续使用单节点cassandra集群时,它不会产生任何这样的影响。因此,每当从gc\u grace\u seconds=0的表中删除数据时,它将被视为已删除,而不是标记为逻辑删除。另一方面,因为它只是一个单节点cassandra集群,所以不需要担心任何对等节点共享删除更新。
但另一个问题是选择cassandra数据库作为这个用例的单节点集群,postgres可以很容易地满足您的需求。