разрешение конфликтов для смешанных обновлений строк с одинаковой отметкой времени - PullRequest
0 голосов
/ 07 марта 2012

Это не дублирует мой предыдущий пост - теперь я бы хотел сосредоточиться на смешанном обновлении строк.

Два клиента отправляют обновления в две строки, идентифицируемые одним и тем же ключом (RowA и RowB). Строки сохраняются в том же семействе столбцов. Оба запроса имеют одинаковую метку времени .

  • Клиент 1 отправляет вставку: RowA:{col:"valA1"}, RowB:{col:"valB1"}
  • Клиент 2 отправляет вставку: RowA:{col:"valA2"}, RowB:{col:"valB2"}

Что является результатом такого обновления?

Возможно ли, что один из клиентов выиграет, потому что мы имеем обновление в пределах одного семейства столбцов?

Возможен ли смешанный результат - например RowA:{col :"valA1"}, RowB:{col:"valB2"}?

Можно ли спрогнозировать результат такого обновления?

1 Ответ

1 голос
/ 08 марта 2012

Если две записи в одну и ту же строку / столбец имеют одну и ту же метку времени, то связь прерывается путем сравнения значений байтов столбцов, см. CASSANDRA-1039 для получения подробной информации.

В приведенном выше примере записи client2 будут успешными, поскольку клиент 2 записывает значения с байтами [], которые больше, чем у клиента 1.

Как уже отмечали другие, пишите:

RowA:{col:"valA1"}, RowB:{col:"valB1"}

Так же, как две записи,

 RowA:{col:"valA1"}
 RowB:{col:"valB1"}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...