У меня есть 3 центра обработки данных Cassandra 3.11, DC1 = 3 узла, DC2 = 1 узел, DC3 = 1 узел.Каждый датацентр находится в другой стране.
Для репликации задано значение:
{'class' : 'NetworkTopologyStrategy', 'DC01' : 3, 'DC02': 1, 'DC03': 1}
Таблицы имеют следующий дизайн:
create table mediastorage.buckets (id text, numBuckets int, numChunks int, filesize int, primary key (id));
create table mediastorage.media (id text, bucket int, chunk int, data blob, primary key ((id, bucket), chunk));
Я пишу большие файлы в это хранилище ключей: 1 МБ - 1 ГБ,Файлы разделяются по 1 МБ на запись, а записи объединяются в разделы по 25 МБ.
После записи данных (CONSISTENCY_ALL) все узлы в локальном DC синхронизируются с полной полосой пропускания, пока узлы не заполнятся полностьюкопия.
Узлы в удаленных контроллерах домена получают начальный поток данных с полной полосой пропускания, но не синхронизируются полностью.Они ремонтируют вовремя, но никогда больше не пробуют это с полной скоростью.Таким образом, файл объемом 1 ГБ занимает около часа.
Связи между контроллерами домена заполнены на 100/100 Мбит.Установка файлов WGET между ними не вызывает проблем с полосой пропускания.
- Что является причиной неполной начальной передачи между DC?
- Как заставить Cassandra быстрее восстанавливать данные между DC?