Релиз документо-ориентированной СУБД MongoDB 3.6
8 декабря 2017 года
Доступен стабильный выпуск документо-ориентированной СУБД MongoDB 3.6, которая занимает нишу между быстрыми и масштабируемыми системами, оперирующими данными в формате ключ/значение, и реляционными СУБД, функциональными и удобными в формировании запросов. Код MongoDB написан на языке C++ и распространяется в рамках лицензии AGPLv3. Сборки MongoDB 3.6 сформированы для Linux, Windows и macOS.
MongoDB поддерживает хранение документов в JSON-подобном формате, имеет достаточно гибкий язык для формирования запросов, может создавать индексы для различных хранимых атрибутов, эффективно обеспечивает хранение больших бинарных объектов, поддерживает журналирование операций по изменению и добавлению данных в БД, может работать в соответствии с парадигмой Map/Reduce, поддерживает репликацию и построение отказоустойчивых конфигураций.
В MongoDB имеются встроенные средства по обеспечению шардинга (распределение набора данных по серверам на основе определенного ключа), комбинируя который репликацией данных можно построить горизонтально масштабируемый кластер хранения, в котором отсутствует единая точка отказа (сбой любого узла не сказывается на работе БД), поддерживается автоматическое восстановление после сбоя и перенос нагрузки с вышедшего из строя узла. Расширение кластера или преобразование одного сервера в кластер производится без остановки работы БД простым добавлением новых машин.
Особенности(недоступная ссылка) нового выпуска:
- С целью повышения безопасности управляющий процесс MongoDB теперь привязывается к сетевому адресу localhost и принимает только локальные соединение. Без данной привязки администраторы часто по недосмотру открывали доступ к БД для внешних сетей без применения аутентификации, что приводило к массовым утечкам данных и атакам вредоносных шифровальщиков. Для дополнительной защиты конфигураций, которым необходим приём соединений из внешних сетей, предоставлена возможность определения белых списков адресов с которых разрешено подключение к БД;
- Добавлены "потоки изменений", при помощи которых можно организовать отправку приложениям уведомлений об изменении данных в БД. Сведения об изменениях поступают в режиме реального времени и позволяют создавать приложения с использованием методов реактивного и событийно-ориентированного программирования. События обрабатываются при помощи метода watch, при необходимые события можно отсеивать и агрегировать при помощи операторов $match, $project и $redact;
- Возможность автоматического осуществления повторных попыток выполнения операций записи, завершившихся сбоем, без необходимости реализации логики обработки сбоев на стороне приложения. Для включения нового режима представлена опция retryWrites. Например, в случае проблем с сетью будут осуществляться попытки повторного выполнения операции записи до тех пор пока она не увенчается успехом;
- Реализация средств для проверки корректности структуры документов (Schema validation), используя синтаксис, определённый в стандарте IETF JSON Schema. При помощи нового оператора $jsonSchema разработчики теперь могут явно описать структуру документа для каждой коллекции, определив правила вплоть до отдельных столбцов во вложенных массивах. В зависимости от стадий выполнения или приложений можно активировать жесткую проверку соответствия структуры заданным правилам, выключать проверку или применять только к отдельным наборам полей;
- Предоставлен набор новых возможностей для решения задач аналитики. Реализованы новые операции агрегирования данных ($arrayToObject, $objectToArray, $mergeObjects, $dateFromString, $dateFromParts, $dateToParts). Добавлен оператор $lookup, позволяющий формировать выборки, похожие на подзапросы и JOIN-слияния в SQL. Подготовлен модуль для интеграции с системами бизнес-анализа (Tableau, Qlik, SAP Business Objects), позволяющий использовать данные MongoDB в системах аналитики и визуализации, рассчитанных на использование SQL. Подготовлен новый драйвер для языка R, поддерживающий тип BSON;
- Поддержка причинной консистентности ( causal consistency), гарантирующей, что каждая операция чтения в рамках клиентского сеанса всегда учитывает результат предыдущей операции записи, независимо от того какая реплика использовалась для выполнения запроса. Иными словами обеспечивается логическая целостность порядка операций чтения и записи, независимо от того к какому узлу кластера MongoDB обратился клиент;
- Возможность обновления группы элементом в массиве. Оператор $[] позволяет разом обновить значение всех элеменов, а оператор $[{identifier}] часть элементов массива, которые удовлетворяют заданному фильтру (задаётся через опцию arrayFilters);
- Добавлена поддержка сжатия трафика между клиентом и сервером;
- Прекращена поддержка платформы Solaris.
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.