[英]Cassandra - Cannot achieve consistency level QUORUM ISSUE
我在項目中出於幾個目的使用 Cassandra DB。 我正在嘗試更新評論表中的 votes_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 個節點。
誰能告訴我為什么會出現此仲裁錯誤? 根據我的研究,要實現穩定的仲裁狀態需要多個節點。 更新記錄時出現此錯誤。 由於沒有創建副本,我該如何處理一個節點的這種情況?
QUORUM
& LOCAL_QUORUM
是根據復制因子計算的,而不是根據集群中的節點數計算的,因此單節點集群上的 QUORUM 完全沒問題。
在您的情況下,最有可能的是您的節點沒有按時響應,例如,由於垃圾收集或其他原因,在這種情況下,它沒有達到必要的一致性級別。 即使使用ONE
也可能存在同樣的問題。
我不是使用 PHP 驅動程序的專家,但在其他驅動程序中,您通常可以強制重試,通常應該使用默認的重試策略 - 您只需要將語句標記為冪等(請參閱有關Java 驅動程序中重試策略的文檔)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.