Новая версия БД Apache CouchDB 1.3.0

12 апреля 2013 года

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

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

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

Основные улучшения, добавленные в CouchDB 1.3.0:

  • В HTTP-интерфейсе добавлена поддержка протокола Server-Sent Events для информирования приложения об изменении базы. Реализована экспериментальная поддержка спецификации Cross-Origin Resource Sharing (CORS). Обеспечена возможность ограничения уровня рекурсивной вложенности при перезаписи URL. Обеспечена возможность синхронного хэширования паролей при использовании API /_config/admins.
  • В системе репликации, для увеличения эффективности средств восстановления, в состав идентификатора контрольной точки включен новый серверный UUID;
  • В системе хранения устранены конфликты при удалении и создании документа в рамках одного пакетного задания;
  • В сервере обработки представлений добавлена поддержка изменения дополнительных заголовков ответа до выполнения вызова send().
  • В web-интерфейсе Futon добавлен вывод продолжительности запроса на создание представлений, по умолчанию отключены кнопки для нажатия которых у текущего пользователя нет прав доступа;
  • Для хэширования паролей задействован алгоритм PBKDF2 с возможностью настройки рабочих параметров;
  • Тестовый инструментарий перемещён в CLI-интерфейс;
  • Добавлен новый алгоритм генерации UUID - utc_id;
  • В системе сборки улучшено определение компиляторов C/C++.

Источники

править


 
 
Creative Commons
Эта статья содержит материалы из статьи «Новая версия БД Apache CouchDB 1.3.0», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.