Можно ли ускорить создание представлений / индексов в couchdb несколькими ядрами? - PullRequest
6 голосов
/ 18 февраля 2011

Мы только что преобразовали базу данных журналов времени выполнения приложения из MySQL в CouchDB. Есть около 3M конвертированных документов, занимающих около 7 ГБ.

Затем мы составили сценарий нашего первого представления (с помощью функции Reduce) и выполнили запрос, чтобы вызвать первый запуск этого представления, разобрать создание / создание представления. Это должно занять некоторое время, и я просто сделал «top» на этой машине, чтобы увидеть процесс загрузки процессора / процессора. Я только заметил, что есть 2 тяжелых процесса:

beam.smp 
couchjs

Интересно, что они, кажется, занимают одно ядро, даже если на этой машине 4 ядра. Можно ли заставить couchdb использовать несколько ядер при создании / обновлении представлений?

1 Ответ

8 голосов
/ 19 февраля 2011

В настоящее время это не поддерживается.Я предполагаю, что хорошая многоядерная поддержка усложнит CouchDB.

Пока что CouchDB всегда выбирает простоту вместо функций.(Знаете ли вы, что CouchDB - это всего 18 000 строк кода? Сравните с 1 миллион в MySQL или 100 000 в SQLite .)

Когда индекс представления проектного документа равенздание, он использует один couchjs процесс.Если у вас есть несколько проектных документов, то эти будут работать параллельно.CouchDB будет порождать один couchjs процесс на проектный документ, а ОС будет распределять их по нескольким ядрам.

Однако , если вам действительно нужна производительность, BigCouch - этоApache CouchDB-совместимый и поддерживает поддержку построения индекса параллельного представления с использованием перегруженной архитектуры.

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