Состоялся (http://blog.mongodb.org/post/132609328153/announcing-mongodb-32) релиз ориентированной на хранение документов высокопроизводительной и высокомасштабируемой СУБД MongoDB 3.2 (http://www.mongodb.org), занимающей нишу между быстрыми и масштабируемыми системами, оперирующими данными в формате ключ/значение, и реляционными СУБД, функциональными и удобными в формировании запросов. Код MongoDB написан на языке C++ и распространяется в рамках лицензии AGPLv3.MongoDB поддерживает хранение документов в JSON-подобном формате, имеет достаточно гибкий язык для формирования запросов, может создавать индексы для различных хранимых атрибутов, эффективно обеспечивает хранение больших бинарных объектов, поддерживает журналирование операций по изменению и добавлению данных в БД, может работать в соответствии с парадигмой Map/Reduce, поддерживает репликацию и построение отказоустойчивых конфигураций.
В MongoDB имеются встроенные средства по обеспечению шардинга (распределение набора данных по серверам на основе определенного ключа), комбинируя который репликацией данных можно построить горизонтально масштабируемый кластер хранения, в котором отсутствует единая точка отказа (сбой любого узла не сказывается на работе БД), поддерживается автоматическое восстановление после сбоя и перенос нагрузки с вышедшего из строя узла. Расширение кластера или преобразование одного сервера в кластер производится без остановки работы БД простым добавлением новых машин.
Особенности (http://docs.mongodb.org/manual/release-notes/3.2/) нового выпуска (https://www.mongodb.com/mongodb-3.2):
- Средства проверки корректности структуры и содержимого документов, реализованные через привязку к документам специального валидатора, определяющего правила для проверки типов, полей и значений;
- Новый движок хранения с шифрованием данных (только для MongoDB Enterprise);
- Новый движок хранения для систем реального времени, размещающий все данные в оперативной памяти;
- Использование SpiderMonkey в качестве JavaScript-движка для mongo shell и сервера mongod;
- Новый модуль для сопряжения с системами бизнес-аналитики, такими как Tableau и Qlikview;
- Compass - графический интерфейс для управления MongoDB, визуализации, изучения данных и формирования выборок без необходимости применения языка запросов MongoDB;
<center><a href="https://www.mongodb.com/assets/mongodb_3_2/cloud-manager-ae8... src="https://www.opennet.me/opennews/pics_base/0_1446757109.png&q... style="border-style: solid; border-color: #e9ead6; border-width: 15px;max-width:100%;" title="" border=0></a></center>
- Новая система визуального профилирования выполнения запросов, позволяющая оценить возникающие задержки и выделить медленные запросы к БД;<center><a href="https://www.mongodb.com/assets/mongodb_3_2/visual-query-prof... src="https://www.opennet.me/opennews/pics_base/0_1446756757.png&q... style="border-style: solid; border-color: #e9ead6; border-width: 15px;max-width:100%;" title="" border=0></a></center>
- Поддержка частичных индексов, включающих только выборочные документы на основании заданного при создании индекса фильтра;
- Использование по умолчанию движка хранения WiredTiger (http://wiredtiger.com/) вместо ранее используемого движка MMAPv1. WiredTiger отличается высоким уровнем масштабуемости на многоядерных системах, предсказуемым временем обработки запроса, не зависящим от числа записей в базе, возможностью блокировки записей на уровне документов и поддержкой хранения данных в сжатом виде;
- Возможность комбинировать данные из нескольких коллекций документов при помощи оператора $lookup, реализующего слияния типа "left outer join".
URL: http://blog.mongodb.org/post/132609328153/announcing-mongodb-32
Новость: http://www.opennet.me/opennews/art.shtml?num=43271
Postgres уже догнали по производительности?
> Состоялся релиз
> The upcoming release will be generally available later this year.WHAT?
У них был другой анонс в блоге, будто уже релиз вышел, а не кандидат:
https://www.mongodb.com/blog/post/announcing-mongodb-3-2"Today we announced the release of MongoDB 3.2, the first since I declared a new era of maturity for our product with 3.0. This release continues to make the case for MongoDB...."
До этого три дня назад было объявление "MongoDB 3.2.0-rc2 is released", после которого вчера опубликовали запись "Announcing MongoDB 3.2". Зачем им два раза объявлять 3.2.0-rc2?
Сдаётся мне, что релиз был, но после каких-то проблем они по тихому его откатили. На сайте до сих пор сбоку висит огромный баннер "MongoDB 3.2".
Админка и система профилирования доступны всем, либо только enterprise?
Проработал с ней 3 года. Ни разу она не высокопроизводительная: PostgreSQL с JSON гораздо быстрее работает.
Ни разу не "удобными в формировании запросов": запросы на Javascript-е тяжелее писать, чем на SQL, особенно сложные. Добрые люди даже написали сайт чтобы конвертить понятный SQL в мутный mongo-ql: www.querymongo.com (сравните там пример, который вам понятнее?).
И да, отказоустойчивая my ass! "сбой любого узла не сказывается на работе БД" извините, вы видно не в теме, но сбой одного узла _всегда_ сказывается на любой БД, вопрос в том насколько сильно. У монги запись идёт только через мастер, причём по очереди, мастер-мастера у монги нет, поэтому у нас сервис вставал, когда мастер уходил в нирвану.
Нет atomic updates, что вообще-то must have для любой БД.
С ней нормально начинаешь работать только когда обращаешься с ней как с обычным key-value store, думая о том, как ключ выглядит в BSON чтобы индекс правильно построить. А JSON-синтаксис только как малополезная плюшка сверху.
В общем, хуже базы данных ещё не видал. Выиграли на грамотном пиаре, хотя сейчас у них появились деньги, и надеюсь что допилят до нормального состояния.
Пока же в ней нет ни одной фичи, которой нет в PostgreSQL. Просто переименовали все БД-термины чтобы подать то же самое под видом нового продукта.
используем монгу в проекте как "встроенную БД" уже 7 лет, пол года как изучаю, чего умеет кластер.> И да, отказоустойчивая my ass! "сбой любого узла не сказывается на работе БД" извините, вы видно не в теме, но сбой одного узла _всегда_ сказывается на любой БД, вопрос в том насколько сильно. У монги запись идёт только через мастер, причём по очереди, мастер-мастера у монги нет, поэтому у нас сервис вставал, когда мастер уходил в нирвану.
любой кластер нужно уметь готовить. Постгресовские кластера - одно, оракловые RAC - другое, монговские - третье, кластер кассандры - четвертое и так далее.
Сейчас мы гоняем кластер монги из 6-ти узлов. Выключение любых двух узлов на работе приложения не сказывается. Конечно "запись идет через мастер", поэтому в кластере организовано всё так, что бы база работа при падении двух узлов (такое вот требование по надежности).
А голосующих узлов сколько?
>запросы на Javascript-е тяжелее писать, чем на SQL, особенно сложныевозможно, просто не стоит хранить реляционные данные в нереляционной СУБД? В интернете есть тонны статей, в которых объясняется, что монга для этого не предназначена, но люди продолжают наступать на те же грабли :)
Справедливости ради Atomic Updates для BLOB много где нет....
>Проработал с ней 3 года. Ни разу она не высокопроизводительная: PostgreSQL с JSON гораздо быстрее работает.Может он работает и быстрее, но с большими ограничениями: частичное обновление json обещают только в 9.5, который еще не вышел. Уникального индекса по элементам json тоже не сделать (как и по обычным array-полям).
>И да, отказоустойчивая my ass! "сбой любого узла не сказывается на работе БД" извините, вы видно не в теме, но сбой одного узла _всегда_ сказывается на любой БД, вопрос в том насколько сильно. У монги запись идёт только через мастер, причём по очереди, мастер-мастера у монги нет, поэтому у нас сервис вставал, когда мастер уходил в нирвану.
Я еще ни разу не видел нормального рабочего master-master решения, которое просто работает. Обычно они встают враскоряку в совершенно непредвиденный момент. У вас точно было достаточное количество голосующих нод для кворума?
>Нет atomic updates, что вообще-то must have для любой БД.
О каких atomic updates вы говорите? Монга обеспечивает атомарность на уровне документа.
>>> Нет atomic updates, что вообще-то must have для любой БД.Попробуйте TokuMX - там есть.
если вам нереляционную распределенную - пошшупайте еще мнезию и распределенные форки беркли. про касандру ничего не скажу, не пользовался, но есть довольные и ею, среди знакомых.
Память она все также выедает?
"всё так же", позорище
> Память она все также выедает?Ради интереса почитайте что такое Memory Mapped Files.
> Возможность комбинировать данные из нескольких коллекций документов при помощи оператора $lookup, реализующего слияния типа "left outer join"Ух ты! Они что джойны сделали?
Нет, это для получения данных в aggregation из разных коллекций. То что раньше костыляли через несколько раздельных mapReduce в промежуточную collection_in_memory теперь можно делать в одном aggregation.
Ключ--значение
И чем это отличается от CLARION и Btrieve?
Элементарно adolfus (ну и мячко у тебя :-/ )Вот смотри сюда: https://www.mongodb.org/community/deployments
А теперь покажи такой же лист за 2014,2015 для того что ты привёл.
Делай выводы! (если делатель выводов не протух)