我有两个Cassandra表,一个记录表和一个计数器表。计数器表为记录表中的每种记录保留一个计数器。
当我向记录表插入新记录时,我将同时更新计数器表。但是可能会出现新记录已经在记录表中的情况。重复插入相同记录是可以的,但这样会使计数器增加两次,这是不正确的。
我现在有两个解决方案。
1. 从Cassandra获取新记录键的记录。如果不为空,我将不插入记录并增加计数器。 2. 使用轻量级事务让Cassandra检查记录是否已经存在。
方案2将使插入操作“原子化”,但文档表示这将影响性能。在方案1中,我发送了两个查询,这也会影响性能。
目前我正在使用方案1。我对Cassandra轻量级事务还不熟悉,所以我不知道原子性的代价。有人知道哪个方案更好吗?
当我向记录表插入新记录时,我将同时更新计数器表。但是可能会出现新记录已经在记录表中的情况。重复插入相同记录是可以的,但这样会使计数器增加两次,这是不正确的。
我现在有两个解决方案。
1. 从Cassandra获取新记录键的记录。如果不为空,我将不插入记录并增加计数器。 2. 使用轻量级事务让Cassandra检查记录是否已经存在。
方案2将使插入操作“原子化”,但文档表示这将影响性能。在方案1中,我发送了两个查询,这也会影响性能。
目前我正在使用方案1。我对Cassandra轻量级事务还不熟悉,所以我不知道原子性的代价。有人知道哪个方案更好吗?