Компания «Перкона» (Percona), поставщик решений и услуг для MySQL и MongoDB, объявила о выпуске Percona Memory Engine для MongoDB, открытого бесплатного in-memory хранилища для Percona Server для MongoDB. In-memory хранилище на базе WiredTiger предусмотрено в MongoDB 3.2 Enterprise Edition, но отсутствует в MongoDB Community Edition. С выпуском Percona Memory Engine для MongoDB у пользователей появится возможность без дополнительных затрат использовать аналогичное хранилище для Percona Server для MongoDB, бесплатной открытой альтернативы MongoDB Community Edition с расширенными возможностями.
Percona Memory Engine для MongoDB обеспечивает высокую производительность при операциях чтения с предсказуемыми задержками, а также высокую производительность при операциях записи без сохранения данных на диске. Новое решение помогает сократить расходы на инфраструктуру, т.к. позволяет избежать приобретения дополнительного высокопроизводительного хранилища или приобретать меньший объём пространства для хранения данных. Это особенно выгодно для облачных сред, где высокопроизводительное хранение данных может быть дорогостоящим. Параметры командной строки и конфигурации Percona Memory Engine для MongoDB идентичны тем, которые используются в MongoDB 3.2 Enterprise Edition, что обеспечивает простоту перехода на Percona Server для MongoDB. Ниже приведен ряд стандартных примеров использования Percona Memory Engine для MongoDB:
- кэш приложения (Application Cache) заменяет такие сервисы, как memcached и самописные структуры данных уровня приложения. Кэш-память приложения может использовать все возможности MongoDB;
- аналитика в реальном времени (Real-time Analytics) использует вычисления в памяти для тех случаев, когда время отклика важнее, чем сохранение данных;
- сложные операции с данными (Sophisticated Data Manipulation) — решение обеспечивает более высокую производительность при сложных операциях c данными — таких, как агрегирование и MapReduce;
- управление сессиями (Session Management) — активные сессии пользователей хранятся в памяти для уменьшения времени отклика приложения;
- кратковременное состояние среды выполнения (Transient Runtime State) — хранение динамического состояния приложения;
- многоуровневый общий доступ к объектам (Multi-tier object sharing) упрощает общий доступ к данным в многоуровневых приложениях и приложениях, написанных на нескольких языках программирования;
- тестирование приложения (Application Testing) сокращает время выполнения автоматизированных тестов.