Производительность от S3 до EC2 для получения большого количества небольших файлов.

StackOverflow https://stackoverflow.com/questions/804333

Вопрос

У меня есть большая коллекция фрагментов данных размером 1 КБ (порядка нескольких сотен миллионов), и мне нужен способ хранения и запроса этих фрагментов данных.Блоки данных добавляются, но никогда не удаляются и не обновляются.Наш сервис развернут на платформе S3, EC2.

Я знаю, что Amazon SimpleDB существует, но мне нужно решение, независимое от платформы (например, на случай, если нам понадобится выйти из AWS).

Итак, мой вопрос: каковы плюсы и минусы этих двух вариантов хранения и извлечения фрагментов данных.Как можно сравнить производительность?

  • Храните фрагменты данных в виде файлов на S3 и ПОЛУЧАЙТЕ их при необходимости.
  • Храните фрагменты данных в кластере MySQL Server.

Будет ли такая большая разница в производительности?

Это было полезно?

Решение

Вам нужно предоставить доступ к этим фрагментам данных непосредственно пользователям вашего приложения?Если нет, то запросы S3 и HTTP GET являются излишними.Учитывая также, что S3 является защищенным сервисом, накладные расходы на каждый запрос GET (всего для 1 КБ данных) будут значительно большими.

Кластер серверов MySQL был бы лучшей идеей, но для работы в EC2 вам необходимо использовать Elastic Block Storage.Наконец, не исключайте SimpleDB.Возможно, это лучшее решение вашей проблемы.Тщательно проектируйте свою систему, и в будущем вы сможете легко перейти на другие системы баз данных (распределенные или реляционные).

Другие советы

Я пытался использовать S3 как своего рода «базу данных», используя крошечные XML-файлы для хранения объектов структурированных данных и полагаясь на «ключи» S3 для поиска этих объектов.

Производительность была неприемлемой даже для EC2 — задержка до S3 слишком велика.

Запуск MySQL на устройстве EBS будет на порядок быстрее даже при таком количестве записей.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top