LWT / Paxos查询的时间戳和普通查询之间的差异'卡桑德拉的时间戳

时间:2017-08-21 05:11:15

标签: cassandra timestamp cql

使用cassandra时,如果你执行以下两个cql,第二个就不会成功。

insert into job_info (id, create_time) values (5be224c6-8231-11e7-9619-9801b2a97471, 0) IF NOT EXISTS;
insert into job_info (id, create_time) values (5be224c6-8231-11e7-9619-9801b2a97471, 1);

键空间和表格如下:

CREATE KEYSPACE scheduler WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '1'}  AND durable_writes = true;

CREATE TABLE scheduler.job_info (
    id timeuuid PRIMARY KEY,
    create_time int
) with caching = {'keys':'ALL', 'rows_per_partition':'NONE'};

我在https://issues.apache.org/jira/browse/CASSANDRA-13767上发布了这个问题,并且commant说:

  

您正在混合LWT / Paxos查询({{IF NOT EXISTS}},   时间戳以自己的方式,"正常"查询,这是已知的   在订购方面导致不可预测的结果(这里发生了什么   不是第二次插入失败,它被分配了一个   时间戳低于第一个查询,因此被忽略)。长   简而言之,不要将LWT / Paxos查询与其他查询混合(至少   在同一个分区上),你将避免问题。

我的问题是,LWT / Paxos查询和"正常"之间有什么区别?查询'时间戳?

第一个cql和第二个cql可以间隔很多秒执行,但第二个cql仍然没有成功。那么,它真的是时间戳造成的问题吗?

0 个答案:

没有答案