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

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

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

По сравнению с прошлым выпуском в MongoDB 2.6 внесены следующие значительные улучшения:

  • Полностью переписан движок выполнения запросов с целью увеличения масштабируемости и упрощения сопровождения кодовой базы. Реализована поддержка пересечения индексов, которая стала первым шагом к созданию планировщика сложных запросов. В MongoDB 2.6 также заложены возможности для включения в следующем выпуске значительных улучшений в области обеспечения параллельной обработки запросов и реализации блокировок на уровне отдельных документов;
  • Расширены возможности по агрегированию данных. Реализована возможность возврата результирующих наборов любого размера путем возврата курсора или записи вывода в коллекцию. При обеспечении агрегирования данных теперь допустимо использовать переменные или новые операторы для обработки наборов и редактирования данных. Для анализа выполнения операций агрегирования добавлена поддержка оператора explain;
  • Включен по умолчанию механизм поиска текста в документах с использованием специального типа индексов "text", допускающего выполнение поисковых запросов в режиме реального времени с использованием стемминга и токенизации, в том числе для русского языка. Модернизирован формат индекса "text";
  • Реализация операций добавления (insert) и обновления данных (update) расширена в направлении увеличения непротиворечивости изменённых данных (например, обеспечено сохранение порядка следования полей в документе). При обновлении данных обеспечена возможность использования операторов $bit, $min, $max, $currentDate, $mul;
  • Представлен новый протокол для выполнения операций записи, обеспечивающий более высокую надёжность и предоставляющий улучшенные средства пакетной записи;
  • Для платформы Windows началось формирование пакетов в формате MSI;
  • Расширены возможности сервиса MMS (MongoDB Management Service), направленного на упрощение управления экземплярами MongoDB. В дополнение к ранее доступным средствам мониторинга в MMS добавлены компоненты для организации резервного копирования и отката изменений на определённый момент времени. В будущем ожидается появление интерфейса для автоматизации управления кластерами, использующими репликацию или шардинг;
  • Добавлена поддержка аутентификации с использованием LDAP, x.509 и Kerberos, что упрощает интеграцию MongoDB в существующие инфраструктуры предприятий, использующих единый механизм аутентификации;
  • Добавлена поддержка TLS-шифрования трафика при выполении операций обновления кластера и при обращении к mongod и mongos. Повышены требования к качеству используемых шифров (минимум 128 бит). По умолчанию отключена возможность обращения к интерфейсу без шифрования по http;
  • Представлена новая модель авторизации, позволяющая создавать собственные роли (User-Defined Roles) и определять привилегии пользователей на уровне доступа к коллекциям. Реализована глобальная система управления пользователями, обеспечивающая хранения всех пользовательских ролей в административной БД и предоставляющая новые команды для управления пользователями и ролями.


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