Erlang Views в Couch DB - PullRequest
       17

Erlang Views в Couch DB

2 голосов
/ 12 марта 2012

Возможно записать представления в Erlang для запроса Couch DB.Говорят, что представления, написанные на Erlang, быстрее, чем на JavaScript.Эта статья показывает эту возможность.Однако это объясняет, что мы можем ввести Erlang fun как временное представление непосредственно в футоне : веб-интерфейс CouchDB

Вопрос 1: Где я могу найти примеры представлений Couch DB, написанных на Erlang, или хотя бы учебник о том, что требуется для этого (В вашем ответе я был бы признателен за пример представления, написанного на Erlang, в котором показаны все основные методы для отображения и сокращенияа также выбор и фильтрация документов в Couch)?

Вопрос 2: Кроме того, клиент Erlang Couch DB, называемый Hover craft , как говорят, очень намного быстрее, потому что он избегает HTTP-издержек, а такжеЗатраты на преобразование JSON .Как избежать издержек HTTP?

Ответы [ 2 ]

2 голосов
/ 13 марта 2012

Ответ 1 : вот ссылка на "учебник", как его настроить http://wiki.apache.org/couchdb/EnableErlangViews Наиболее важная вещь - это [native_query_servers] erlang = {couch_native_process, start_link, []} на локальномINI-файл, где вы устанавливаете его для использования этого сервера запросов.

Ответ 2 : он позволяет избежать издержек http, поскольку обычный Query Server - это просто автономный процесс, который получает данные в json и обрабатывает их.Таким образом, Couchdb должен сериализовать его в json, а затем десериализовать ответ из процесса с помощью встроенных представлений erlang, вы просто пропустите этот этап.И это главная причина «быстрее».Я не знаю, хранит ли он внутренне скомпилированные представления, но в любом случае это намного быстрее.

1 голос
/ 18 марта 2012

На второй вопрос я отвечу, что судно на воздушной подушке быстрее, потому что вызов couchdb никогда не покидает виртуальную машину. Чтобы использовать судно на воздушной подушке, вы загружаете балки в том же узле, где работает couchdb, и судно на воздушной подушке будет делать эрланговые вызовы непосредственно на couchdb и не покинет узел.

Это, конечно, намного быстрее, чем общение по http, особенно когда приходится конвертировать туда и обратно между json / eterms.

Один недостаток заключается в том, что у couchdb нет erlang api, поэтому ховеркрафт вынужден вызывать функции не-api ниже http-api.

К вопросу об эрланговых взглядах я могу добавить некоторый опыт. Несколько лет назад я опробовал взгляды Эрланга, и я был действительно впечатлен ускорением, которое я получил по сравнению с javascript. Если я правильно помню, это было порядка 5x, поэтому я действительно рекомендую это. Кроме того, отладочные представления стали немного проще

...