MongoDB улучшает язык запросов


MongoDB 4.4 была выпущена с улучшениями в языке запросов и сегментировании. MongoDB – это база данных документов NoSQL, которая хранит свои документы в формате JSON со схемой.

Первая группа обновлений касается языка запросов MongoDB (MQL), в частности конвейера агрегации с новыми выражениями объединения и пользовательскими выражениями агрегации.

Новый этап объединения с конвейером агрегации позволяет объединять данные из нескольких коллекций и конвейеров агрегации в единый набор результатов в базе данных. Он обеспечивает функциональность, аналогичную оператору UNION ALL в SQL, но исходные коллекции не ограничиваются необходимостью сопоставления схем, и объединения объединений можно масштабировать по коллекциям, охватывающим несколько сегментов. Новая поддержка пользовательских выражений агрегации означает, что разработчики могут определять пользовательские выражения в JavaScript и использовать их как часть конвейера агрегации. В более ранних версиях MongoDB вы могли выполнять пользовательские выражения через MapReduce, но их доступность как часть конвейера агрегации упрощает их использование и поддерживает более эффективный синтаксис и выполнение.

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

Еще одно дополнение – поддержка хеджированных чтений. Они минимизируют задержку, отправляя запросы на чтение нескольким репликам и возвращая результаты, как только ответит самый быстрый узел.

Новая поддержка потоковой репликации означает, что сообщения теперь непрерывно передаются с основного на дополнительные узлы. До этого выпуска вторичные реплики опрашивали первичную, получая сообщения пакетами по 16 МБ. Разработчики заявляют, что их тесты показали улучшение производительности до 50% в сетях с высокой нагрузкой и высокой задержкой.

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


Добавить комментарий