Масштабирование и производительность Couch DB - PullRequest
3 голосов
/ 23 декабря 2009

Я рассматриваю реализацию сервера CouchDB для обеспечения специального поиска некоторых метаданных, которые мы храним для внутренней бизнес-операции.

Мы храним ряд «атрибутов», таких как размер, источник, дата отправки и URL для «заданий» в нашем внутреннем процессе.

Это хорошо в нашей реляционной базе данных, но наши пользователи хотели бы создавать списки похожих вакансий, предоставляя «критерии поиска», аналогичные поиску в Google. Таким образом, пользователь может сказать «показать мне все работы, которые больше XXX и отправлены после YYY», и получить список описаний и URL-адресов.

Это звучит идеально для Куша, и из того, что я исследовал, похоже, что оно будет работать хорошо.

Мой вопрос: насколько хорошо он будет масштабироваться с соответствующим оборудованием? У нас есть от 150 до 200 миллионов таких документов и от 11 до 30 атрибутов на документ. Размер метаданных не должен превышать несколько килобайт.

Я изначально смотрю на наличие четырехъядерного сервера (ВМ), который подает его для тестирования, но мне нужно, чтобы он масштабировался для поддержки 100-250 пользователей одновременно.

Я знаю, что могу сделать это с большинством серверов БД, но я ищу что-то, что обеспечивает специальный запрос (через REST или HTTP хорошо, у нас есть свои собственные инструменты поиска).

Кто-нибудь имел опыт настройки Couch и использования его для производственных нагрузок на этом уровне?

1 Ответ

4 голосов
/ 23 декабря 2009

Параллельные соединения не являются проблемой, Erlang и CouchDB созданы для одновременной производительности.

Думаете ли вы, что вам придется динамически генерировать новые функции карты, потому что это вроде как звучит?

Всякий раз, когда вы добавляете новую функцию карты вида, вы сталкиваетесь с большим узким местом при первоначальном создании вида.

Если вы используете представления erlang, они генерируют намного быстрее, чем представления javascript, поскольку они не выполняют этап сериализации JSON, это может значительно повысить производительность генерации представления.

Как только представление будет сгенерировано, оно будет довольно быстрым, даже с тем размером, о котором вы говорите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...