Я новичок в Кассандре. Я не могу понять . В чем преимущество использования счетчика в таблице (или даже в другой таблице, если столбцы без счетчика не являются частью составного PRIMARY KEY)? Почему мы не используем столбец с типом Int, когда у меня будут такие выражения, как x = x ++; в чем разница между использованием int или counter?
Можно ли использовать приращения или декременты для Int Type в Cassandra?Столбец Counter Vs Int в Кассандре?
4
A
ответ
7
Почему мы не используем столбец с типом Int, когда у меня будут некоторые утверждения, такие как x = x ++; в чем разница между использованием int или counter?
Так, используя обычный столбец Int требует чтения перед тем, писать и замок для таких операций, как x=x++
Действительно, для распределенной базы данных, когда вы можете иметь одновременно обновления на том же , единственный способ гарантировать согласованное поведение для x=x++
:
- заблокировать текущую запись
- прочитать текущее значение х, увеличение его на 1
- обратной записи новое значение х
- релиз замок
Счетчик тип позволяет одновременное увеличение/уменьшение на величину без ни требующий , не превышающий, но не блокировка
Спасибо за хороший ответ. Но мне нужна дополнительная информация. Мы можем управлять уровнем согласованности в CQL; возможно ли это, когда у нас есть счетчик? если мы выберем высокий CL, то счетчик потребует блокировки? в случае важности последовательности для нашего сценария, какой подход лучше? используя INT? или используя счетчик с высоким CL? – Elnaz
Вы можете использовать уровень согласованности с счетчиком. У НИЧЕГО нет блокировки. Посмотрите на эти слайды, чтобы понять уровень согласованности: http://www.slideshare.net/doanduyhai/cassandra-introduction-nantesjug/24 – doanduyhai
Я не понимал, может ли сам тип счетчика гарантировать его согласованность или нет. когда мы просто используем x = x ++; как он может понять, увеличилось ли оно до или нет. может LTW помочь нам в этой ситуации? если да, то как? Благодарю. – Elnaz