2015-06-04 46 views
1

我在CQL創建一個表:卡桑德拉行級隔離

create table isolation_demo(key text,column1 text,column2 text,column3 text ,primary key(key,column1,column2)); 

我有一個批次2語句。

update isolation_demo set column3 ='ABC' where key =1 and column1 =1 and column2=1; 
delete from isolation_demo where key =1 and column1 =2 and column2=2; 

這裏兩個語句共享相同的分區鍵。 (鍵= 1),但是不同的聚類列值。這兩個陳述會被隔離嗎?

回答

5

這些查詢必須被分離,如在C *文檔herehere提到:

在卡桑德拉的早期版本中,它是可以看到一列的部分更新,當一個用戶是更新而行另一位用戶正在閱讀同一行。例如,如果一個用戶正在編寫一個包含兩千列的行,另一個用戶可能會讀取同一行並查看一些列,但如果寫入仍在進行中,則不是全部。

完整的行級別隔離已到位,這意味着寫入行的操作與執行寫入的客戶端隔離,並且在完成之前對其他任何用戶都不可見。