#database #cassandra #replication
#База данных #кассандра #репликация
Вопрос:
Я новичок в Cassandra, во всех руководствах, которые я читал, упоминается, что у нас есть несколько узлов в архитектуре Cassandra, потому что, если у одного есть проблема, другие могут это сделать.
Подвергает ли использование только одного узла риску потери данных?
В основном я работал с реляционными базами данных. Использование одного узла не является проблемой в СУБД (за исключением того, что по какой-то причине служба может быть недоступна, но данные все еще хранятся)
Мой проект не требует высокой доступности, только у меня очень большие данные и я записываю много данных, поэтому я выбрал Cassandra, но я хочу использовать его только с одним узлом
Это проблема для меня? Мои данные скомпрометированы?
Ответ №1:
Использование одного сервера может привести к потере данных — даже в реляционной базе данных, поскольку, хотя у вас могут быть регулярные резервные копии, журнал фиксации / повтора хранится на диске сервера до тех пор, пока не будет заархивирован с сервера. Таким образом, сбой серверного диска на сервере приведет к потере этого журнала и данных с момента последней резервной копии, которая хранится на сервере.
Использование нескольких серверов (реляционных зеркальных или распределенных без sql, таких как Cassandra) обеспечивает дополнительную устойчивость, а также снижает вероятность потери данных, поскольку существует 2 или более копий.
В кластере из 3 узлов с коэффициентом репликации 3 на Cassandra для получения такой же потери данных, что и в случае с одним сервером, потребуется одновременное отключение всех 3 серверов, и все они потеряют свои диски (это предполагает локальный диск, если вы используете SAN, вы теряете преимущество.) -это значительно снижает процентную вероятность потери данных.
Комментарии:
1. Да, я всегда создавал резервные копии своей реляционной базы данных. Но, просматривая учебные пособия Cassandra, я чувствовал, что Cassandra с большей вероятностью потерпит неудачу. Это правильное ощущение? Можно ли обрабатывать его так же, как реляционную базу данных, и ежедневно создавать резервные копии?
2. Поскольку у меня нет надежных серверов, я хочу запустить Cassandra на одном узле, чтобы он имел преимущество только в быстрой записи и обработке большого количества данных.
3. Вероятность сбоя невелика, но он работает на основе того, что аппаратные сбои будут и будут происходить. Лучшая защита — иметь более 1 копии данных.