我在这个项目中使用cassandradb有几个目的。我正在尝试更新comments表中的count of voces\u up列。但我得到了这个错误。
在此处输入图像描述
我的评论表结构是。
CREATE TABLE opspot.comments (
entity_guid varint,
parent_guid_l1 varint,
parent_guid_l2 varint,
parent_guid_l3 varint,
guid varint,
access_id varint,
attachments map<text, text>,
body text,
container_guid varint,
flags map<text, boolean>,
has_children boolean,
owner_guid varint,
owner_obj text,
replies_count varint,
score varint,
time_created timestamp,
time_updated timestamp,
votes_down set<varint>,
votes_up set<varint>,
PRIMARY KEY (entity_guid, parent_guid_l1, parent_guid_l2, parent_guid_l3, guid)
) WITH CLUSTERING ORDER BY (parent_guid_l1 ASC, parent_guid_l2 ASC, parent_guid_l3 ASC, guid DESC)
AND bloom_filter_fp_chance = 0.01
AND caching = {'keys': 'ALL', 'rows_per_partition': 'NONE'}
AND comment = ''
AND compaction = {'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy', 'max_threshold': '32', 'min_threshold': '4'}
AND compression = {'chunk_length_in_kb': '64', 'class': 'org.apache.cassandra.io.compress.LZ4Compressor'}
AND crc_check_chance = 1.0
AND dclocal_read_repair_chance = 0.1
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 = '99PERCENTILE';
Cassandra正在使用一个数据中心,即datacenter1。图片如下。
在此处输入图像描述
当前的一致性级别是1。有1个节点。
有人能告诉我为什么我会有这个法定人数错误吗?根据我的研究,要获得稳定的仲裁状态,需要多个节点。更新记录时出现此错误。在没有创建副本的情况下,如何处理一个节点的这种情况?
1条答案
按热度按时间xxe27gdn1#
QUORUM
&LOCAL_QUORUM
是根据复制因子计算的,而不是根据群集中的节点数计算的,因此单节点群集中的仲裁是完全正确的。在您的情况下,最可能的情况是您的节点没有按时应答,例如,由于垃圾收集或其他原因,在这种情况下,它没有达到必要的一致性级别。同样的问题也可能存在
ONE
.我不擅长使用php驱动程序,但在其他驱动程序中,您通常可以强制重试,通常应该使用默认重试策略—您只需要将语句标记为幂等(请参阅java驱动程序中有关重试策略的文档)。