Производительность от S3 до EC2 для извлечения большого количества маленьких файлов - PullRequest
0 голосов
/ 30 апреля 2009

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

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

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

  • Сохраняйте блоки данных в виде файлов на S3 и получайте их при необходимости
  • Хранить порции данных в кластере MySQL Server

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

Ответы [ 2 ]

2 голосов
/ 14 мая 2009

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

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

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

1 голос
/ 30 апреля 2009

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

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

...