info@chtd.ru

+7 (495) 118-29-36

UserDB — Сервис хранения метаданных пользователей (для облачного хранилища данных SmartBox)

Заказчик: LG Electronics


Разработка ядра системы SmartBox — облачного хранилища данных LG Electronics (аналог iCloud, система удаленного хранения, синхронизации и обработки данных).

Реализованные возможности

— Функции файловой системы, в том числе различные виды доступа (по пользователю; по устройству — устройство может подключаться к системе). Строятся виртуальные папки по типу содержимого файлов, файлы одного типа раскладываются по датам, темам и т. п.

— Распознавание метаданных, таких как длительность, размеры, и т. д. Поворот картинок, построение thumbnails для видео и картинок.

— Транскодинг. Распознается формат новых видеофайлов, загруженных в систему, файл перекодируется в формат, удобный для просмотра на устройстве конкретного пользователя. При просмотре учитывается тип устройства и выбирается соответствующий формат.

— Закачка по частям (multipart uploading). На основании сервиса Amazon реализован интерфейс для клиентов системы, позволяющий использовать закачку по частям. UserDB подписывает (удостоверяет) запросы клиентов, которые затем обращаются напрямую к соответствующим сервисам Amazon.

— Видеостриминг — просмотр видео онлайн с любого устройства.

— PVR — интегрированный сервис видеозаписи (телепередач). Записанное видео можно увидеть в домашнем каталоге и сразу же посмотреть.

— Промопапки. При создании нового пользователя в его домашний каталог копируются заданные по умолчанию файлы и папки.

— Возможность использования промокодов, инвайтов.

Особенности
  • Двухуровневое хранилище
    • Данные пользователей (файлы, контент) хранятся в облаке Amazon S3
    • Метаданные файлов и настройки пользователей хранятся в распределенной базе данных PostgreSQL, которая может быть размещена как в облаке, так и вне его.

  • Высокие нагрузки
  • Массовые операции по закачке и скачиванию данных производятся напрямую с/на облачное хранилище Amazon, система лишь подписывает эти запросы с помощью цифровой подписи, обеспечивается возможность работы под большой нагрузкой.


  • Взаимодействие большого количества сервисов
  • Сервисы реализованы как различные процессы, взаимодействующие между собой через очереди Amazon SQS.


  • Масштабируемые сервисы обработки

  • Автоматическое масштабирование всей системы. При возрастании нагрузки автоматически подключаются к работе новые серверы, при снижении нагрузки число серверов уменьшается.
Архитектура

Система состоит из трех подсистем:

  1. Интерфейс
  2. Хранилище данных
  3. Асинхронные процессы

Интерфейс состоит из множества идентичных приложений, на которые переадресуются запросы клиентов балансировщиком нагрузки (например nginx), в циклическом или случайном порядке.

Хранилище данных представляет собой распределенную (sharding) базу данных. Распределение производится по однобайтному ключу (256 вариантов). Каждый экземпляр базы поддерживает определенное подмножество ключей (например при 2-х базах — два диапазона 0-127 и 128-256). Ключи вычисляются по логину пользователя.

Асинхронные процессы занимаются дополнительными действиями, не связанными с немедленной реакцией на запрос: транскодинг, определение метаданных и т.п.

Каждый экземпляр интерфейса соединяется со всеми экземплярами хранилища. Интерфейс взаимодействует с внешними сервисами: Admin, Billing, Notification-gate, а также с внешним хранилищем данных Amazon/S3/SQS. Асинхронные процессы работают с хранилищем данных и внешними очередями на Amazon/SQS.


+7 (495) 118-29-36

info@chtd.ru

г. Москва, Сущевский вал, 5с3