четверг, 18 февраля 2010 г.

CouchDB | Тонкости map-функции

Никогда не пишите в map-функции
emit(doc._id, doc);

т.к. при вызове view на жестком диске создается индекс-файл, который будет содержать значения doc._id и doc!

UPDADE: doc - т.е. будут все поля документа.

Возвращайте только новые, просчитанные данные. Ибо есть ключик include_docs=true, при наличии которого БД отдаст кроме того, что в emit ещё и сами документы!

среда, 3 февраля 2010 г.

CouchDB | Простенький скрипт для keep-alive

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

#!/bin/bash

echo "Checking, is CouchDB is alive..."
#замените адрес на свой!
ANSWER=$(curl http://192.168.0.5:5984 -s)

if test $ANSWER
then
    echo "CouchDB is alive!"
else
    echo "Trying to restart..."

    /etc/init.d/couchdb restart
fi

Скрипт можно усложнить - например, после рестарта проверить - запустился ли. Если нет - отсылать письмо админу :-)