← На главную

JetBrains выкатила графовую БД YouTrackDB c O(1) обходом — уже в проде

14.07.2026 03:39 · hackernews

JetBrains развивает YouTrackDB — объектно-ориентированную графовую базу данных общего назначения. Её уже используют внутри компании в продакшене.

YouTrackDB обрабатывает данные быстро. Обход связей работает за O(1), дорогих runtime-JOIN нет. АPI объектно-ориентированный — наследование и полиморфизм встроены на уровне базы. По умолчанию включена изоляция снимков: каждый транзакции видит стабильный слепок базы на момент старта, так что грязные, неповторяемые и фантомные чтения исключены.

Коробка поддерживает TinkerPop API и язык запросов Gremlin. Сейчас в разработке поддержка GQL с интеграцией Gremlin. Для максимальной производительности JetBrains рекомендует YQL — собственный SQL-подобный язык с точечной нотацией для навигации по ссылкам вместо JOIN, мощным MATCH-выражением для графовых паттернов и автоматическим использованием индексов.

Рабочий процесс можно гибко настраивать: YouTrackDB работает в режимах без схемы, со смешанной схемой и полной схемой. Безопасность завязана на политики пользователей, ролей и предикатов. Данные на диске можно зашифровать.

База работает на любой платформе без конфигурации и установки. Попробовать её можно через REPL-консоль в Docker: docker run -it youtrackdb/youtrackdb-console.

Для встраивания в приложение достаточно добавить зависимость io.youtrackdb:youtrackdb-embedded:0.5.0-SNAPSHOT в Maven или Gradle. Это shaded uber-jar — он прячет все сторонние библиотеки (Guava, Jackson, Groovy) под com.jetbrains.youtrackdb.shade, чтобы не было конфликтов с версиями из проекта. Репозиторий снапшотов — Central Portal Snapshots (https://central.sonatype.com/repository/maven-snapshots/).

Сервер запускается через Docker: docker run -p 8182:8182 -v ... youtrackdb/youtrackdb-server. Нужно положить пароль root в файл secrets/root_password.

Системные требования — как минимум JDK 21. Документация по началу работы лежит в Getting Started guide, примеры в отдельном репозитории. Каждое нетривиальное изменение проходит полный цикл: исследование, дизайн, ревью плана, трек-по-треку реализация, финальное ревью.

Читать оригинал →