The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

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

08.12.2017 10:19

Доступен стабильный выпуск документо-ориентированной СУБД 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.


  1. Главная ссылка к новости (https://www.mongodb.com/blog/p...)
  2. OpenNews: MongoDB прекращает поддержку платформы Solaris
  3. OpenNews: Следом за MongoDB начались атаки на CouchDB, Hadoop и ElasticSearch
  4. OpenNews: Число серверов MongoDB, поражённых шифровальщиком, увеличилось до 28 тысяч
  5. OpenNews: Вымогатели-шифровальщики переключились на незащищённые СУБД MongoDB
  6. OpenNews: Релиз документо-ориентированной СУБД MongoDB 3.2
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/47702-mongodb
Ключевые слова: mongodb, nosql
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (37) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 11:10, 08/12/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –7 +/
    Чем отличается от Elasticsearch?
     
     
  • 2.2, Аноним (-), 11:13, 08/12/2017 [^] [^^] [^^^] [ответить]  
  • +8 +/
    Тем, что работает.
     
     
  • 3.3, 122 (?), 11:20, 08/12/2017 [^] [^^] [^^^] [ответить]  
  • +15 +/
    Работает и MongoDB и Elasticsearch.
    Только MongoDB - БД, а ES - поисковый движок (да, я знаю, что его тоже можно использовать как БД).
    Разные продукты, разные задачи. Сравнивать всё равно что пчелу и осу.
     
     
  • 4.24, Аноним (-), 12:21, 08/12/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    БД у ElasticSearch же Lucene, сам он только обёртка
    Есть SphinxSearch с теми же фичами, только с ним можно как с MySQL работать на простых вещах
     
     
  • 5.28, 122 (?), 12:29, 08/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    SphinxSearch настраивать сложнее, менее гибкий + нужно иметь основную СУБД с данными + нет нормального ширдинга + отложенная индексация.
    Тут под задачи нужно смотреть, ES больше ресурсов жрёт.
     
     
  • 6.71, Аноним (-), 17:08, 08/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    а вы собрались юзать ES без основной базы данных? Рили?
     
     
  • 7.79, 2453 (?), 20:10, 08/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > а вы собрались юзать ES без основной базы данных? Рили?

    В чём сложность?

     
     
  • 8.93, Аноним (-), 03:12, 10/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Данные ES теряет А так сложностей нет ... текст свёрнут, показать
     
  • 4.61, username (??), 14:56, 08/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Запомните, никогда не завязывайтесь на использование  es как бд. Это аукнется в перспективе.
    Да и направление у конторы сейчас стремительное в сторону вендорлока, перелазим на солр потихоньку. Он похорошел под воздействием конкурентов.
     
     
  • 5.78, 2453 (?), 20:09, 08/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    А можно поподробнее??? По первому пункту проблем особых не было, да и по второму (хотя уже давно не слежу за развитием проекта)
     
  • 2.4, Аноним (-), 11:33, 08/12/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А чем монга отличается от апача?
     
     
  • 3.9, Аноним (-), 11:45, 08/12/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Только тем, что "Апаче" - бренд-зонтик для opensource продуктов
     
  • 2.89, Аноним (-), 12:46, 09/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Колёсами
     

  • 1.34, Аноним (-), 12:38, 08/12/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Главное что документоориентированная, а то набегут sjw и обвинят в неправильной ориентации
     
  • 1.60, Аноним (-), 14:54, 08/12/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Там уже ввели поддержку транзакций и добавили язык запросов, не использующий идиотский, для этого, JSON?
     
     
  • 2.65, лютый жабист__ (?), 16:12, 08/12/2017 [^] [^^] [^^^] [ответить]  
  • –7 +/
    >язык запросов, не использующий идиотский, для этого, JSON

    Ты бы почитал (если подумать не получилось) для чего JSON придуман. Он тут вполне уместен, уж точно уместнее чисто текстового SQLя.

    >ввели поддержку транзакций

    Чтобы получился тормозной и не масштабируемый Постгрес?


     
     
  • 3.69, Аноним (-), 16:55, 08/12/2017 [^] [^^] [^^^] [ответить]  
  • +4 +/
    который уделывает это творение в разы по скорости
     
  • 3.72, Аноним (-), 17:32, 08/12/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Ты бы почитал (если подумать не получилось) для чего JSON придуман. Он тут вполне уместен, уж точно уместнее чисто текстового SQLя.

    Я то как раз знаю, что JSON придуман вовсе не для использования в качестве языка запросов базы данных.

    > Чтобы получился тормозной и не масштабируемый Постгрес?

    Чтобы этим можно было пользоваться для хоть сколько нибудь серьёзных целей.

     
     
  • 4.92, лютый жабист__ (?), 21:03, 09/12/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >JSON придуман вовсе не для использования в качестве языка запросов базы данных

    JSON это не язык.

    >Чтобы этим можно было пользоваться для хоть сколько нибудь серьёзных целей.

    Ну куда уж ИМ (https://www.mongodb.com/who-uses-mongodb) до твоих серьёзных целей.

     
  • 3.73, анонимус (??), 17:43, 08/12/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    А ничего что монга сама использует "тормозной и немасштабируемый постгрес"?

    https://www.linkedin.com/pulse/mongodb-32-now-powered-postgresql-john-de-goes/

     
     
  • 4.82, _ (??), 23:41, 08/12/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это удар ниже пояса! :-)
    Хотя жабшикам туда бить бесполезно :))))))
     
  • 4.87, Blind Vic (ok), 11:46, 09/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Вы бы разобрались, о чем там речь, прежде чем позориться.
    https://www.mongodb.com/blog/post/introducing-mongo-connector
     
  • 3.74, Аноним (-), 18:05, 08/12/2017 [^] [^^] [^^^] [ответить]  
  • +6 +/
    > Поддержка причинной консистентности (causal consistency), гарантирующей, что каждая операция чтения в рамках клиентского сеанса всегда учитывает результат предыдущей операции записи

    — а правда что mongodb быстро пишет?
    — да, только правда при чтении такая ерунда получается...

     
  • 3.81, Аноним (-), 22:11, 08/12/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А ничего, что монга на С++, а не на лютой жабе? Чё влез то сюда?
     

  • 1.66, о (?), 16:35, 08/12/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    С непредсказуемым расходом оперативы все также плачевно?
     
     
  • 2.67, SunXE (ok), 16:49, 08/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Настройки по умолчанию предполагают что все ресурсы сервера база забирет на себя. И если вы хотите что-то ещё на нём запускать, нужно эти самые ресурсы базе ограничить.
    Плюс к этому база сильно кэширует данные в память для ускорения работы и запросто сожрёт всё что ей дать, если конечно данных в базе не меньше чем количество выделенной памяти.
     
  • 2.86, лютый жабист__ (?), 11:35, 09/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Уже несколько лет как крутилку сделали. Читать маны не пробовал?
     

  • 1.75, anonymous (??), 18:27, 08/12/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    можно на пальцах про причинную консистентность? что сие? какой пример ее продемонстрирует?
     
     
  • 2.88, ыы (?), 11:57, 09/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Поскольку вот это: https://www.mongodb.com/faq#acid-transactions
    Пытаются хоть как-то...
     

  • 1.76, Rodegast (ok), 18:58, 08/12/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    >  процесс MongoDB теперь привязывается к сетевому адресу localhost и принимает только локальные соединение

    Это называется "назло маме отморожу уши".

     
     
  • 2.77, Аноним (-), 19:05, 08/12/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Написано же, что это когда гарантируется чтение записанных ранее данных, даже если запись была на другом хосте.
    Без подобной гарантии, если, например, есть задержка репликации в 10мс, была запись на один сервер, а через 5мс попытка чтения с другого, то вернутся старые данные.
     
     
  • 3.80, Rodegast (ok), 20:39, 08/12/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Ты сам, то понял что написал?
     
     
  • 4.90, Аноним (-), 12:49, 09/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Он, похоже, комментарием ошибся :-)
     
  • 2.91, Аноним (-), 13:08, 09/12/2017 [^] [^^] [^^^] [ответить]  
  • +/
    >>  процесс MongoDB теперь привязывается к сетевому адресу localhost и принимает только локальные соединение
    > Это называется "назло маме отморожу уши".

    Не совсем. Доморощенные горе-localhost-админы, устанавливающие mongodb с настройками по-умолчанию на всякие одиночные VDS, привели к повальным утечкам данных, учитывая рост популярности продукта у разработчиков. Ребята из MongoDB Inc, видимо, осознали степень ответственности за такое решение и исправили. Странно, что сразу так не сделали.

     
     
  • 3.94, лютый жабист__ (?), 14:21, 10/12/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Монга из официальной монговской юм-репы по дефолту биндится на локалхост (в 3.2 и 3.4)

    Развели вой мимокрокодилы, которые монгу и не пробовали. Или ставили в кривом дистре с мэйнтейнером-лопухом

    Авторизации по дефолту нет. Но на локалхосте сервера приложений это гуд

     
     
  • 4.95, лютый жабист__ (?), 12:00, 11/12/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    From release notes:

    >Previously only the binaries from the official MongoDB RPM (Red Hat, CentOS, Fedora Linux, and derivatives) and DEB (Debian, Ubuntu, and derivatives) packages bind to localhost by default.

    Могучие сисопы опеннета юзают НЕ Red Hat, CentOS, Fedora Linux, Debian, Ubuntu, and derivatives.
    У них вообще серверов, похоже, нет.

     
     
  • 5.96, _ (??), 17:57, 11/12/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Да не - не в этом дело!
    Дело в том, что пЫонеры типо тебя увидев более свежую версию на сайте и не увидев еЯ в репах ... тупо дёргали версию с сайта. Даже не почитав чего с ней родные майнтейнеры творят перед публикацией :-) Ну и выставили голое дузло на общественный доступ\пользование :-)  

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру