nav-img
Evolution

Схема хранения

Хранение данных в CS разделено на 2 уровня: горячее и холодное хранилища.

Горячее хранилище

Более быстрое, но менее эффективное по дисковому пространству хранилище.

  • Данные хранятся в репликах, каждая записанная страница сохраняется на N+1 CS-сервисах. Дополнительный расход по дисковому пространству для схемы кодирования M+N составляет N*100%.

  • Размер фиксируется при создании. Текущее значение по умолчанию: - 5% от общего пространства, если холодное хранилище находится на одном разделе; - раздел целиком, если холодное хранилище находится на отдельном разделе.

  • Может располагаться на HDD девайсах, но не рекомендуется по причине плохой производительности из-за большого количества случайного I/O.

Холодное хранилище

Менее быстрое, более эффективное по дисковому пространству хранилище.

  • Данные хранятся согласно схеме заданной при создании тома, в общем случае — в erasure-кодах, overhead — N/M*100%.

  • Может располагаться на отдельном диске, в том числе на HDD девайсах.

Горячее хранилище аккумулирует в себе случайные, повторяющиеся, короткие записи. В рамках CS чанки разделяются на линейные куски данных — объекты, по умолчанию — единицы мегабайт, размер задается при создании тома. По мере накопления данных в объекте и его «остывания», то есть по прошествии некоторого времени с последней записи, объект перемещается в холодное хранилище. Процесс называется заморозкой. Поскольку erasure-coded данные зависят друг от друга, этот процесс происходит синхронизованно во всей чанк-группе. Процессом управляет мастер-CS, определяемый в каждой чанк-группе.

Последовательная запись от пользователя может производиться напрямую в холодное хранилище, решение об этом принимает CS. Это позволяет избежать overhead промежуточной записи в горячее хранилище и заморозки.

Чтение

Если запрашиваемый участок данных есть в горячем хранилище, чтение производится из него, остальные данные читаются из холодного хранилища.

Чтение не «поднимает» данные в горячее хранилище, но может отложить момент заморозки горячих данных.