WHERE 和 IF 之间的 Cassandra CAS 区别
Cassandra CAS differerence between WHERE and IF
使用文章Using lightweight transactions中的示例,这样的交易示例如下:
UPDATE cycling.cyclist_name
SET firstname = 'Roxane'
WHERE id = 4647f6d3-7bd2-4085-8d6c-1229351b5498
IF firstname = 'Roxxane';
这与将 IF
替换为 WHERE
有何不同,如:
UPDATE cycling.cyclist_name
SET firstname = 'Roxane'
WHERE id = 4647f6d3-7bd2-4085-8d6c-1229351b5498
AND firstname = 'Roxxane';
我猜第二个不是一步完成读写,而是首先根据位置选择然后应用更新,而第一个阻止其他进程写入数据库时查询是 运行。
在来自两个不同客户端的并发更新的情况下,第一个查询将确保一次只应用一个(假设不使用非串行一致性)但是第二次更新不是这样。检查 .
使用文章Using lightweight transactions中的示例,这样的交易示例如下:
UPDATE cycling.cyclist_name
SET firstname = 'Roxane'
WHERE id = 4647f6d3-7bd2-4085-8d6c-1229351b5498
IF firstname = 'Roxxane';
这与将 IF
替换为 WHERE
有何不同,如:
UPDATE cycling.cyclist_name
SET firstname = 'Roxane'
WHERE id = 4647f6d3-7bd2-4085-8d6c-1229351b5498
AND firstname = 'Roxxane';
我猜第二个不是一步完成读写,而是首先根据位置选择然后应用更新,而第一个阻止其他进程写入数据库时查询是 运行。
在来自两个不同客户端的并发更新的情况下,第一个查询将确保一次只应用一个(假设不使用非串行一致性)但是第二次更新不是这样。检查