#cassandra
#cassandra
Вопрос:
Я читал, что после того, как вы разрядите узел, вы можете удалить файлы и затем перезапустить. Это работает нормально, но я попробовал это, только осушив все узлы, выключив весь кластер, удалив файлы и перезапустив.
Что произойдет, если я одновременно перезапущу только один узел? Насколько я понял, существует риск того, что перезапущенный узел будет принимать запросы на чтение и выполнять восстановление чтения с использованием данных из другой реплики.
Кто-нибудь знает наиболее надежную процедуру для усечения пространства ключей, оставляя весь кластер включенным для обслуживания других пространств ключей?
Ответ №1:
$ bin/cassandra-cli -h localhost
[default@unknown] use keyspace1;
Authenticated to keyspace: Keyspace1
[default@Keyspace1] truncate standard1;
standard1 truncated.
По замыслу, это не является защитой от гонки (для этого потребовалась бы блокировка в тяжелом весе); обычно вы сокращаете только CF, который в любом случае не обслуживает чтение в реальном времени. но если по какой-то причине вы должны сначала отключить восстановление чтения («обновить семейство столбцов standard1 с помощью read_repair_chance = 0»).
Комментарии:
1. Есть ли разница между запуском усечения из cli старой школы и cqlsh? Будет ли это работать с любым из них? Или вы рекомендуете использовать cassandra-cli для устаревших семейств col вместо выполнения усечения из cqlsh?
2. Использование cqlsh всегда будет работать. Нет причин использовать старый cli.