#cassandra
#кассандра
Вопрос:
Что нам нужно для синхронизации двух процессов, которые будут получать данные из одной и той же базы данных cassandra?
Визуализация, что cassandra потребуется сохранить «целое» значение, которое изменяет значения в соответствии с «запросом».
Изначально это значение равно нулю, приходит новый запрос, и мы вызываем add(new_val), чтобы добавить новый номер к существующему в БД. Давайте сохраним сценарий простым…
Но что происходит, когда два разных запроса записываются одновременно в одной и той же точке строки cassandra? Как мы можем гарантировать, что выбрано правильное значение? Это то, что предлагает cassandra?
Ответ №1:
то, о чем вы просите, — это распределенная блокировка, и в терминах CAP вы просите согласованную систему.
Что касается части согласованности, Cassandra может быть последовательной, если вы следуете правилу R W> N, но тогда вы влияете на свой допуск раздела, когда вы создаете систему CA, если вы следуете этому правилу, вместо того, чтобы создавать систему AP, которая используется по умолчанию.
Что касается распределенной блокировки, насколько я знаю, Cassandra этого не допускает, но вы можете использовать другие системы (например, Redis или zookeeper) для обеспечения этой функциональности, но это, конечно, увеличивает сложность и обслуживание / мониторинг вашей системы.
Комментарии:
1. Спасибо, что касается распределенной блокировки, есть ли какой-нибудь пример?