cassandra的事务(1.x,2.x)

1.x2.0
  • 行级操作原子性
  • BATCH事务,即一个Batch原子性执行多个DML操作。当一个请求需要操作多个table的时候,它非常有用。
  • 添加轻量级事务,避免race condition问题。

举例:两个人同时提交相同用户名的注册请求,确认not exist 后,同时提交注册请求。这种情况因为是相同的rowkey(用户名),所以cassandra会将后后提交的人信息会覆盖前者。cassandra通过paxos解决该问题。

BEGIN BATCH
  INSERT INTO ...

  UPDATE ....

  INSERT ...
  DELETE ...
  INSERT .....

APPLY BATCH;

# 轻量级事务通过IF子句实现

INSERT INTO USERS (login, email, name, login_count)
values ('jbellis', '[email protected]', 'Jonathan Ellis', 1)
IF NOT EXISTS

 >> 详细 >> 详细

相关推荐