Релиз документо-ориентированной СУБД MongoDB 2.4
19 марта 2013 года
Доступен релиз ориентированной на хранение документов высокопроизводительной и высокомасштабируемой СУБД MongoDB 2.4, занимающей нишу между быстрыми и масштабируемыми системами, оперирующими данными в формате ключ/значение, и реляционными СУБД, функциональными и удобными в формировании запросов. Код MongoDB написан на языке C++ и распространяется в рамках лицензии AGPLv3.
MongoDB поддерживает хранение документов в JSON-подобном формате, имеет достаточно гибкий язык для формирования запросов, может создавать индексы для различных хранимых атрибутов, эффективно обеспечивает хранение больших бинарных объектов, поддерживает журналирование операций по изменению и добавлению данных в БД, может работать в соответствии с парадигмой Map/Reduce, поддерживает репликацию и построение отказоустойчивых конфигураций.
В MongoDB имеются встроенные средства по обеспечению шардинга (распределение набора данных по серверам на основе определенного ключа), комбинируя который репликацией данных можно построить горизонтально масштабируемый кластер хранения, в котором отсутствует единая точка отказа (сбой любого узла не сказывается на работе БД), поддерживается автоматическое восстановление после сбоя и перенос нагрузки с вышедшего из строя узла. Расширение кластера или преобразование одного сервера в кластер производится без остановки работы БД простым добавлением новых машин.
По сравнению с прошлым выпуском в MongoDB 2.4 внесено 692 изменения, из которых можно отметить следующие значительные улучшения:
- Система шардинга на основе хэшей. Новый механизм шардинга построен поверх ранее предоставляемой системы шардинга на основе диапазонов значений и отличается возможностью использования хэширования для формирования ключей шардинга, определяющих на каком узле будет сохранён тот или иной документ. Применение хэшей позволяет упростить равномерное распределение данных и нагрузку на узлы за счёт того, что документы запрашиваются из хранилища в случайном порядке на основе ключей хешей, при этом метод эффективен в ситуациях, когда характер доступа к документам не является абсолютно предсказуемым;
- Интегрированные массивы (Capped Arrays) - возможность встраивания в документ массивов фиксированной длины. Интегрированные массивы допускают задание типа сортировки и последующего использования операции $push с модификатором $slice для отсечения только последних элементов массива;
- Механизм поиска текста в документах с использованием специального типа индексов "text", допускающего выполнение поисковых запросов в режиме реального времени с использованием стемминга и токенизации для 15 языков, в том числе и русского языка;
- Поддержка GeoJSON. Новый тип индексов 2dsphere для работы с пространственными координатами с задействованием более точной сферической модели. Расширенные средства поиска по координатам, в том числе с учётом пересечения многоугольников;
- Существенное увеличение производительности счётных операций, которые в некоторых ситуациях выполняются на порядок быстрее, чем в прошлой версии. Оптимизация работы движка выполнения запросов позволила ускорить типовые способы доступа к данным;
- Анализатор размера рабочих наборов ( Working Set Analyzer), позволяющий упростить оценку процента использованных ресурсов в кластере MongoDB. Анализатор сообщает сколько уникальных страниц памяти потребовалось серверу за последние 15 минут, что позволяет отслеживать нагрузку в течение долгого времени. Если размер данных за 15 минут приближается к размеру ОЗУ то вероятно стоит подумать над добавлением дополнительных ресурсов в кластер;
- Осуществлён переход на JavaScript-движок V8, используемый для выполнения MapReduce-запросов, определения условий в блоке $where и для работы shell. Переход на V8 позволил увеличить возможности MongoDB по многопоточной обработке запросов;
- Добавлена поддержка аутентификации с использованием Kerberos и система разграничения прав доступа на основе ролей (Role Based Access Control).
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.