Không giống với RDBMS, Cassandra ko hỗ trợ đầy đủ các tính năng trong ACID không có locking hay độc lập giao tác khi update nhiều dòng hoặc column family
ACID là từ viết tắt dùng để miêu tả 4 hành vi mà transaction phải đạt được trong RDBMS:
o Atomic: Mọi thứ trong transaction đó phải thành công hoặc tất cả phải đc roll back
o Consistent: Một transaction không thể để DB ở trạng tháng thiếu nhất
quán
o Isolated: Transaction này phải độc lập với những transaction khác
o Durable: Phải bền bỉ với các hiện tượng hư hỏng của server
Cassandra đánh đổi giữa isolation và atomic để cho khả năng đáp ứng cao thực hiện việc ghi nhanh. Trong Cassandra, việc ghi là một tác vụ atomic ở cấp độ dòng, nghĩa là update hay insert column của một row key được xem như là một tác
vụ đọc. Cassandra ko hỗ trợ transaction của một update trên nhiều dòng => nó sẽ không roll back khi mà một tác vụ thành công trên một bảng sao nhưng lại trên một bản sao khác. Có thể trong Cassandra phải viết một report hỏng hóc cho client nhưng vẫn còn tồn tại việc ghi vào bản sao đó
Ví dụ nếu sử dụng tác vụ ghi cho có consistency level là QUORUM với replication factor là 3 cassandra sẽ gửi tác vụ ghi cho 2 bản sao. Nếu ghi fail trên một trong số những bản sao và thành công cho những cái còn lại, Cassandra sẽ report vấn đề này cho người dùng. Mặt dàu vậy tác vụ roll back không tự động thực hiện trên những bản sao kia
Cassandra sử dụng timestamp để quyết đinh update gần đây nhất của column. Timestamp được hỗ trợ bởi ứng dụng client. Timestamp cuois cùng luôn được chọn có request data. Vì thế nếu nhiều phân vùng cùng update lên cũng một cột, update gần nhất sẽ đc chọn
Ghi trong Cassandra là durable. Tất cả tác vụ ghi vào một bản sao được ghi lại trong bộ nhớ và trong commit log trước khi chúng được biết như là một sự thành cộng. Nếu có crash hay server bị hỏng trước khi bảng bộ nhớ được đẩy xuống đĩa. Commit log được dùng để recover tác vụ ghi