Существует множество различных способов определения согласованности . Если под «максимальной последовательной транзакцией» вы подразумеваете чтение и запись в ConsistencyLevel ALL, то это обеспечит последовательность в том смысле, что ваши чтения никогда не будут возвращать устаревшее значение, и долговечность в том смысле, что ваши записи будут храниться в все узлы перед возвратом.
Однако это не то же самое, что транзакции . Кассандра не поддерживает транзакции. Он не обеспечивает согласованность между различными строками, как это делает MySQL. Например, предположим, что вы добавляете товар в корзину и обновляете общую стоимость в корзине. Индивидуально каждая операция будет храниться последовательно и длительно. Однако может быть окно времени, в котором вы можете увидеть одно изменение, но не другое. В реляционной базе данных вы можете сгруппировать их в транзакцию, чтобы вы могли видеть только оба или ни одного.
Что касается безопасности, Cassandra сохраняет все ваши записи на диск в журнале фиксации, прежде чем делать что-либо еще, так же, как реляционные базы данных используют журналы транзакций. Так что это так же безопасно в отношении системных сбоев. Что касается сбоев узлов, если вы пишете в CL.ALL, то вы никогда не потеряете данные, пока выживет один узел в каждом наборе реплик. Что касается сбоя диска, это вопрос вашей базовой аппаратной установки, например, RAID.