Понимание изоляции в Кассандре Db - PullRequest
0 голосов
/ 26 декабря 2018

Согласно документам Cassandra Изоляция в Cassandra обеспечивает изоляцию на уровне строк.Это означает, что запись в строку в одном разделе на одном узле видна только клиенту, выполняющему операцию.

Теперь я предполагаю, что в документах cassandra под записью они означают и Вставка, и Обновление.

Мой вопрос:

Рассмотрим сценарий, в котором я нахожусьобновление строки, и в то же время другой пользователь также обновляет эту же строку.Теперь, из-за гарантии изоляции, предоставленной Кассандрой, мы не можем быть уверены в том, каким будет окончательное состояние обновленной строки.

Верно ли мое понимание об Изоляции в Cassandra db, как видно из приведенного выше утверждения?

1 Ответ

0 голосов
/ 26 декабря 2018

Изоляция означает, что при чтении во время обновления люди видят либо примененное обновление к этой строке, либо ничего.т. е. если в строке есть столбец age и favorite_color, и они обновляют оба столбца, то читающий увидит либо всю старую версию, либо всю новую версию.Они не увидят age как старое значение и favorite_color как новую версию.

записи в строку [...] не будут видны любому другому пользователю, пока они не будут завершены

Для предотвращения состязаний, когда два средства обновления пишут одновременно, это отдельная проблема, которая может быть решена с помощью легких транзакций (чтение перед записью с циклом paxos), когда только одна запись «победит», а другой запроссообщит, что он не был применен.

...