JetBrains/youtrackdb

YouTrackDB is a general-use object-oriented graph database with storage format native to handle graph relations. YouTrackDB supports Gremlin queries and ACID transactions. YTDB supports both embedded and client-server deployment models.

解决的问题

YouTrackDB 是一款通用型图数据库,能够处理连接数据(如社交网络、推荐引擎或依赖关系图),而无需传统 JOIN 的性能开销。它允许您将数据存储和查询为对象和关系,具有快速的链接遍历和强一致性保证。

工作原理

YouTrackDB 将数据存储为图,对象之间的关系以常数时间(O(1))遍历,而不是使用昂贵的运行时 JOIN。它支持嵌入式(在应用程序内运行)和客户端-服务器(独立数据库服务器)部署。事务在快照隔离下运行,因此每个事务在开始时看到数据库的稳定视图,避免脏读和相关问题。您可以使用 TinkerPop API 和 Gremlin 查询语言,或基于 SQL 的 YQL 语言(具有图模式扩展,如 MATCH 语句)进行查询。它还提供无模式、混合模式和全模式,以适应不同的开发工作流。

适用对象

YouTrackDB 适用于需要处理复杂关系和图查询的应用程序的开发人员和团队。它由 JetBrains 在生产环境中使用,因此适合要求苛刻的环境。您可以通过 Docker 控制台进行实验,使用 Maven 或 Gradle 将其嵌入 Java 项目,或作为 Docker 容器运行完整服务器。它需要 JDK 21 或更高版本。

亮点

  • 链接遍历的 O(1) 复杂度,避免昂贵的 JOIN
  • 默认对所有事务进行快照隔离
  • 开箱即用地支持 TinkerPop API 和 Gremlin 查询语言
  • YQL 查询语言,具有 SQL 风格语法和图扩展
  • 支持无模式、混合模式和全模式
  • 强大的安全性,基于用户、角色和谓词策略
  • 可选静态数据加密
  • 在线增量备份和完整备份,暂停时间最短
  • 每个实例支持多个独立数据库
  • 易于入门:Docker 镜像用于控制台和服务器,Maven/Gradle 依赖用于嵌入式使用

相关

  • 项目
  • 项目
  • 项目
  • 项目