cassandra 版本:2.1.15
下面的表是3个副本。
CREATE KEYSPACE keyspace1 WITH REPLICATION = {'class': 'NetworkTopologyStrategy','DC1': '3','DC2':'3'};
因为涉及业务数据,替换了部分不影响描述问题的信息。
我们在生产环境中遇到一个奇怪的现象。查询数据的时候发现有些在应用的处理上不缺少的字段缺少了。
然后我们解析sstable发现,确实底下的文件就是如此。
其中最奇怪的是,2条记录的writeTime都是一样的,但是其中一个节点有部分记录,另外一个节点只有部分记录。
我理解即使是压缩合并了,node2的writeTime应该也是新的,不应该保持一样。也许我理解错了。
Node1:
./sstable2json /disk/data2/cassandra/keyspace1/table-094aa0a0fa4311eab69565744744aa23/keyspace1-table-ka-207621-Data.db -k ID_1
[
{"key": "ID_1",
"cells": [["000:111:AAA:222:field_1","BBB",1620896500311001],
["000:111:AAA:222:field_2","CCC",1620896500311001],
["000:111:AAA:222:field_3","2021-05-13 17:01+0800",1620896500311001],
["000:111:AAA:222:field_4","2021-05-13 17:01+0800",1620896500311001]]}
Node2:
./sstable2json /disk/data2/cassandra/keyspace1/table-094aa0a0fa4311eab69565744744aa23/keyspace1-table-ka-724373-Data.db -k ID_1
[
{"key": "ID_1",
"cells": [["000:111:AAA:222:field_1","BBB",1620896500311001]]}
]
Node3:
empty