我试图使用幻影到cassandra 3:9插入相当少量的数据异步,但是这个查询始终失败:INSERT INTO test_db.test_tbl(name, last, ts) VALUES('aaa', 'bbb', 1502109409) IF NOT EXISTS USING TTL 0;,我得到了以下异常:
在一致性串行的写查询过程中,com.datastax.driver.core.exceptions.WriteTimeoutException:卡桑德拉超时(需要一个副本,但只有0确认写入) 在com.datastax.driver.core.exceptions.WriteTimeoutException.copy(WriteTimeoutException.java:100) 在com.datastax.driver.core.Responses$Error.asException(Responses.java:134) 在com.datastax.driver.core.RequestHandler$SpeculativeExecution.onSet(RequestHandler.java:507) 在com ..。
我和码头一起管理卡桑德拉。我试图改变cassandra.yaml write_request_timeout_in_ms: 20000,但这并没有多大影响。
更新:我尝试将一致性级别设置为一个(也尝试了另一个):
insert
.value(_.name, "aaa")
.value(_.last, uuid)
.value(_.ts, Random.long)
.ifNotExists()
.consistencyLevel_=(ConsistencyLevel.ONE)但是异常仍然显示“在一致性串行的写查询期间Cassandra超时”。
发布于 2017-08-07 13:38:06
您使用的是IF NOT EXISTS关键字,它是一个轻量级事务
Cassandra通过扩展基于仲裁算法的Paxos协商一致协议来实现轻量级事务。Paxos确保以四次往返为代价的线性一致性。
的成本听起来很高--也许太高了,如果您的应用程序很少要求每个操作都可以线性化的话。因此,将轻量级事务保留在绝对必要的的情况下。
来源:https://www.datastax.com/dev/blog/lightweight-transactions-in-cassandra-2-0
发布于 2020-05-21 12:18:27
同样的问题,这是我的解决方案:
它只适合一个节点。
https://stackoverflow.com/questions/45548103
复制相似问题