我在cqlsh中运行alter table命令时收到OperationTimedOut错误。那怎么可能?由于这只是表元数据更新,因此该操作是否应该几乎立即运行?
具体来说,这是我的cqlsh会话的摘录
cqlsh:metric> alter table metric with gc_grace_seconds = 86400;
OperationTimedOut: errors={}, last_host=sandbox73vm230
指标表当前的gc_grace_seconds为864000。我在2节点群集和6节点2数据中心群集中看到此行为。我的节点总体来说似乎通信良好(例如,我可以插入其中一个节点并从另一个节点读取)。这是完整的表定义(具有DateTieredCompactionStrategy,聚类和缓存更改的蓝绿色0.1.3架构):
CREATE TABLE metric.metric (
tenant text,
period int,
rollup int,
path text,
time bigint,
data list<double>,
PRIMARY KEY ((tenant, period, rollup, path), time)
) WITH CLUSTERING ORDER BY (time ASC)
AND bloom_filter_fp_chance = 0.01
AND caching = '{"keys":"ALL", "rows_per_partition":"NONE"}'
AND comment = ''
AND compaction = {'timestamp_resolution': 'SECONDS', 'class': 'org.apache.cassandra.db.compaction.DateTieredCompactionStrategy'}
AND compression = {'sstable_compression': 'org.apache.cassandra.io.compress.LZ4Compressor'}
AND dclocal_read_repair_chance = 0.0
AND default_time_to_live = 0
AND gc_grace_seconds = 864000
AND max_index_interval = 2048
AND memtable_flush_period_in_ms = 0
AND min_index_interval = 128
AND read_repair_chance = 0.0
AND speculative_retry = 'NONE';
最佳答案
我意识到这时的问题已经很老了,您可能已经想出了答案,或者以其他方式继续前进,但是希望将其发布,以防其他人偶然发现。
默认的cqlsh
请求超时为10秒。您可以通过将cqlsh
选项设置为允许ALTER TABLE运行完成的某个值来启动--request-timeout
来进行调整,例如:cqlsh --request-timeout=1000000
关于cassandra - cqlsh更改表期间的OperationTimedOut,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32505081/