2016-02-15 1 views
4

Я новичок в Кассандре. Я не могу понять . В чем преимущество использования счетчика в таблице (или даже в другой таблице, если столбцы без счетчика не являются частью составного PRIMARY KEY)? Почему мы не используем столбец с типом Int, когда у меня будут такие выражения, как x = x ++; в чем разница между использованием int или counter?
Можно ли использовать приращения или декременты для Int Type в Cassandra?Столбец Counter Vs Int в Кассандре?

ответ

7

Почему мы не используем столбец с типом Int, когда у меня будут некоторые утверждения, такие как x = x ++; в чем разница между использованием int или counter?

Так, используя обычный столбец Int требует чтения перед тем, писать и замок для таких операций, как x=x++

Действительно, для распределенной базы данных, когда вы можете иметь одновременно обновления на том же , единственный способ гарантировать согласованное поведение для x=x++:

  1. заблокировать текущую запись
  2. прочитать текущее значение х, увеличение его на 1
  3. обратной записи новое значение х
  4. релиз замок

Счетчик тип позволяет одновременное увеличение/уменьшение на величину без ни требующий , не превышающий, но не блокировка

+0

Спасибо за хороший ответ. Но мне нужна дополнительная информация. Мы можем управлять уровнем согласованности в CQL; возможно ли это, когда у нас есть счетчик? если мы выберем высокий CL, то счетчик потребует блокировки? в случае важности последовательности для нашего сценария, какой подход лучше? используя INT? или используя счетчик с высоким CL? – Elnaz

+1

Вы можете использовать уровень согласованности с счетчиком. У НИЧЕГО нет блокировки. Посмотрите на эти слайды, чтобы понять уровень согласованности: http://www.slideshare.net/doanduyhai/cassandra-introduction-nantesjug/24 – doanduyhai

+0

Я не понимал, может ли сам тип счетчика гарантировать его согласованность или нет. когда мы просто используем x = x ++; как он может понять, увеличилось ли оно до или нет. может LTW помочь нам в этой ситуации? если да, то как? Благодарю. – Elnaz