Анонсирован релиз Apache CouchDB 1.0.0, ознаменовавший стабилизацию кодовой базы, пригодность для промышленного использования и переход проекта на новый уровень развития. В версии CouchDB 1.0.0 кроме исправления ошибок проведена серия оптимизаций, позволившая до трех раз увеличить производительность записи больших документов в базу. За счет добавления поддержки кеширования параметров аутентификации значительно ускорен процесс соединения с БД. Одновременно выпущен корректирующий релиз Apache CouchDB 0.11.1 в который включены только исправления ошибок, без включения новшеств.

CouchDB (Cluster Of Unreliable Commodity Hardware) представляет собой распределенную, документ-ориентированную базу данных, относящуюся к классу NoSQL-систем. Запросы к CouchDB и индексация данных могут выполняться в соответствии с парадигмой MapReduce, используя для формирования логики выборки данных язык JavaScript. Доступ к БД производится при помощи протокола HTTP с использованием RESTful JSON API. В качестве единицы хранения данных выступает документ, имеющий уникальный идентификатор, версию и содержащий произвольный набор именованных полей в формате ключ/значение. Для организации псевдо-структурированного набора данных из произвольных документов (агрегирования и формирования выборок) применяется концепция формирования представлений (view), для определения которых используется язык JavaScript. На JavaScript также можно определять функции для проверки корректности данных при добавляении в рамках определенного представления новых документов.

CouchDB хранит данные в формате упорядоченного списка и позволяет производить частичную репликацию данных между несколькими БД в режиме «мастер-мастер» с одновременным обнаружением и разрешением конфликтных ситуаций. Каждый сервер хранит свой локальный набор данных, синхронизированный с другими серверами, которые могут переводиться в offline-режим и периодически реплицировать изменения. В частности, данная возможность делает CouchDB привлекательным решением для организации синхронизации настроек программ между разными компьютерами, что уже используется для синхронизации содержимого адресной книги ПК c мобильным телефоном через сервис Ubuntu One.

Ядро системы написано на языке Erlang, оптимизированного для создания обслуживающих множество параллельных запросов распределенных систем. View-сервер написан на языке Си и базируется на JavaScript-движке Mozilla Spidermonkey. Исходные тексты проекта распространяются под лицензией Apache 2.

Источник: http://www.opennet.ru/opennews/art.shtml?num=27305