URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 101677
[ Назад ]

Исходное сообщение
"Доступна документо-ориентированная СУБД MongoDB 3.0"

Отправлено opennews , 06-Мрт-15 15:55 
Представлен (http://blog.mongodb.org/post/112603230233/announcing-mongodb...) релиз ориентированной на хранение документов высокопроизводительной и высокомасштабируемой СУБД MongoDB 3.0 (http://www.mongodb.org), занимающей нишу между быстрыми и масштабируемыми системами, оперирующими данными в формате ключ/значение, и реляционными СУБД, функциональными и удобными в формировании запросов. Код MongoDB написан на языке C++ и распространяется в рамках лицензии AGPLv3.

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

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


Особенности (http://docs.mongodb.org/manual/release-notes/3.0/) нового выпуска:


-  Pluggable Storage Engine API, позволяющий сторонним разработчикам создавать движки хранения для MongoDB;
-  Возможность использования движка хранения WiredTiger (http://wiredtiger.com/), помимо штатного движка MMAPv1. WiredTiger может использоваться только на 64-разрядных системах и отличается высоким уровнем масштабуемости на многоядерных системах и предсказуемым временем обработки запроса, не зависящим от числа записей в базе, благодаря применению (http://source.wiredtiger.com/pdfs/WiredTiger-1page.pdf) алгоритма, не использующего блокировки, и активному кэшированию данных ОЗУ.  В WiredTiger  также реализована возможность блокировки записей на уровне документов и поддержка хранения данных в сжатом виде (для сжатия используется библиотека snappy (https://www.opennet.ru/opennews/art.shtml?num=30003)).

<center><a href="http://res.cloudinary.com/hrscywv4p/image/upload/c_limit,h_900,w_1200/drp0cj0p8opemid4vse7.png"><img src="https://www.opennet.ru/opennews/pics_base/0_1425643266.png" style="border-style: solid; border-color: #e9ead6; border-width: 15px;max-width:100%;" title="" border=0></a></center>

При использовании WiredTiger поддерживаются все возможности  MongoDB, но для перехода на новое хранилище требуется изменение (http://docs.mongodb.org/manual/release-notes/3.0-compatibili...) дискового формата хранилища. Настройка нового движка осуществляется через набор опций storage.wiredTiger (http://docs.mongodb.org/manual/reference/configuration-optio...). В системах репликации и шардинга в кластере MongoDB могут комбинироваться и совместно использоваться узлы с разными движками хранения.


<center><a href="http://res.cloudinary.com/hrscywv4p/image/upload/c_limit,h_900,w_1200/vr3dx4alf6rjfv6kiaa0.png"><img src="https://www.opennet.ru/opennews/pics_base/0_1425643672.png" style="border-style: solid; border-color: #e9ead6; border-width: 15px;max-width:100%;" title="" border=0></a></center>

-  В штатном движке хранения MMAPv1  обеспечена поддержка блокировки на уровне коллекций. Изменена стратегия распределения данных в хранилище, которая теперь построена на основе метода PowerOf2, подразумевающего использование записей, размер которых кратен степени двойки (32, 64, 128, 256, 512 ... 2MB). Подобный подход более оптимален для хранения документов большого размера, но больше расходует дисковое пространство (например, если документ больше 2 Мб для него выделяется N блоков по 2 Мб, даже если он занимает 2Мб 1 байт).
-  Увеличено число узлов в наборе репликации. В MongoDB 3.0 в одном наборе может присутствовать до 50 узлов. С большим размером реплик могут работать драйверы C# (.NET) 1.10, Java 2.13, Python  (PyMongo) 3.0+,  Ruby 2.0+ и Node.JS 2.0+. Работа c большими наборами реплик в драйверах C++, Perl, PHP пока не поддерживается;
-  Поддержка механизма аутентификации SCRAM-SHA-1 (http://docs.mongodb.org/manual/core/authentication/#authenti...) (RFC 5802 (https://tools.ietf.org/html/rfc5802)).
-  Добавлена новая система для анализа эффективности выполнения запросов. Расширен (http://docs.mongodb.org/manual/reference/explain-results/) формат данных о запросе и реализованы средства доскональной интроспекции как плана построения запроса, так и выполнения запроса. Для анализа запросов представлены новый метод db.collection.explain() (http://docs.mongodb.org/manual/reference/method/db.collectio...) и команда explain (http://docs.mongodb.org/manual/reference/command/explain/#db...);

-  Расширены (http://docs.mongodb.org/manual/reference/log-messages/) средства ведения диагностических логов, в которых обеспечена привязка записей к специфичным компонентам и операциям;
-  В  утилиты mongodump и mongorestore добавлена поддержка параллельной обработки нескольких коллекций (опция "--numParallelCollections"). В  mongodump добавлены опции для выборочного исключения коллекций из дампа (--excludeCollection и --excludeCollectionsWithPrefix);
-  Утилиты mongostat и mongotop теперь могут возвращать статистику в формате JSON (опция --json).


URL: http://blog.mongodb.org/post/112603230233/announcing-mongodb...
Новость: https://www.opennet.ru/opennews/art.shtml?num=41785


Содержание

Сообщения в этом обсуждении
"Доступна документо-ориентированная СУБД MongoDB 3.0"
Отправлено Аноним , 06-Мрт-15 15:55 
про память ни слова..
Оно все также бесконтрольно потребляет память?

"Доступна документо-ориентированная СУБД MongoDB 3.0"
Отправлено Аноним , 06-Мрт-15 19:48 
"Memory-mapped files are the critical piece of the storage engine in MongoDB. By using memory mapped files MongoDB can treat the contents of its data files as if they were in memory.", - говорит нам мануал. База будет занимать ровно столько памяти, сколько есть при условии, что данных больше, чем RAM.

"Доступна документо-ориентированная СУБД MongoDB 3.0"
Отправлено Аноним , 06-Мрт-15 20:39 
Товарисч, откройте для себя, как работает mmap файлов. Что значит "при условии"? Файлы просто мапятся в адресное пространство процесса, при этом выделения резидентной памяти под данные, находящиеся в этих файлах, не происходит.

"Доступна документо-ориентированная СУБД MongoDB 3.0"
Отправлено Аноним , 07-Мрт-15 00:59 
Что значит "просто мапятся"? Процессор не умеет работать с диском напрямую. Ядро внутри себя связывает страницы виртуальной памяти процесса с блоками в файле. При обращении к ним программы происходит page fault, который ядро перехватывает и загружает данные с диска в оперативную память.

Предположим что происходит полный просмотр большой коллекции. Монга "потрогает" много страниц виртуальной памяти и заставит ядро выделить для этого много памяти физической и это будет выглядеть так как будто монга "съела" много оперативной памяти. Фактически это cached страницы с диска и могут быть освобождены при нехватке памяти в системе.

Так что товарисч в принципе прав монга есть всю память пока она не закончится либо все активно используемые коллекции не поместятся в оперативную память.


"Доступна документо-ориентированная СУБД MongoDB 3.0"
Отправлено Аноним , 07-Мрт-15 04:16 
> Так что товарисч в принципе прав монга есть всю память пока она не закончится
> либо все активно используемые коллекции не поместятся в оперативную  память.

Раньше "русский программер" означало что он потащит всю команду вверх, а перерь - это симол балласта. Читая твои посты - 100% понимаю почему :(


"Доступна документо-ориентированная СУБД MongoDB 3.0"
Отправлено Аноним , 07-Мрт-15 04:22 
>> Так что товарисч в принципе прав монга есть всю память пока она не закончится
>> либо все активно используемые коллекции не поместятся в оперативную  память.
> Читая твои посты - 100% понимаю почему :(

И дурак, и накололся :( Грёбанная монга и в правду ....

How do I configure the cache size?

MongoDB has no configurable cache. MongoDB uses all free memory on the system automatically by way of memory-mapped files. Operating systems use the same approach with their file system caches.

Мои извинения :(


"Доступна документо-ориентированная СУБД MongoDB 3.0"
Отправлено Аноним , 07-Мрт-15 04:14 
>База будет занимать ровно столько памяти, сколько есть при условии, что данных больше, чем RAM.

Добавь этот гениальный вывод в своё резюме, умник :)))))


"Доступна документо-ориентированная СУБД MongoDB 3.0"
Отправлено Аноним , 06-Мрт-15 16:01 
А оно никогда и не потребляло бесконтрольно память.

"Доступна документо-ориентированная СУБД MongoDB 3.0"
Отправлено AlexAT , 06-Мрт-15 20:59 
Чел просто рядом с монго видимо крутил другие сервисы, и удивляется - почему оно безбожно  вытесняет всё, что под руку попадает. Да потому, что монго трешит кеш в хлам. Место монго либо на отдельной физике, либо в виртуалке, но основное правило: рядом с нодой монго в пределах ОС никаких прочих конкурирующих за память сервисов быть не должно. Тогда производительность будет мягкой и шелковистой.

И это правило, кстати, не только на монго распространяется, а на любые жадные до кеширования сервисы.


"Доступна документо-ориентированная СУБД MongoDB 3.0"
Отправлено Crazy Alex , 06-Мрт-15 23:32 
Именно. Одна тяжелая серверная софтина на операционку - классика.

"Доступна документо-ориентированная СУБД MongoDB 3.0"
Отправлено waf , 12-Мрт-15 13:56 
А не знаю, был ли это сарказм или нет, но сейчас повсеместно вектор на виртуалки, так что да, одна операционка.

"Доступна документо-ориентированная СУБД MongoDB 3.0"
Отправлено fi , 06-Мрт-15 16:21 
Ну что, Pg уже догоняют?

"Доступна документо-ориентированная СУБД MongoDB 3.0"
Отправлено svr , 06-Мрт-15 16:48 
А какая связь с Pg?

"Доступна документо-ориентированная СУБД MongoDB 3.0"
Отправлено бедный буратино , 06-Мрт-15 16:54 
в pg есть шустрое бессхемное хранилище

"Доступна документо-ориентированная СУБД MongoDB 3.0"
Отправлено Аноним , 06-Мрт-15 17:49 
Только крайне бестолковое. Во-первых нет такого богатого набора операций для работы с JSON, во вторых нет автоматического шардинга. В-третьих нет ни embedded документов, ни ссылок. А так вам и раньше никто не запрещал, например, хранить json в текстовом поле, этот новый тип — просто оптимизация.

"Доступна документо-ориентированная СУБД MongoDB 3.0"
Отправлено Moomintroll , 06-Мрт-15 18:30 
> нет такого богатого набора операций для работы с JSON

Вы б погуглили на предмет типов данных JSON и JSONB в PostgreSQL.


"Доступна документо-ориентированная СУБД MongoDB 3.0"
Отправлено Anonim , 06-Мрт-15 22:25 
>Только крайне бестолковое. Во-первых нет такого богатого набора операций для работы с JSON, во вторых нет автоматического шардинга. В-третьих нет ни embedded документов, ни ссылок. А так вам и раньше никто не запрещал, например, хранить json в текстовом поле, этот новый тип — просто оптимизация.

Плагиатите, батенька: http://habrahabr.ru/post/252129/#comment_8313631


"Доступна документо-ориентированная СУБД MongoDB 3.0"
Отправлено sarman , 10-Мрт-15 11:10 
> А какая связь с Pg?

Связь с pg такая, что один и тот же чувак принимал участие в движке mongo wild tiger, что комиттил в  постгрес (Dr Michael Cahill)


"Доступна документо-ориентированная СУБД MongoDB 3.0"
Отправлено Аноним , 06-Мрт-15 16:49 
>> В штатном движке хранения MMAPv1 обеспечена поддержка блокировки на уровне коллекций.

Она там и раньше была, добавили блокировку на уровне документа («document-level locking»).


"Доступна документо-ориентированная СУБД MongoDB 3.0"
Отправлено Аноним , 07-Мрт-15 14:30 
>Она там и раньше была, добавили блокировку на уровне документа («document-level locking»).

Это только в проводном тигре.


"Доступна документо-ориентированная СУБД MongoDB 3.0"
Отправлено Аноним , 06-Мрт-15 17:01 
Где можно почитать про пропадание данных в монге и развеять этот миф?

"Доступна документо-ориентированная СУБД MongoDB 3.0"
Отправлено anonymous , 06-Мрт-15 17:52 
> Где можно почитать про пропадание данных в монге и развеять этот миф?

пропадают только на тех, что смотрят в интернет без firewall ? http://www.information-age.com/technology/security/123459001...


"Доступна документо-ориентированная СУБД MongoDB 3.0"
Отправлено ДяДя , 06-Мрт-15 18:16 
Буквально везде ;-)
https://aphyr.com/posts/284-call-me-maybe-mongodb

"Доступна документо-ориентированная СУБД MongoDB 3.0"
Отправлено Аноним , 06-Мрт-15 19:45 
Поздравляю всех коллег-идиотов, которые до сих пор используют Монгу направо и налево. Третий релиз - конечно, важная веха у продукта, который после релиза Postgres hstore стал крайне нишевым.

"Доступна документо-ориентированная СУБД MongoDB 3.0"
Отправлено Аноним , 06-Мрт-15 19:59 
У них разные ниши. Выше комментарий на эту есть. Подтягивайте матчасть, не стесняйтесь.

"Доступна документо-ориентированная СУБД MongoDB 3.0"
Отправлено Аноним , 06-Мрт-15 20:08 
> У них разные ниши. Выше комментарий на эту есть. Подтягивайте матчасть, не
> стесняйтесь.

Ой, я во-первый, обратите внимание указал, что Монга ща весьма нишевая штука, не то что было в 2011-2013, когда не было быстрого persistent key-value и, ради этой скорости, денормализировали все, что можно и что нельзя тоже.

Подскажите кейс, ну то есть нишу, плиз, где ща врывается монга.


"Доступна документо-ориентированная СУБД MongoDB 3.0"
Отправлено Аноним , 06-Мрт-15 23:32 
Да хоть прямая работа с GeoJSON. На самом деле примеров полно, у PostgreSQL с его JSONB с этим сильно грустнее.

"Доступна документо-ориентированная СУБД MongoDB 3.0"
Отправлено Аноним , 07-Мрт-15 00:04 
Это надо для NodeJS?

"Доступна документо-ориентированная СУБД MongoDB 3.0"
Отправлено Аноним , 07-Мрт-15 00:22 
Драйвера есть для большинства популярных языков, не только JS.

"Доступна документо-ориентированная СУБД MongoDB 3.0"
Отправлено Аноним , 07-Мрт-15 05:15 
Ещё драйвера надо ставить?

"Доступна документо-ориентированная СУБД MongoDB 3.0"
Отправлено Аноним , 07-Мрт-15 15:48 
Как и у любой другой ДБ.

"Доступна документо-ориентированная СУБД MongoDB 3.0"
Отправлено Аноним , 07-Мрт-15 01:52 
Графички вставки в монгу, у которой нет транзакций, супротив иннодб, доставляют неимоверно.

MongoDB как зеркало мировой СУБД-революции
http://arbinada.com/main/node/1283


"Доступна документо-ориентированная СУБД MongoDB 3.0"
Отправлено Аноним , 18-Мрт-15 19:42 
Что у нее с транзакциями? Можно в транзакции сделать select for update одной записи, другой записи, обновить их и сделать commit или rollback?

"Доступна документо-ориентированная СУБД MongoDB 3.0"
Отправлено AlexAT , 19-Мрт-15 00:49 
> Что у нее с транзакциями? Можно в транзакции сделать select for update
> одной записи, другой записи, обновить их и сделать commit или rollback?

Запись атомарная, в том числе сета. Транзакций (ACID/MVCC) в оригинале нет. Но есть вариант MongoDB от Tokutek - TokuMX, где эти самые ACID/MVCC транзакции вполне себе есть.