Самый большой выпуск MongoDB включает улучшения агрегации, интеграции текстового поиска, улучшения механизма запросов, новый протокол операций записи и улучшения безопасности.
Конвейер агрегации добавляет возможность возвращать наборы результатов любого размера путем возврата курсора или записи вывода в коллекцию. Он также поддерживает переменные и добавляет новые операции для обработки наборов и редактирования данных. Текстовый поиск теперь включен по умолчанию, и система запросов может разрешать запросы текстового поиска.
Безопасность улучшена за счет улучшенной поддержки SSL, аутентификации на основе x.509, улучшенной системы авторизации с более детальным контролем и централизованного хранилища учетных данных.
Работа механизма запросов означает, что MongoDB теперь может использовать пересечение индексов, если вы хотите писать запросы, использующие более одного индекса. Вы можете установить фильтры индекса, чтобы ограничить, какие индексы могут стать выигрышным планом для запроса, и использовать методы кеширования планов запросов для просмотра и очистки планов запросов, кэшированных оптимизатором запросов. Вы также можете установить ограничения времени выполнения запроса, чтобы указать максимальную продолжительность выполнения запроса.
Еще одна улучшенная область — процесс построения индекса. В частности, если вы инициируете фоновое построение индекса на первичном сервере, вторичные серверы будут реплицировать построение индекса в фоновом режиме. Кроме того, если автономный или первичный экземпляр завершает работу во время построения индекса без полного завершения работы, MongoDB теперь перезапускает построение индекса при перезапуске экземпляра. Возможность выполнять построение индексов в фоновом режиме решает проблему, вызванную тем, что построение индексов на переднем плане вызывает глобальную блокировку, блокируя все другие операции с базой данных до тех пор, пока индекс не завершит построение, включая прекращение построения индекса. Также были улучшены сегментирование, сетевые подключения и управление пулом.
В сообщении в блоге, посвященном изменениям, Элиот Хоровиц, технический директор и соучредитель MongoDB, говорит, что команда полностью переписала механизм выполнения запросов, чтобы улучшить масштабируемость, и сделала первый шаг в создании сложного планировщика запросов, введя пересечение индексов.
Горовиц говорит:
«Вы увидите преимущества более высокой производительности и новых инноваций. Мы переписали весь механизм выполнения запросов, чтобы улучшить масштабируемость, и сделали первый шаг в создании сложного планировщика запросов, введя пересечение индексов. Мы упростили поддержку кодовой базы и упростили внедрение новых функций. Наконец, MongoDB 2.6 закладывает основу для значительных улучшений параллелизма в MongoDB 2.8, включая блокировку на уровне документа ».