Платформа агрегации, функции Data Center Awareness и улучшения параллелизма — основные функции последней версии MongoDB.
Фреймворк агрегации разработан, чтобы упростить манипулирование и обработку документов внутри MongoDB без необходимости использования Map-Reduce или отдельных процессов приложения для манипулирования данными. Map-Reduce не идеально подходит для простых задач агрегирования, таких как суммирование или усреднение значений полей. Разработчики MongoDB говорят, что фреймворк агрегации предоставляет аналогичные функции для GROUP BY и связанных операторов SQL, а также простые формы самостоятельных соединений. Каркас агрегации также можно использовать для изменения формы возвращаемых данных, добавления вычисляемых полей, создания новых виртуальных подобъектов и извлечения подполей на верхний уровень результатов.
Еще одно улучшение новой версии — лучшее управление большими наборами данных, которые более географически распределены. Функции «Data Center Awareness» включают стандартную обработку предпочтений чтения для всех драйверов и сегментированных интерфейсов. Еще одна функция, разработанная для распределенных кластеров, — это сегментирование с учетом тегов. Это означает, что вы можете гарантировать, что данные в географически распределенном сегментированном кластере всегда будут ближе всего к приложению, которое будет использовать эти данные больше всего.
Другие основные изменения в версии 2.2 касаются параллелизма. Глобальная блокировка удалена из процесса mongod, и теперь блокировка применяется для каждой базы данных. Блокировка также была усилена за счет добавления новой подсистемы, которая позволяет избежать блокировок при большинстве событий отказа страницы, а при записи во вторичные приложения лучше справляются с параллелизмом.
Есть видео, показывающее изменения параллелизма.