yayınlanan выпуск многоцелевой СУБД ArangoDB 3.6, предоставляющей гибкие модели хранения документов, графов и данных в формате ключ-значение. Работа с базой осуществляется через SQL-подобный язык запросов AQL или через специальные расширения на языке JavaScript. Методы хранения данных соответствуют требованиям ACID (атомарность, согласованность, изолированность, надежность), поддерживают транзакции и обеспечивают как горизонтальную, так и вертикальную масштабируемость. Управление СУБД может производиться через web-интерфейс или консольный клиент ArangoSH. Код ArangoDB tarafından dağıtıldı под лицензией Apache 2. Проект написан на языках Си и JavaScript.
Ключевые особенности ArangoDB:
Возможность обойтись без определения схемы хранения данных (Schema-free) — данные структурируются в форме документов, в которых метаданные и информация о структуре отделена от пользовательских данных;
Поддержка использования ArangoDB в качестве сервера для web-приложений на языке JavaScript с возможностью доступа к БД через REST/Web API;
Использование JavaScript для обращающихся к БД браузерных приложений и для обработчиков, выполняемых на стороне СУБД;
Многопоточная архитектура, распределяющая нагрузку на все ядра CPU;
Гибкая модель хранения данных, в которой могут быть комбинированы пары ключ-значение, документы и параметры, определяющие связи между записями (предоставляются средства для обхода вершин графа);
Различные модели представления данных (документы, графы и связки ключ-значение) могут смешиваться в одном запросе, что упрощает агрегирование разнородных данных;
Поддержка запросов со слиянием (JOIN);
Возможность выбора типа индекса, соответствующего решаемым задачам (например, можно использовать индекс для полнотекстового поиска);
Настраиваемая надёжность: приложение само может определять, что для него важнее: более высокая надёжность или более высокая производительность;
Эффективное хранилище, в котором в полной мере используются возможности современного оборудования (например, SSD-накопители) и могут применяться большие кэши;
Транзакции: возможность запускать запросы сразу для нескольких документов или коллекций с опциональной согласованностью транзакций и изоляцией;
Поддержка репликации и шардинга: возможность создания master-slave конфигураций и разнесения наборов данных на разные серверы в зависимости от определённого признака;
Для создания микросервисов поставляется JavaScript-фреймворк Foxx, выполняемый внутри сервера СУБД с прямым доступом к данным.
Проведена оптимизация производительности подзапросов, а также операций UPDATE и REPLACE;
Реализована возможность распараллеленного выполнения запросов AQL, что позволяет сократить время сбора данных, распределённых по разным узлам кластера;
Реализована отложенная материализация документов, позволяющая в некоторых ситуациях избавиться от необходимости полного извлечения нерелевантных документов;
При сканировании документов обеспечено раннее отбрасывание документов, не соответствующих заданному фильтру;
Улучшен движок полнотекстового поиска ArangoSearch, поддерживающий ранжирование с учётом сходства данных. Добавлена поддержка анализатора для автодополнения запросов, реализованы функции TOKENS() и PHRASE() для динамического формирования поисковых запросов;
Добавлена настройка maxRuntime для выборочного ограничения времени выполнения запроса;
Добавлена опция «—query.optimizer-rules» для управления активацией определённых оптимизаций при обработке запросов;
Расширены возможности для организации работы кластера. Добавлена опция «—cluster.upgrade» для выбора режима обновления узлов в кластере;
Добавлена поддержка TLS 1.3 для шифрования канала связи между клиентом и сервером (по умолчанию клиент продолжает использовать TLS 1.2).