JBOD по проблеме Кассандры

У меня есть кластер cassandra с 3 узлами с конфигурацией JBOD. У меня есть 4 диска для данных /data1, /data2, /data3, /data4. Теперь мы часто сталкиваемся с проблемой свободного места на диске на узлах. В настоящее время /data1 заполнен (100%), а на других дисках /data2(26%),/data3(34%), data4(17%), используемых на узле 1 и других узлах, достаточно места на всех дисках.

1) Итак, мой вопрос: если какие-либо запросы поступят в кластер cassandra, а данные будут отправлены в /data1 на node1, что произойдет? Запрос не выполнен? или cassandra справится и запишет на другой диск, на котором есть место?

2) JBOD полезен в кассандре, кроме аварийного восстановления диска?

Заранее спасибо!

ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
1
0
202
1

Ответы 1

Данные должны распределяться равномерно. Вы добавляли эти диски по одному или все сразу?

Подробнее о том, как это работает, можно прочитать в статье Энтони Грассо на странице http://thelastpickle.com/blog/2018/08/22/the-fine-print-when-using-multiple-data-directories.html.

Его и мое предложение заключается в том, что если вы хотите использовать много дисков/каталогов данных, попробуйте объединить их с LVM или ЗФС.

Спасибо, Рахул, но данные не распространяются, как я уже упоминал в своем вопросе. Да, все диски добавляются только во время установки. Но мой вопрос выше 2, что я описал.

LetsNoSQL 18.03.2019 04:39

Тогда у вас могут быть широкие разделы для некоторых данных, и эти широкие разделы должны быть объединены в SSTables по очевидным причинам. Возможно, вы захотите посмотреть, насколько велики ваши разделы, и посмотреть, есть ли действительно большие разделы.

Rahul Singh 19.03.2019 14:40

Это причина того, что данные распределяются неравномерно, верно? @ Рахул, а как насчет моих двух вопросов выше?

LetsNoSQL 19.03.2019 15:08

В то время как новые данные, будь то потоком или новыми вставками, будут поступать на разные диски, но пока они думают, что старые SSTables все еще там, они будут продолжать идти на disk1.

Rahul Singh 19.03.2019 20:40

@Спасибо, Рахул, за уделенное время. Таким образом, cassandra будет управлять автоматически, если /data1 будет заполнен (100%), тогда она запишет данные на другой диск, и мой запрос не завершится ошибкой. Насколько я понимаю, sstables неизменны, тогда почему cassandra будет думать о старых sstables?

LetsNoSQL 20.03.2019 05:55

При сжатии избыточные записи «уплотняются», и все обновления раздела перемещаются рядом друг с другом. В это время старые записи очищаются/собираются мусор. docs.datastax.com/en/cassandra/3.0/cassandra/dml/…

Rahul Singh 27.03.2019 20:24

Хорошо, есть ли какие-либо конфигурации, в которых мы можем установить пороговое значение диска для всех дисков с использованием JBOD, чтобы мы могли избежать подобных проблем, а сжатие и запись происходили гладко?

LetsNoSQL 17.04.2020 08:09

Другие вопросы по теме