特定值I运行卡桑德拉簇与cqlsh 5个节点的查询。它给我OperationTimedOut错误。如果我在where子句参数中稍做修改,它会给我空的结果。这是预期的。即使我更改参数的单个字符,但完全相同的参数值给我超时也没关系。为什么这样?在where子句导致OperationTimedOut误差在卡桑德拉
查询:
select * from table where pid = '5f334fef-2629-484c-a081-c4a6f554c6ab'
这里是表模式
CREATE TABLE dmp.interest_data (
pid text,
attribute text,
country text,
day_count int,
first_seen timestamp,
flag int,
keys set<text>,
last_seen timestamp,
score int,
usage_count int,
PRIMARY KEY (pid, attribute)
) WITH CLUSTERING ORDER BY (attribute ASC)
AND bloom_filter_fp_chance = 0.01
AND caching = '{"keys":"ALL", "rows_per_partition":"NONE"}'
AND comment = ''
AND compaction = {'min_threshold': '4', 'class': 'org.apache.cassandra.db.compaction.LeveledCompactionStrategy', 'max_threshold': '32'}
AND compression = {'chunk_length_kb': '256', 'sstable_compression': 'org.apache.cassandra.io.compress.LZ4Compressor'}
AND dclocal_read_repair_chance = 0.1
AND default_time_to_live = 0
AND gc_grace_seconds = 172800
AND max_index_interval = 2048
AND memtable_flush_period_in_ms = 0
AND min_index_interval = 128
AND read_repair_chance = 0.1
AND speculative_retry = '99.0PERCENTILE';
CREATE INDEX interest_data_attribute_idx ON dmp.interest_data (attribute);
CREATE INDEX interest_data_country_idx ON dmp.interest_data (country);
CREATE INDEX interest_data_day_count_idx ON dmp.interest_data (day_count);
CREATE INDEX interest_data_first_seen_idx ON dmp.interest_data (first_seen);
CREATE INDEX interest_data_usage_count_idx ON dmp.interest_data (usage_count);
更新: 价值PID中所提到的where子句应该是有表,因为它是一个查询插入其中没有给出任何错误。但是当查询它时会发生这种超时。现在发生了奇怪的事。我试图删除它,它被删除了!因为删除后我尝试选择相同的,我得到空的结果。所以确实是在那里,它是在某种形式的损坏,导致超时。现在我需要知道这样的事情怎么可能发生
5个二级索引?重要的是要注意,二级索引是卡桑德拉的一个反模式 – Aaron
好的。这个?这可真帮我 – Shades88
亚伦是正确的,警告你次要指标,但我不认为这是这里的问题。你说改变where子句参数时,你是什么意思?你CH愤怒'5f334fef-2629-484c-a081-c4a6f554c6ab'的价值?你期望用这个值有一些结果吗?你用这个pid插入了多少个属性? – DineMartine