Самый быстрый вариант nosql для сокращения числа? - PullRequest
1 голос
/ 01 июня 2011

Я всегда думал, что Mongo обладает отличной производительностью благодаря функциональности mapreduce, но сейчас я читаю, что это медленная реализация. Так что, если бы мне пришлось выбирать альтернативу для сравнения, что это должно быть?

Мое программное обеспечение будет таким, что пользователи будут часто иметь миллионы записей, и часто будут сортировать и обрабатывать непредсказуемые подмножества, которые составляют 10 или 100 тысяч. Большая часть анализа данных, использующего полные миллионы записей, может быть выполнена в сводных таблицах и тому подобном. Первоначально я думал, что Hypertable является жизнеспособной альтернативой, но, проводя исследования, я видел в их документах упоминание о том, что Mongo будет более эффективным вариантом, в то время как у Hypertable есть и другие преимущества. Но для моего приложения скорость является моим первым приоритетом.

1 Ответ

1 голос
/ 27 июня 2011

Прежде всего, важно определиться с тем, что является «достаточно быстрым».Несомненно, есть более быстрые решения, чем карта / сокращение MongoDB, но в большинстве случаев вы можете рассчитывать на значительно более высокую стоимость разработки.

Это означает, что карта / уменьшение MongoDB работает во время записи в одном потоке, что означает, что он не будет использовать все доступные ему процессоры.Кроме того, у MongoDB очень мало собственных функций агрегирования.Это будет исправлено с версией 2.1 и выше, что должно улучшить производительность (см. https://jira.mongodb.org/browse/SERVER-447 и http://www.slideshare.net/cwestin63/mongodb-aggregation-mongosf-may-2011).

Теперь, что хорошо в MongoDB - это легко масштабировать, особенно когда дело касается чтения.И это важно, потому что лучшее решение для перехвата чисел в больших наборах данных, безусловно, является облаком карт / редукции, как предложил Аугусто.Низкий уровень легко решается добавлением большего количества фрагментов Монго. Слишком низкая производительность обработки / агрегирования чисел решается добавлением большего количества блоков m / r. В основном производительность становится функцией числа экземпляров, зарезервированных для проблемы, и, следовательно, стоимости.

...