2. Особенности медиа-файлов
• Большой размер
• Необходимость хранить в разных битрейтах
• Необходимость хранения в разных форматах
• Большой траффик и высокие требования к сети
• Предполагается работа с многими серверами
• Обеспечение сохранности пользовательских данных
Методы организации и экономии дискового пространства при хранении музыки и видео
4. Решение проблем
NGINX
client_max_body_size 100m;
APACHE
LimitRequestBody 104857600
PHP
file_uploads = On - разрешаем загрузку файлов
memory_limit =100М
upload_max_filesize = 100M - максимальный размер
post_max_size = 100M
max_execution_time = 500 - максимальное время загрузки
max_input_time = 500
Методы организации и экономии дискового пространства при хранении музыки и видео
5. Методы организации и экономии дискового пространства при хранении музыки и видео
Прежде чем непосредственно хранить данные, их
необходимо соответствующим образом подготовить
Подготовка файлов к хранению
6. Метаданные
Прежде всего, не плохо было бы извлечь из файла метаданные ID3
PHP библиотека GetID3
GNU General Public License version 2.0 (GPLv2)
Методы организации и экономии дискового пространства при хранении музыки и видео
7. Тонкости подготовки к хранению музыки
Нормализация аудио по громкости
Тримминг композиций
Методы организации и экономии дискового пространства при хранении музыки и видео
8. Перекодировка в различные форматы и битрейты
• Важно определиться с битрейтами и форматами сохраняемых данных
• Не следует искусственно повышать битрейт
Методы организации и экономии дискового пространства при хранении музыки и видео
9. Где и как хранить. Сохранность и доступность
Несколько ОЧЕНЬ ВАЖНЫХ замечаний и хитростей
по поводу того, где и как хранить сами файлы
Методы организации и экономии дискового пространства при хранении музыки и видео
10. Зеркальный RAID
• Простота реализации
• Малая цена по сравнению с другими подходами
• Данные всё равно можно утратить вместе с сервером
• Никак не решает вопрос с доступностью данных
Методы организации и экономии дискового пространства при хранении музыки и видео
11. Бэкап-сервер
• Малая цена
• Бесполезное усложнение логики
• При выходе серверов из строя, для восстановления нормальной работы
могут понадобится дни
• Один «бэкап» сервер не сможет полноценно заменить 10 утраченых по
причине аварии нарушающей Интернет-соединение в дата-центре
Методы организации и экономии дискового пространства при хранении музыки и видео
12. Облака
ОЧЕНЬ ДОРОГО
Аналог одного обычного сервера может обходится по 40000 рэ в месяц!
Методы организации и экономии дискового пространства при хранении музыки и видео
13. Кроссбэкап
• Очень хорошая сохранность данных
• Очень хорошая доступность данных
• Отдача контента в зависимости от маршрута/географического
положения пользователя
• Высокая цена реализации и последующего содержания
Методы организации и экономии дискового пространства при хранении музыки и видео
14. Гибридный кроссбэкап
• Минимальные затраты по цене. Ни одного лишнего диска или сервера
• Нагрузка сбалансирована
• Отсутствует надобность в бэкапе, поскольку у вас всегда есть копия, пускай
и чуть более худшего качества.
• Файлы практически всегда доступны, поскольку даже если не будет
интернета в одном дата-центре, он будет в другом.
• Решается очень важный вопрос с выравниванием нагрузки на новый
сервер. Просто на него в первую очередь загружаются файлы в
максимальном качестве
• Возможность утраты наиболее качественного образца файла (решаемо)
Методы организации и экономии дискового пространства при хранении музыки и видео
16. НЕ ПРАВИЛЬНО
Старайтесь не допускать того, чтобы новые файлы
загружались только на один из серверов
Методы организации и экономии дискового пространства при хранении музыки и видео
ПРАВИЛЬНО
17. FFMPEG - вещь довольно сложная и, соответственно, склонна
ко всякого рода ошибкам
Методы организации и экономии дискового пространства при хранении музыки и видео
18. Лучше не хранить все файлы в одной отдельной папке
Методы организации и экономии дискового пространства при хранении музыки и видео
20. Лучше не удалять сразу файлы по команде пользователя,
а просто пометить их в базе «на удаление»
Методы организации и экономии дискового пространства при хранении музыки и видео
21. На вашем сервере должно быть очень много оперативки для
кэша, иначе жёсткие диски просто не выдержат нагрузки
Методы организации и экономии дискового пространства при хранении музыки и видео
22. Устанавливайте систему, программы, логи и кэши на один
жёсткий диск, а сами медиа-файлы храните на другом
Методы организации и экономии дискового пространства при хранении музыки и видео
23. Выбирайте диски с максимально возможным размером кэша
Методы организации и экономии дискового пространства при хранении музыки и видео
24. Медиа-сервер HTTP сервер
доступ к файлам по сети
сетевая файловая система
Если в сервер уже просто некуда вставлять жёсткие диски. А
надо! Используйте пространство на ваших HTTP серверах
Методы организации и экономии дискового пространства при хранении музыки и видео
25. Если вы пока не знаете с какими дата-центрами работать -
устанавливайте оборудование сразу в три разных компании
Методы организации и экономии дискового пространства при хранении музыки и видео
26. Ретрансляция как метод экономии железа
Методы организации и экономии дискового пространства при хранении музыки и видео
27. Проблема высокой нагрузки на один сервер
При трансляции и музыки и видео возникает проблемы внезапного взлёта
популярности каких-то определённых файлов
Методы организации и экономии дискового пространства при хранении музыки и видео
Сервер №1
Сервер №3
Сервер №2
28. Самостоятельная организация копий самых
популярных файлов на разных серверах – это очень
плохой вариант
Сложно
Долго
Затратно
Методы организации и экономии дискового пространства при хранении музыки и видео
29. Простая реализация ретрансляции
Изначальное подсоединение пользователей не только к тому серверу,
на котором лежит необходимый файл, а на все подряд
Методы организации и экономии дискового пространства при хранении музыки и видео
Сервер №1
Сервер №3
Сервер №2
30. Проблемы ретрансляции при большом количестве серверов
Необходимо заранее оценить внутренний траффик между ними. Постепенно, при
большом количестве данных и клиентов он может заполнить половину, а то и весь
ваш интернет канал
Методы организации и экономии дискового пространства при хранении музыки и видео
31. Продвинутый алгоритм ретрансляции
• В первую очередь, до некоторой степени, нагружаем сам сервер на котором
находится файл
• Потом выбираем ещё один и только один самый свободный сервер
• Выбираем следующий свободный сервер и т.д.
Методы организации и экономии дискового пространства при хранении музыки и видео
РетрансляцияСервер №2 Сервер №3
Сервер №1
32. Дубликаты файлов, что это?
Методы организации и экономии дискового пространства при хранении музыки и видео
33. Хеширование
Самый распространённый. Для тех, кто не знает, этот метод основан на нахождении
некоторого числа, так называемой хеш-суммы, соответствующей каждому файлу.
Наиболее распространённый алгоритм определения такого числа – MD5
Методы организации и экономии дискового пространства при хранении музыки и видео
md5 1622B49BF769CC54EF50C799C245ECEC
34. Обрезаем мета
У абсолютно идентичных файлов они могут быть совершенно разными
Методы организации и экономии дискового пространства при хранении музыки и видео
≠
=
35. MD5 до перекодировки
Методы организации и экономии дискового пространства при хранении музыки и видео
md5 DC3978E2C79E485718A34184B5AF63AB
256 kbit 128 kbit
md5 0E2F7B1423896CFBA5F08F77B8E94424
256 kbit
36. Загрузка файлов в память
Методы организации и экономии дискового пространства при хранении музыки и видео
37. Коллизии
Методы организации и экономии дискового пространства при хранении музыки и видео
md5 DC3978E2C79E485718A34184B5AF63AB
md5 DC3978E2C79E485718A34184B5AF63AB
!
38. Хеширование и идентичные на слух файлы
Два абсолютно идентичных на слух трека, могут быть в абсолютно
разных, с точки зрения байт, файлах
Методы организации и экономии дискового пространства при хранении музыки и видео
md5 DC3978E2C79E485718A34184B5AF63AB
md5 E46C785AFF2CE8AA3CC7E83960EF6204
41. Перекодировку и вычисление всех значений лучше
выполнять на каждом сервере при загрузке композиций
подготовка
вычисления
перекодировка
хранение
подготовка
вычисления
перекодировка
хранение
Сервер №1 Сервер №3
подготовка
вычисления
перекодировка
хранение
Сервер №2
к №1
от №3
Методы организации и экономии дискового пространства при хранении музыки и видео
42. Данные лучше хранить в отдельной базе, поскольку
алгоритмы сравнения параметров могут выходить далеко за
пределы «больше/меньше» и сильно загружать её при
выборке
Основная БД
Сервер БД
подготовка
вычисления
перекодировка
хранение
Медиа-сервер
Вспомогательный сервер
БД «теней»
Методы организации и экономии дискового пространства при хранении музыки и видео
43. Если вы хотите написать всё на PHP или другом скрипте – это
очень плохая идея
Методы организации и экономии дискового пространства при хранении музыки и видео
44. Тщательно тестируйте свои алгоритмы. Ведь нахождение
«теней» при больших объёмах данных может занять недели!
Методы организации и экономии дискового пространства при хранении музыки и видео
45. Внимательно следите за тем, насколько одинаковыми в
вашем представлении должны быть файлы
= ?
Методы организации и экономии дискового пространства при хранении музыки и видео
46. Лучшим подходом, мы считаем, когда определяются не
все дубликаты, но уж точно остаются разные файлы
≠
=
≠
Методы организации и экономии дискового пространства при хранении музыки и видео
47. При работе с похожими файлами, лучше следить за тем,
что когда к вам попадает файл лучшего качества – он
дополняет уже имеющийся
Методы организации и экономии дискового пространства при хранении музыки и видео
96
128
256
320
256
48. Косвенное преимущество при применении методов
определения дубликатов – повышение релевантности
Одним из приятнейших следствий применения алгоритмов поиска дубликатов,
помимо экономии дискового пространства, является их влияние на выдачу
поискового движка
Методы организации и экономии дискового пространства при хранении музыки и видео
49. Запрет на закачивание определённых (или похожих) файлов
Важным моментом, касающимся работы с медиа, является авторское право
Методы организации и экономии дискового пространства при хранении музыки и видео
50. Особенности организации таблиц БД - дубликаты
Методы организации и экономии дискового пространства при хранении музыки и видео
51. Особенности организации таблиц БД - статистика
Сразу же следует задуматься о статистике. Если она предполагается. Обычно,
она очень часто изменяется и лучше сразу вынести её в отдельную таблицу
Методы организации и экономии дискового пространства при хранении музыки и видео
52. WWW.VOLNOREZ.COM
СПАСИБО ЗА ВНИМАНИЕ!
Пожалуйста, задавайте вопросы
info@volnorez.com
http://volnorez.com
Пример работы «теней»
http://volnorez.com/shadows
Скачать доклад
http://volnorez.com/presentations
Матвеев Артур