JetBrains Features YouTrackDB, an Embedded Object-Oriented Graph Database Built on JDK 21
JetBrains has developed YouTrackDB, a general-purpose, object-oriented graph database designed for production environments requiring low-latency link traversal and native inheritance models. Operating on JDK 21, the system supports ACID transactions via default snapshot isolation and offers both embedded shaded deployments and client-server topologies.
Storage Architecture and Object-Oriented Engine
YouTrackDB uses a native storage format designed specifically to handle complex graph relations without the computational overhead of runtime SQL JOIN operations. Direct link traversal in the engine is executed with $O(1)$ time complexity. Uniquely, the database engine implements fundamental object-oriented paradigms, including inheritance and polymorphism, directly at the database level rather than relying on external object-relational mapping translation layers. Systems engineers can configure the database to run in schema-less, schema-mixed, or schema-full modes depending on the structural rigidity required by the application.
Concurrency and Security Models
Data consistency is managed via fully ACID-compliant transactions running under snapshot isolation by default. Each transaction accesses a stable, immutable snapshot of the database state generated at the start boundary of the transaction. This execution model natively prevents dirty reads, non-repeatable reads, and phantom reads. To protect sensitive data at rest and in transit, YouTrackDB integrates a security profiling system based on user, role, and predicate-based security policies, alongside optional disk-level encryption.
Query Languages and Indexing
For graph querying, YouTrackDB natively implements the Apache TinkerPop API and supports the Gremlin query language, with full GQL integration currently under active development. For initial data prefetching and optimal execution performance, the engine relies on YouTrackDB Query Language (YQL). YQL is an extended SQL dialect featuring intuitive dot notation for direct link traversal, a MATCH statement optimized for graph pattern matching, and automated index optimization to bypass manual query planning.
Deployment Infrastructure and Dependency Management
The database engine requires a minimum of JDK 21 and supports both embedded and client-server deployment topologies. For embedded JVM applications, the `youtrackdb-embedded` artifact is distributed as a shaded uber-jar. This artifact relocates common third-party dependencies—specifically Guava, Jackson, and Groovy—under the `com.jetbrains.youtrackdb.shade` namespace to eliminate runtime classpath and dependency version conflicts. Client-server deployments are distributed via Docker containers, utilizing explicit directory binding for secrets, configuration files, logging directories, and database storage.