3

背景:我的应用程序运行在集群系统(有 4 个节点)上,这四个节点的系统时间通过 NTP 同步。我使用 Write.QUORUM 和 Read.QUORUM 策略。这个问题的概率不是很高。Cassandra版本是1.0.3,我试过Cassandra 1.1.1,这个问题还是存在。

问题:我删除了一个列,但在 6 秒后,Cassandra 仍然可以获取“isMarkedForDelete”仍然为假的旧记录。

有人遇到同样的问题吗?以及如何解决?

详细信息:请参阅下面的日志:

节点 3(本地节点):
[pool-2-thread-42] 2012-06-27 14:49:23,732 SliceQueryFilter.java(第 123 行)收集 0 of 2147483647:SuperColumn(667072 [...... 7fffffffffffffff000001382ca96c8b636b698afalse :36@1340779097312016,......)

[pool-2-thread-44] 2012-06-27 14:51:21,367 StorageProxy.java(第 172 行)Mutations/ConsistencyLevel 是 [RowMutation(keyspace='drc', key='3332', modify=[ColumnFamily( fpr_index [SuperColumn(667072 [ 7fffffffffffffff000001382ca96c8b636b698a: true :4@1340779881338000,]),])])]/QUORUM

-- 我在 14:51:21,367 删除这条记录

[pool-2-thread-37] 2012-06-27 14:51:27,400 SliceQueryFilter.java(第 123 行)收集 0 of 2147483647:SuperColumn(667072 [......,7fffffffffffffff000001382ca96c8b636b698a:36@1340779097312016,。 .....)

-- 但我仍然可以得到 14:51:27,400 的旧记录

Node2:
[MutationStage:118] 2012-06-27 14:51:21,373 RowMutationVerbHandler.java(第 48 行)应用 RowMutation(keyspace='drc', key='3332', modify=[ColumnFamily(fpr_index [SuperColumn(667072 [ 7fffffffffffffff000001382ca96c8b636b698a::4@1340779881338000,]),])])

[MutationStage:118] 2012-06-27 14:51:21,374 RowMutationVerbHandler.java (line 60) RowMutation(keyspace='drc', key='3332', modify=[ColumnFamily(fpr_index [SuperColumn(667072 [ 7fffffffffffffff000001382ca96c8b636b698a: true : 4@1340779881338000,]),])]) 申请。回复 6692098@/192.168.0.3

[MutationStage:123] 2012-06-27 14:51:27,405 RowMutationVerbHandler.java (line 48) 应用 RowMutation(keyspace='drc', key='3332', modify=[ColumnFamily(fpr_index [SuperColumn(667072 [.. ......,7fffffffffffffff000001382ca96c8b636b698a:36@1340779097312016,......])

[MutationStage:123] 2012-06-27 14:51:27,405 RowMutationVerbHandler.java (line 60) RowMutation(keyspace='drc', key='3332', modify=[ColumnFamily(fpr_index [SuperColumn(667072 [... ..., 7fffffffffffffff000001382ca96c8b636b698a: false :36@1340779097312016,.......]),])]) 应用。回复 6698516@/192.168.0.3

节点1:
[MutationStage:98] 2012-06-27 14:51:24,661 RowMutationVerbHandler.java(第 48 行)应用 RowMutation(keyspace='drc', key='3332', modify=[ColumnFamily(fpr_index [SuperColumn(667072 [ 7fffffffffffffff000001382ca96c8b636b698a::4@1340779881338000,]),])])

[MutationStage:98] 2012-06-27 14:51:24,675 RowMutationVerbHandler.java (line 60) RowMutation(keyspace='drc', key='3332', modify=[ColumnFamily(fpr_index [SuperColumn(667072 [ 7fffffffffffffff000001382ca96c8b636b698a: true : 4@1340779881338000,]),])]) 申请。回复 6692099@/192.168.0.3

[MutationStage:93] 2012-06-27 14:51:40,932 RowMutationVerbHandler.java (line 48) 应用 RowMutation(keyspace='drc', key='3332', modify=[ColumnFamily(fpr_index [SuperColumn(667072 [ 7fffffffffffffff000001382ca96c8b636b698a: true :4@1340779900915004,]),])])

调试 [MutationStage:93] 2012-06-27 14:51:40,933 RowMutationVerbHandler.java (line 60) RowMutation(keyspace='drc', key='3332', modify=[ColumnFamily(fpr_index [SuperColumn(667072 [ 7fffffffffffffff000001382ca96c8b636b698a: true :4@1340779900915004,]),])]) 应用。回复 6706555@/192.168.0.3

[ReadStage:55] 2012-06-27 14:51:43,074 SliceQueryFilter.java(第 123 行)收集 0 of 5000: 7fffffffffffffff000001382ca96c8b636b698a: true :4@1340779900915004

节点 4:

节点 4 上没有关于此记录的日志。

4

1 回答 1

0

最好避免依赖 Cassandra 中的删除,因为它们通常不可靠。

请参阅http://www.slideshare.net/planetcassandra/8-axel-liljencrantz-23204252(特别是从第 34 张幻灯片开始)。强制进行主要压缩可能会解决此问题。

于 2015-04-23T11:39:57.213 回答