Print This Post Print This Post

Методы размещения данных в компьютерном кластере

Information-icon Тема свободна.
 

Курс: без ограничений. Необходимо знание Java.

Тема из раздела big data. Практически важна. Код будет использован в реальной системе.

Постановка задачи. На компьютерном кластере на каждом узле (компьютере) размещены файлы. Копии одного файла могут встречаться на разных машинах несколько раз. Разработать программу, которая позволяет размещать файлы на узлах кластера, исходя из заданных параметров эффективности доступа к ним (балансировка нагрузки, уменьшение кол-ва передаваемых данных между узлами и т.п.). Перемещать файлы между узлами необходимо путем копирования файлом с одной машины на другую. Язык Java.

Основные сложности:

  • размер файлов 0..16 Гбайт (копировать не быстро)
  • использование технологии ZeroCopy
  • узлы могут выходить из строя во время копирования, сетевое соединение может прерываться –> файл может быть поврежден либо недокопирован
  • следовательно, нужны CRC, распределенный протокол подтверждения гарантии целостности и завершенности операции (commit), сборка “мусора” (недокопировавшихся частей)
  • нужно обеспечить прерывание/паузу копирования в любой момент
  • обеспечить ограничение пропускной способности (не более Х Мбайт/сек)

Очерки алгоритмов реализации разработаны, будут объяснены выбравшему тему студенту.