Cassandra LWT/Paxos查询和#x27;时间戳和普通查询';卡桑德拉时间戳

Cassandra LWT/Paxos查询和#x27;时间戳和普通查询';卡桑德拉时间戳,cassandra,timestamp,cql,Cassandra,Timestamp,Cql,使用cassandra时,如果执行以下两个cql,则第二个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 K

使用cassandra时,如果执行以下两个cql,则第二个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'};
我把这一期发到了,通讯员说:

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

我的问题是,LWT/Paxos查询和“正常”查询的时间戳有什么区别


第一个cql和第二个cql的执行时间间隔为几秒,但第二个仍不成功。那么,这真的是时间戳造成的问题吗?

如果两个查询从单个客户端(cqlsh/驱动程序)执行同步。您的最新值应该是
1
这两个查询是从不同的客户端执行的吗?如果是,则将其包括在您的问题中。非常令人吃惊的是,即使LWT和正常查询之间相隔几秒钟,LWT查询上的写入时间戳仍然比正常查询上的时间戳晚。如果这两个查询是从单个客户端执行的t(cqlsh/驱动程序)同步。您的最新值应为
1
这两个查询是否从不同的客户端执行?如果是,则将其包括在您的问题中。令人吃惊的是,即使LWT和正常查询之间相隔几秒钟,LWT查询上的写入时间戳仍然比正常查询上的时间戳晚。