LINUX.ORG.RU

MongoDB 1.6.0

 , , ,


0

1

MongoDB — документо-ориентированная система управления базами данных (СУБД) с открытым исходным кодом, не требующая описания схемы таблиц. Написана на языке C++.

Шардинг

Шардинг готов для использования в производстве, давая возможность масштабировать MongoDB горизонтально. При необходимости единственный экземпляр mongod может быть преобразован в распределённый кластер с нулевым временем простоя.

Replica Sets

Replica sets — новый метод репликации, который предоставляет возможность автоматически переключаться среди участников кластера.

Replica pairs объявлен устаревшим; использующим данный функционал рекомендуется перейти на использование replica sets.

Другие улучшения

  • Опция w (и wtimeout) форсирует запись на n серверов до успешного завершения операции (особенно хорошо работает с replica sets)
  • $or-запросы
  • Улучшенная многопоточность
  • $slice-оператор для возвращения части массива (подмассива)
  • 64 индекса на каждую коллекцию (в 1.4 было 40)
  • 64-битные целые могут быть представлены в командной оболочке посредством NumberLong
  • Команда findAndModify теперь поддерживает upserts (аналог SQL MERGE). Также теперь позволяется указывать поле, которое должно быть получено
  • $showDiskLoc — опция для отображения местонахождения документа на диске
  • Поддержка IPv6 и доменных сокетов UNIX
  • C++ клиент отделён от бинарного пакета

>>> Подробности

★★

Проверено: catap ()

Да, эта версия определенно годна для продакшна (конечно, ждем 1.6.1). Монго прекрасна, начинаю копаться в джаваскрипт-эмуляторе мап-редьюс, ибо это самое узкое место в данный момент.

kost-bebix ★★ ()

Боженька, зачем ты сделал модным эти документ-ориентированные СУБД? Я же страдаю, разве ты не видишь? Ладно, если их уничтожить уже нельзя, то пожалуйста, лиши возможности модниц принимать решение об их использовании!

Zenom ★★★ ()

Оно уже стало поддерживать базу данных более 2,5 ГБ на 32-х битах?

PS. У нас есть и CouchDB в продакшене. Шардинг и мэп-редьюс там давно.

pythonist ()
Ответ на: комментарий от Jetty

Там, где я вынужден использовать Cassandra наиболее логичным решением была бы РСУБД.

Zenom ★★★ ()

это научилось уже mapreduce в несколько потоков или все так же однопоточное?

JFreeM ★★★☆ ()

Выглядит заманчиво. Особенно радует наличие java биндингов. На досуге надо будет попробовать посмотреть.

drakmail ★★★★ ()
Ответ на: комментарий от pythonist

Поподробнее про шардинг в couchdb можно?

catap ★★★★★ ()
Ответ на: комментарий от catap

Нету его из коробки, только сторонняя приблуда couchdb-lounge и она сырая еще очень сильно.

JackDaniel ()

А в ней можно замутить из всего CAP только C(A|B) чтобы консистенция была?

JackDaniel ()

Это чудо не собирается на big-endian платформах, и по словам авторов не будет.

anonymous ()

> документо-ориентированная система управления базами данных

Объясните дураку, что же это такое? Куда это можно присунуть, и где этого наоборот использовать не стоит?

anonymous ()
Ответ на: комментарий от anonymous

Что за НЁХ?

Да, да, поддерживаю! Что это такое?

anonymous ()

кто нибудь пробовал полнотекст прикрутить на основе multikeys и что юзал для стемминга в этом случае?

real_maverick ★★★ ()
Ответ на: комментарий от real_maverick

Для полнотекстового поиска надо использовать специальные инструменты, а не пытаться натянуть его на систему хранения. Ничем хорошим это, обычно, не заканчивается.

baverman ★★★ ()
Ответ на: комментарий от Zenom

> Боженька, зачем ты сделал модным эти документ-ориентированные СУБД?

Присоединяюсь к молитвам.
«Вразуми начальников и дилетантов, да обойдёт их стороной искушение применять молоток вместо отвёртки, ибо не есть сие благо».

matumba ★★★★★ ()
Ответ на: комментарий от real_maverick

>кто нибудь пробовал полнотекст прикрутить на основе multikeys

Ну, я планирую прикрутить Sphinx. Там, вроде, ничего сложного.

...

Меня больше интересует как бы для распределённой базы придумать единые 32-х битные уникальные ID. Чтобы можно было на разных машинах писать и не иметь коллизий.

KRoN73 ★★★★★ ()

ораклокопец настает.

AVL2 ★★★★★ ()
Ответ на: комментарий от matumba

>«Вразуми начальников и дилетантов, да обойдёт их стороной искушение применять молоток вместо отвёртки, ибо не есть сие благо».

Появился семигранный гаечный ключ для завинчивания специфических, но не редко встречающихся семигранных гаек. Но народ плачет и молится, матерясь на семигранные ключи и предпочитает завинчивать гайки по старинке - плоскогубцами.

KRoN73 ★★★★★ ()
Ответ на: комментарий от KRoN73

>Чтобы можно было на разных машинах писать и не иметь коллизий.

Не знаю специфику задачи, а решение наподобии выдачи айпишников по маске (маска ограничевает диапазон) не подойдет?

theos ★★★ ()
Ответ на: комментарий от Zenom

У меня ситуация ровно наоборот: используется DB2 со странной схемой данных и монструозными селектами там, где идеально подошла бы, например, MongoDB. Это проблема не технологии, а менеджмента и архитектуры.

Digal ()
Ответ на: комментарий от KRoN73

>специфических, но не редко встречающихся семигранных гаек.

Ну так расскажите нам скорее что это такие за семигранные гайки.

theos ★★★ ()
Ответ на: комментарий от KRoN73

>Меня больше интересует как бы для распределённой базы придумать единые 32-х битные уникальные ID. Чтобы можно было на разных машинах писать и не иметь коллизий.

отдать n-бит из этого идентификатора под номер ноды?

AVL2 ★★★★★ ()
Ответ на: комментарий от baverman

> Для полнотекстового поиска надо использовать специальные инструменты, а не пытаться натянуть его на систему хранения. Ничем хорошим это, обычно, не заканчивается.

Эээ, а как же оное в PostgreSQL?

Evgueni ★★★★★ ()
Ответ на: комментарий от theos

>Не знаю специфику задачи

Да есть желание попробовать сделать распределённый форум. Типа, если одна машина откажет, с другой бы чтобы работало.

>а решение наподобии выдачи айпишников по маске (маска ограничевает диапазон) не подойдет?


Да, мысль. Надо подумать.

KRoN73 ★★★★★ ()
Ответ на: комментарий от theos

>Ну так расскажите нам скорее что это такие за семигранные гайки.

Есть такие. Там, где не требуется транзакционная целостность, но где важны скорость и масштабируемость. Или быстрые модификации структуры.

KRoN73 ★★★★★ ()
Ответ на: комментарий от Evgueni

>Эээ, а как же оное в PostgreSQL?

Я даже в mysql не использую fulltext. Тормозной он и неудобный. В то время, как sphinx среди двух миллионов сообщений на 4Гб находит результат за десятые и сотые доли секунды.

KRoN73 ★★★★★ ()
Ответ на: комментарий от KRoN73

>но где важны скорость и масштабируемость

А где бы солидных тестов найти? А то после каждого теста, показывающего хорошее преимущество NoSQL шло жесткое разоблачение.

theos ★★★ ()
Ответ на: комментарий от theos

>А где бы солидных тестов найти?

Как реализую что-нибудь солидное - будет и солидный тест. Пока же хватает и поверхностных оценок для того, чтобы делать выводы о применимости:

http://www.linux.org.ru/jump-message.jsp?msgid=5111473&cid=5131669
http://www.linux.org.ru/jump-message.jsp?msgid=5139765&cid=5151850

KRoN73 ★★★★★ ()
Ответ на: комментарий от KRoN73

> Меня больше интересует как бы для распределённой базы придумать единые 32-х битные уникальные ID

Если нод две, то тупо чет/нечет подойдет :)

anonymous ()
Ответ на: комментарий от Digal

> используется DB2 со странной схемой данных и монструозными селектами

Кхе. И как вы монстроузные селекты собираетесь описывать понятием key/value? Кхе-кхе

anonymous ()
Ответ на: комментарий от KRoN73

> Я даже в mysql не использую fulltext.

А зря. В отличии от mySQL в PostgreSQL ребята подошли с головой к данной проблеме. Очень толково сделали полнотекстовый поиск. Читать здесь:
http://rus-linux.net/lib.php?name=/MyLDP/subd/pgfts.html
http://www.sai.msu.su/~megera/postgres/talks/fts_pgsql_intro.html#ftsperf

anonymous ()
Ответ на: комментарий от Zenom

> зачем ты сделал модным эти документ-ориентированные СУБД?

как зачем? в них кукисы хранить удобно

anonymous ()
Ответ на: комментарий от Evgueni

> Эээ, а как же оное в PostgreSQL?

Пробежал глазами по доке — очень богатый и гибкий функционал. Удивился. Как раз то исключение из правила. Когда можно вмешаться в парсинг документов, определить свои веса для ключей (например модели товаров должны иметь наивысший приоритет).

Еще две бд назовешь с аналогичным по мощности фуллтекстовым поиском?

baverman ★★★ ()
Ответ на: комментарий от KRoN73

>>«Вразуми начальников и дилетантов, да обойдёт их стороной искушение применять молоток вместо отвёртки, ибо не есть сие благо». > >Появился семигранный гаечный ключ для завинчивания специфических, но >не редко встречающихся семигранных гаек. Но народ плачет и молится, >матерясь на семигранные ключи и предпочитает завинчивать гайки по >старинке - плоскогубцами.

скорее проблема в том, что вместо применения старинных, проверенных, и ничуть не уступающих по качеству 6-и гранных гаек, быдло-топ-менеджеры дадут команду использовать 7-и гранные. просто потому что так «красифше-наX» и «солиднее-мля»...

о том что-б этого не было и моляцца)

Denjs ()
Ответ на: комментарий от Denjs

>о том что-б этого не было и моляцца)

У кого голова не плечах есть, тем молиться смысла нет :) Они итак решат, какие тут гайки лучше подойдут. А кто сам решить не может - тому и молитвы не помогут...

KRoN73 ★★★★★ ()
Ответ на: комментарий от baverman

> Для полнотекстового поиска надо использовать специальные инструменты, а не пытаться натянуть его на систему хранения.

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

real_maverick ★★★ ()
Ответ на: комментарий от KRoN73

> У кого голова не плечах есть, тем молиться смысла нет :) Они итак решат, какие тут гайки лучше подойдут. А кто сам решить не может

Понты такие понты.

tailgunner ★★★★★ ()
Ответ на: комментарий от KRoN73

> Ну, я планирую прикрутить Sphinx. Там, вроде, ничего сложного.

ага - я люсену :) (индекс часто и сильно меняется)

а стеминг? стандартный? я вот собираюсь от aot подтянуть напосмотреть

real_maverick ★★★ ()
Ответ на: комментарий от Evgueni

> Эээ, а как же оное в PostgreSQL

pg'шный fts более чем унулое овно, юзабельное в простейших случаях

real_maverick ★★★ ()
Ответ на: комментарий от KRoN73

>У кого голова не плечах есть, тем молиться смысла нет :) Они итак решат, какие тут гайки лучше подойдут. А кто сам решить не может - тому и молитвы не помогут...

это бы конечно наверное так. но типичный «топ» в российских территориях - тварь практически неуправляемая, не прогнозируемая и не вменяемая. думать он часто не умеет, или думает о своем. его можно только приманить деньгами, а про суть вещей он судит по «солидности» презентации.

и нам, как техническим специалистам российских компаний, часто остается только молиться. потому что иного пути повлиять на ситуацию и решение топа - часто нет ))))

часто даже «документ на рецензирование», спускают как «уже утвержденный». А в нем такой бред сивой кАбылы написан, шопипец ))) вы думаете тут можно сделать что-то иное кроме как молиться?))) тогда вам редко повезло с компанией)

Denjs ()
Ответ на: комментарий от real_maverick

>а стеминг? стандартный?

Ну да. И для поиска хватает, даже если юзеру и выскочит лишняя ссылка - переживёт, и для системных нужд, например, при автоматическом связывании материалов - всё равно часто потом более жёсткая проверка идёт и модераторы/редакторы в итоге всё равно должны поработать.

KRoN73 ★★★★★ ()
Ответ на: комментарий от Denjs

>это бы конечно наверное так. но типичный «топ» в российских территориях - тварь практически неуправляемая

Ну так можно же тупо держаться от таких подальше :)

KRoN73 ★★★★★ ()
Ответ на: комментарий от KRoN73

> жёсткая проверка идёт и модераторы/редакторы в итоге всё равно должны поработать

повезло :)))

real_maverick ★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.