Релиз документо-ориентированной СУБД MongoDB 1.6

Анонсирован релиз MongoDB 1.6, ориентированной на хранение документов высокопроизводительной и высокомасштабируемой СУБД, занимающую нишу между быстрыми и масштабируемыми системами, оперирующими данными в формате ключ/значение, и реляционными СУБД, функциональными и удобными в формировании запросов. Код MongoDB написан на языке C++ и распространяется в рамках лицензии AGPLv3.

БД поддерживает хранение документов в JSON-подобном формате, имеет достаточно гибкий язык для формирования запросов, может создавать индексы для различных хранимых атрибутов, эффективно обеспечивает хранение больших бинарных объектов, может работать в соответствии с парадигмой Map/Reduce, поддерживает репликацию и построение отказоустойчивых конфигураций.

Основная работа при подготовке версии MongoDB 1.6 была направлена на увеличение масштабируемости. В частности, доведена до готовности к промышленной эксплуатации поддержка шардинга (распределение набора данных по серверам на основе определенного ключа). Комбинируя шардинг с возможностями репликации данных можно построить горизонтально масштабируемый кластер хранения данных, в котором отсутствует единая точка отказа (сбой любого узла не сказывается на работе БД). Расширение кластера или преобразование одного сервера в кластер производится без остановки работы БД простым добавлением новых машин.

Вторым важным улучшением является поддержка наборов реплик (Replica Sets), позволяющих сконфигурировать высокодоступный кластер, поддерживающий автоматическое восстановление после сбоя и перенос нагрузки с вышедшего из строя узла.

Другие изменения:

  • Репликация с подтверждением: опция "w" позволяет принудительно распространить изменения на N серверов и только после этого вернуть статус успешного операции.
  • При оформлении запросов можно использовать оператор "$or";
  • Число индексов/коллекций расширено до 64;
  • Проведена работа по увеличению эффективности обработки конкурирующих запросов;
  • Добавлен новый оператор $slice;
  • Добавлена поддержка UNIX domain-сокетов и IPv6;
  • Код C++ клиента теперь поставляется в отдельном архиве.

© OpenNet