gpt4 book ai didi

Cassandra 更新在多个节点上无提示地失败

转载 作者:行者123 更新时间:2023-12-02 22:53:13 24 4
gpt4 key购买 nike

我有以下情况。

有一个 CQL 表(Cassandra 2.0.12)

CREATE TABLE article (
version timeuuid,
id timeuuid,
active boolean,
contentbody text,
contentformat text,
createdat text,
entitytype text,
externalsources list<text>,
geolat double,
geolong double,
lastcomments list<text>,
lastmodifiedat text,
lstmodbyuserid text,
lstmodbyusername text,
previewimage text,
publishedatarticle text static,
publishedatver text,
status text,
subcategory text,
subtitle text,
title text,
userid text static,
username text static,
PRIMARY KEY ((version), id)
) WITH
bloom_filter_fp_chance=0.010000 AND
caching='KEYS_ONLY' AND
comment='' AND
dclocal_read_repair_chance=0.100000 AND
gc_grace_seconds=864000 AND
index_interval=128 AND
read_repair_chance=0.000000 AND
replicate_on_write='true' AND
populate_io_cache_on_flush='false' AND
default_time_to_live=0 AND
speculative_retry='99.0PERCENTILE' AND
memtable_flush_period_in_ms=0 AND
compaction={'class': 'SizeTieredCompactionStrategy'} AND
compression={'sstable_compression': 'LZ4Compressor'};

并使用 datastax-java-driver (cassandra-driver-core 2.1.1)

当集群包含3个节点时数据更新,如

UPDATE article SET title='updated title2',subtitle=null,status='draft',subCategory='{"id":"a6b68330-2ef5-4267-98c5-cd793edbb1a8","name":"sub cat name","color":"blue","parentCategory":{"id":"prim_cat_id","name":"prim cat name","color":"blue"}}',contentBody='someOtherBody',contentFormat='someOtherFormat',geoLat=138782.34,geoLong=138782.34,lastModifiedAt='2015-03-02 11:14:57',publishedAtArticle=null,publishedAtVer=null,lstModByUserId='e264fb2c-2485-488a-965f-765d139be9ea',lstModByUsername='reg1 user',externalSources=[],previewImage='{"width":1,"height":2,"duration":32,"original":"orig string","thumbs":{"prefix":"prefix str","ext":"jpg","sizes":["size1","size2"]}}' WHERE version=2480d891-c0cd-11e4-a691-df79ef55172c AND id=2480d890-c0cd-11e4-a691-df79ef55172c;

在大约一半的情况下无法静默工作(我在 Cassandra 日志中没有看到任何错误,跟踪中没有任何可疑之处,没有失败答案或异常,我可以看到仅通过 SELECT 它没有成功)。如果是来自一个节点的集群,它始终有效。

您能帮我指导一下案件调查吗?

最佳答案

既然您提到您的节点时间不同步,您可能会遇到一种罕见但仍然可能的情况。

如果节点之间的时间不同步,则可能会在更新/插入期间导致一些不可预测的结果。

通常当写入到来时,具有最新时间戳的获胜。如果您的一个节点的时间落后了,那么当它成为协调器时,它会用它的时间戳标记您的所有记录,因此决定此更新太旧,因为已经有其他具有较新时间戳的更新(来自具有较新时间戳的节点)准确时间)。因此放弃更新。

关于Cassandra 更新在多个节点上无提示地失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28812339/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com