#scylla
Вопрос:
Я хочу перезапустить свой кластер БД Scylla. Но я не хочу терять никаких данных.
Потеряю ли я какие-либо данные, если перезапущу один узел за другим?
Ответ №1:
Нет, вы не потеряете данные, если будете выполнять повторный перезапуск. Сцилла хранит данные, реплицированные на нескольких узлах (обычно 3 или более)
В зависимости от вашего коэффициента репликации (RF) и уровня согласованности (CL) во время перезапуска может произойти сбой операций чтения или записи. Смотрите интерактивную калькуляцию здесь https://docs.scylladb.com/getting-started/consistency/#consistency-level-calculator
Ответ №2:
Если «перезапуск узла» просто включает перезапуск Scylla или перезагрузку ядра, на котором он работает, то вы в безопасности: Scylla-это распределенная база данных, предназначенная для обеспечения долговечности и доступности, даже когда узлы временно исчезают из сети. Когда узел временно отключен, все его данные по-прежнему доступны для чтения (из двух других реплик), а также записи продолжают нормально работать и в конечном итоге будут реплицированы на отключенный узел, когда он, наконец, появится (с использованием механизмов «передачи» и/или «восстановления»).
Однако, если под «перезапуском узла» вы подразумеваете что — то более разрушительное-замену его совершенно новым узлом с пустым хранилищем, как в некоторых облачных установках, где узлы имеют временное хранилище. В этом случае вам следует быть более осторожным: если данные узла потеряны, у нас все еще есть еще две реплики, и база данных по — прежнему доступна, но вы должны сообщить кластеру, чтобы он «передал» данные, потерянные узлом, обратно узлу-прежде чем продолжить этот разрушительный перезапуск на дополнительные узлы. Если у вас RF=3 и вы уничтожите одновременно три узла, вы наверняка потеряете данные.