The OpenNET Project / Index page

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

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

13.09.2011 16:12

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

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

Отмечается, что версия 2.0, хоть и является значительным выпуском, не должна восприниматься как какой-то кардинальный шаг. Номер 2.0 присвоен как продолжение непрерывной нумерации стабильных релизов с четными номерами (1.8 + 0.2 = 2.0) и по уровню новшеств сопоставим различиями между прошлыми стабильными ветками 1.6 и 1.8. Из улучшений, добавленных в MongoDB 2.0, можно отметить:

  • Включены результаты первой стадии переработки проекта с целью увеличения параллелизма обработки данных. В версии 2.0 решен один важных вопросов - обеспечение надлежащей работы блокировок в процессе обращения к невыделенным страницам памяти (page faults). Реализованный механизм блокировок позволяет отслеживать кэширование в памяти и дает возможнось вынести за пределы основного обработчика блокировки при записи на диск и обработку page faults. Метод применен в нескольких местах, например, в коде обновления по идентификатору, удаления и сканирования больших таблиц;
  • Возможность размещения рабочего набора индексов в оперативной памяти является важным фактором обеспечения высокой производительности. В новой версии индексы занимают примерно на 25% меньше места и работают на 25% быстрее, что позволяет вместить больше индексных данных в имеющийся объем памяти. Кроме того, уменьшен размер стека по умолчанию, что позволяет сэкономить память при большом числе одновременных клиентских соединений (более 1000);
  • Добавлены новые функции в реализацию поддержки передачи наборов реплик (Replica Sets). В новой версии добавлена возможность определения приоритетов и привязки меток (tagging). Приоритеты позволяют выделить первичные узлы, если кластер размещен в неоднородной сети. Привязка меток к репликам позволяет гарантировать, что данные будут записаны на определенные группы серверов (например, можно проследить что данные о регистрации нового пользователя будут отражены на серверах в двух разных дата-центрах, до того как выдать пользователю информацию об успешной регистрации).
  • Поддержка аутентификации для кластеров шардинга;
  • Реализация опции ContinueOnError, при которой операция массового добавления данных не будет прервана после ошибки. Тип и место последней ошибки можно отследить через вызов getLastError;
  • Для 64-разрядных платформ по умолчанию активировано журналирование операций, что позволяет кардинально уменьшить время, требуемое на восстановление целостности данных в случае сбоя. Для экономии места добавлена поддержка хранения журнала в сжатом виде;
  • Кроме вышеотмеченных улучшений, в новой версии представлена достаточно большая порция небольших оптимизаций производительности, увеличение стабильности шардинга, улучшение операций с набором реплик.

  1. Главная ссылка к новости (http://blog.mongodb.org/post/1...)
  2. OpenNews: Релиз документо-ориентированной СУБД MongoDB 1.8
  3. OpenNews: Релиз документо-ориентированной СУБД MongoDB 1.6
  4. OpenNews: Новая версия документо-ориентированной СУБД MongoDB 1.4
Лицензия: CC-BY
Тип: Программы
Ключевые слова: MongoDB, database, nosql
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (6) Ajax | 1 уровень | Линейный | Раскрыть всё | RSS
  • 1.1, Anonimous (?), 17:22, 13/09/2011 [ответить]  
  • +/
    Полнотекстовый поиск реализовали?
     
  • 1.2, Аноним (-), 17:54, 13/09/2011 [ответить]  
  • +/
    Хорошая статья, но вот здесь

    > продолжение непрерывной нумерации стабильных релизов с четными
    > номерами кратными 10 (1.8 + 0.2 = 2.0)

    что-то не в порядке с математикой. Во-первых, числа, кратные 10, чётны по определению. Во-вторых, 0.2 это не число, кратное 10. Надо бы переформулировать. Может просто "релизов с чётными номерами с шагом 0.2"?

    P.S.: Прошу прощения за занудство.

     
  • 1.3, Аноним (-), 21:28, 13/09/2011 [ответить]  
  • +/
    Какие известные проекты используют MongoDB что бы можно было потрогать? Посмотрел их сайт как  то у них всё очень скромно.
     
     
  • 2.4, umbr (ok), 21:58, 13/09/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Ой, сотни их.
    http://www.mongodb.org/display/DOCS/Production+Deployments
     
  • 2.5, zool (??), 14:06, 14/09/2011 [^] [^^] [^^^] [ответить]  
  • +/
    знаю вот этот, крутил, под нагрузками не щупал
     
     
  • 3.6, zool (??), 14:06, 14/09/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > знаю вот этот, крутил, под нагрузками не щупал

    сори:  http://www.locomotiveapp.org/

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



    Спонсоры:
    MIRhosting
    Inferno Solutions
    Hosting by Ihor
    Хостинг:

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