Могут ли DynamoDB или SimpleDB заменить мой вариант использования MongoDB? - PullRequest
4 голосов
/ 20 февраля 2012

Мне было интересно, могут ли DynamoDB или SimpleDB заменить мой вариант использования MongoDB?Вот как я использую MongoDB

  • 15k записей и добавляю 200 записей в час
  • 15 столбцов, каждый из которых индексируется с использованием (sureIndex)
  • Половинастолбцы являются целыми числами, остальные - текстовые поля (которые в основном имеют не более 10 уникальных значений)
  • Я выполняю около 10 000 операций чтения БД в час, и они сейчас очень быстры с MongoDB.Это сайт онлайн знакомств.Таким образом, средний запрос Монго выполняет поиск по диапазону по двум столбцам (например, возраст и рост), а поиск по IN - примерно по 4 столбцам (например, этническая принадлежность - A, B или C ... религия - A, B,ro C).
  • Я использую лимит и очень часто пропускаю (например, принесите мне первые 40 записей, следующие 40 записей и т. д.)
  • Я использую perl для чтения / записи

Ответы [ 2 ]

10 голосов
/ 20 февраля 2012

Я предполагаю, что вы спрашиваете, потому что хотите перейти непосредственно на решение для персистентности AWS?И DynamoDB, и SimpleDB являются хранилищами k / v, и поэтому они не заменят хранилище документов, такое как MongoDB.

За исключением лимита / пропуска (для которого требуется больше k/ v совместимый подход) все ваши функциональные требования могут быть легко удовлетворены любым из двух упомянутых вами решений (хотя DynamoDB, на мой взгляд, является лучшим вариантом), но это не будет главной проблемой.Основная проблема будет заключаться в том, чтобы перейти от хранилища документов, особенно с широкими возможностями запросов, к хранилищу ak / v.Вам нужно будет переработать вашу схему, переосмыслить ваши индексы, работать в рамках ограничений хранилища ak / v, использовать преимущества хранилища ak / v и т. Д.

Откровенно говоря, если ваше текущее решение работает и если MongoDBпохоже на хорошую функциональную подгонку, я бы, конечно, не мигрировал, если у вас нет очень веских нетехнических причин для этого (например, например, ваш босс хочет, чтобы вы;))

Что бы вы сказали, этопричина, по которой вы рассматриваете этот шаг или вы просто исследуете, возможно ли это вообще?

4 голосов
/ 20 февраля 2012

Если вы планируете разместить свое полное приложение на AWS, то вы также можете рассмотреть возможность использования Amazon RDS (размещенный управляемый MySQL).Из вашего описания не ясно, действительно ли вам нужна модель документа MongoDB, поэтому, учитывая только возможности запросов, RDS может приблизиться к тому, что вам нужно.

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

  1. SimpleDB индексирует все атрибуты
  2. тамЕсть много советов и приемов, которые вам необходимо узнать о SimpleDB (см. , что узнали ребята из Netflix при использовании SimpleDB )
  3. Модель ценообразования DynamoDB основана на фактической записи / чтенииоперации (см. мои заметки о DynamoDB )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...