3

背景:私のアプリケーションはクラスターシステム(4つのノードがある)で実行されており、これら4つのノードのシステム時刻はNTPによって同期されています。Write.QUORUMおよびRead.QUORUM戦略を使用します。この問題の可能性はそれほど高くありません。Cassandraのバージョンは1.0.3です。Cassandra1.1.1を試しましたが、この問題はまだ存在します。

問題:列を削除しましたが、6秒後も、Cassandraは「isMarkedForDelete」がまだfalseである古いレコードを取得できます。

誰かが同じ問題に直面していますか?そしてそれを解決する方法は?

詳細:以下のログを参照してください。

ノード3(ローカルノード):
[pool-2-thread-42] 2012-06-27 14:49:23,732 SliceQueryFilter.java(行123)が2147483647の0を収集: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'、modifications = [ColumnFamily( fpr_index [SuperColumn(667072 [ 7fffffffffffffff000001382ca96c8b636b698atrue:4 @ 1340779881338000、])、])])] / QUORUM

--このレコードを14:51:21,367に削除します

[pool-2-thread-37] 2012-06-27 14:51:27,400 SliceQueryFilter.java(行123)は2147483647の0を収集します:SuperColumn(667072 [......、7fffffffffffffff000001382ca96c8b636b698afalse:36 @ 1340779097312016 、。 .....)

-でも、14:51:27,400でも古いレコードを取得できます

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

[MutationStage:118] 2012-06-27 14:51:21,374 RowMutationVerbHandler.java(60行目)RowMutation(keyspace ='drc'、key = '3332'、modifications = [ColumnFamily(fpr_index [SuperColumn(667072 [ 7fffffffffffffff000001382ca96c8b636b698atrue: 4 @ 1340779881338000、])、])])が適用されました。6692098@/192.168.0.3に応答を送信する

[MutationStage:123] 2012-06-27 14:51:27,405 RowMutationVerbHandler.java(48行目)RowMutation(keyspace ='drc'、key = '3332'、modifications = [ColumnFamily(fpr_index [SuperColumn(667072 [.. ....、7fffffffffffffff000001382ca96c8b636b698afalse:36 @ 1340779097312016、......])

[MutationStage:123] 2012-06-27 14:51:27,405 RowMutationVerbHandler.java(60行目)RowMutation(keyspace ='drc'、key = '3332'、modifications = [ColumnFamily(fpr_index [SuperColumn(667072 [.. .. ...、7fffffffffffffff000001382ca96c8b636b698afalse:36 @ 1340779097312016、.......])、])])が適用されました。6698516@/192.168.0.3に応答を送信する

Node1:
[MutationStage:98] 2012-06-27 14:51:24,661 RowMutationVerbHandler.java(48行目)RowMutation(keyspace ='drc'、key = '3332'、modifications = [ColumnFamily(fpr_index [SuperColumn(667072 [ 7fffffffffffffff000001382ca96c8b636b698atrue:4 @ 1340779881338000、])、])])

[MutationStage:98] 2012-06-27 14:51:24,675 RowMutationVerbHandler.java(60行目)RowMutation(keyspace ='drc'、key = '3332'、modifications = [ColumnFamily(fpr_index [SuperColumn(667072 [ 7fffffffffffffff000001382ca96c8b636b698atrue: 4 @ 1340779881338000、])、])])が適用されました。6692099@/192.168.0.3に応答を送信する

[MutationStage:93] 2012-06-27 14:51:40,932 RowMutationVerbHandler.java(48行目)RowMutation(keyspace ='drc'、key = '3332'、modifications = [ColumnFamily(fpr_index [SuperColumn(667072 [ 7fffffffffffffff000001382ca96c8b636b698atrue:4 @ 1340779900915004、])、])])

DEBUG [MutationStage:93] 2012-06-27 14:51:40,933 RowMutationVerbHandler.java(60行目)RowMutation(keyspace ='drc'、key = '3332'、modifications = [ColumnFamily(fpr_index [SuperColumn(667072 [ 7fffffffffffffff000001382ca96c8b636b698atrue:4 @ 1340779900915004、])、])])が適用されました。6706555@/192.168.0.3に応答を送信する

[ReadStage:55] 2012-06-27 14:51:43,074 SliceQueryFilter.java(行123)は5000の0を収集します7fffffffffffffff000001382ca96c8b636b698a:: true:4 @ 1340779900915004

ノード4:

ノード4にはこのレコードに関するログはありません。

4

1 に答える 1

0

It's best to avoid depending on deletions in Cassandra, as they're generally not reliable.

See http://www.slideshare.net/planetcassandra/8-axel-liljencrantz-23204252 (slide 34 onwards in particular). Forcing a major compaction may fix the issue.

于 2015-04-23T11:39:57.213 に答える