The OpenNET Project / Index page

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

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

19.03.2013 21:50

Доступен релиз ориентированной на хранение документов высокопроизводительной и высокомасштабируемой СУБД MongoDB 2.4, занимающей нишу между быстрыми и масштабируемыми системами, оперирующими данными в формате ключ/значение, и реляционными СУБД, функциональными и удобными в формировании запросов. Код MongoDB написан на языке C++ и распространяется в рамках лицензии AGPLv3.

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

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

По сравнению с прошлым выпуском в MongoDB 2.4 внесено 692 изменения, из которых можно отметить следующие значительные улучшения:

  • Система шардинга на основе хэшей. Новый механизм шардинга построен поверх ранее предоставляемой системы шардинга на основе диапазонов значений и отличается возможностью использования хэширования для формирования ключей шардинга, определяющих на каком узле будет сохранён тот или иной документ. Применение хэшей позволяет упростить равномерное распределение данных и нагрузку на узлы за счёт того, что документы запрашиваются из хранилища в случайном порядке на основе ключей хешей, при этом метод эффективен в ситуациях, когда характер доступа к документам не является абсолютно предсказуемым;
  • Интегрированные массивы (Capped Arrays) - возможность встраивания в документ массивов фиксированной длины. Интегрированные массивы допускают задание типа сортировки и последующего использования операции $push с модификатором $slice для отсечения только последних элементов массива;
  • Механизм поиска текста в документах с использованием специального типа индексов "text", допускающего выполнение поисковых запросов в режиме реального времени с использованием стемминга и токенизации для 15 языков, в том числе и русского языка;
  • Поддержка GeoJSON. Новый тип индексов 2dsphere для работы с пространственными координатами с задействованием более точной сферической модели. Расширенные средства поиска по координатам, в том числе с учётом пересечения многоугольников;
  • Существенное увеличение производительности счётных операций, которые в некоторых ситуациях выполняются на порядок быстрее, чем в прошлой версии. Оптимизация работы движка выполнения запросов позволила ускорить типовые способы доступа к данным;
  • Анализатор размера рабочих наборов (Working Set Analyzer), позволяющий упростить оценку процента использованных ресурсов в кластере MongoDB. Анализатор сообщает сколько уникальных страниц памяти потребовалось серверу за последние 15 минут, что позволяет отслеживать нагрузку в течение долгого времени. Если размер данных за 15 минут приближается к размеру ОЗУ то вероятно стоит подумать над добавлением дополнительных ресурсов в кластер;
  • Осуществлён переход на JavaScript-движок V8, используемый для выполнения MapReduce-запросов, определения условий в блоке $where и для работы shell. Переход на V8 позволил увеличить возможности MongoDB по многопоточной обработке запросов;
  • Добавлена поддержка аутентификации с использованием Kerberos и система разграничения прав доступа на основе ролей (Role Based Access Control).


  1. Главная ссылка к новости (http://blog.mongodb.org/post/4...)
  2. OpenNews: Релиз документо-ориентированной СУБД MongoDB 2.2
  3. OpenNews: На развитие свободной СУБД MongoDB выделено 42 млн долларов
  4. OpenNews: Релиз документо-ориентированной СУБД MongoDB 2.0
Лицензия: CC-BY
Тип: Программы
Короткая ссылка: https://opennet.ru/36441-mongodb
Ключевые слова: mongodb, nosql
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (9) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 23:15, 19/03/2013 [ответить]  
  • +/
    Коллеги, кто в курсе, MapReduce (а точнее его часть Map) в mongo уже многопоточный?
     
     
  • 2.2, Анончик (?), 23:18, 19/03/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Пока нет. Но перевод джаваскрипта на V8 в 2.4 у меня сегодня на 25% сократил время отчётинга.
     
  • 2.6, exist (ok), 12:22, 20/03/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Нет, однопоточный. Требовался переход на V8 (что и случилось в 2.4), надеюсь, версии через одну-две добавят и многопоточность.

    Но уже можно запускать параллельно несколько задач - https://groups.google.com/forum/?fromgroups=#!topic/mongodb-dev/ad-ahVpRC-g

     

  • 1.3, gaga (ok), 23:29, 19/03/2013 [ответить]  
  • +/
    а оно по-прежнему может покорежить базу при нештатном выключении?
     
     
  • 2.5, Я (??), 03:26, 20/03/2013 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > а оно по-прежнему может покорежить базу при нештатном выключении?

    чтобы mongodb не корежила базу, не нужно отключать журналирование

     

  • 1.4, stalker37 (?), 00:10, 20/03/2013 [ответить]  
  • +/
    Эх. Жалко нет инструмента что бы лимитировать пользователей по времени выполнения запросов и/или лимитирования коннектов
     
  • 1.7, Аноним (-), 02:55, 21/03/2013 [ответить]  
  • +/
    вдобавок к хорошей новости :)
    на днях сделаны классы, позволяющие работать с PHP массивами, используя совместимые с MongoDB запросы.
    http://stackoverflow.com/questions/14972025/evaluating-mongodb-like-query-exp есть вариант с использованием SPL, а также эквивалент на чистом PHP.
     
     
  • 2.8, Xasd (ok), 08:29, 21/03/2013 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > вдобавок к хорошей новости :)
    > на днях сделаны классы, позволяющие работать с PHP массивами, используя ...

    хм... разве PHP-программисты используют не MySQL? :-)

    в Денвере же нет MongoDB!

    тем более, как там с поддержкой кодировки WINDOWS-1251 у MongoDB ? :)

     
     
  • 3.10, Aleks Revo (ok), 00:53, 24/03/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Разве денвер-программисты используют PHP? )))
     

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



    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

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