1

我是图形数据库和 Titan 的新手。我将 Titan 嵌入到 Clojure 应用程序中。当应用程序启动时,它会创建一个 BerkeleyDB 支持的 Titan 存储。

我想知道/做三件事:

  1. 这个数据库是新的吗?如果是这样,请创建版本为 0 的版本节点。运行迁移过程以将“模式”带到最新版本。
  2. 如果没有,它是否有版本节点?如果不是,则抛出异常。
  3. 如果数据库预先存在并且具有版本节点,则运行迁移过程以使“模式”保持最新。

我如何在泰坦中做到这一点?对此有最佳做法吗?

编辑:

好的,经过进一步审查,我认为使用硬编码的顶点 ID 是最有意义的。有一个 TitanTransaction.containsVertex(long vertexid)。这种方法有什么缺点吗?我想我不知道顶点是如何分配的以及它们的保留范围是什么,所以这闻起来很危险。我是图形数据库的新手,但我认为在 Neo4j 中建议从根节点创建参考节点。但是 Titan 不鼓励使用根节点,因为它会成为超级节点。身份证...

4

1 回答 1

2

1-我不知道是否有办法通过Titan查看数据库是否是新的。在启动 Titan 之前,您可以检查存储 BerkeleyDB 的目录是否存在。

2/3-可能你最好的选择是一个带有索引属性“版本”的硬编码顶点。在开始时在“版本”的(几乎为空的)索引中进行查找,并将您的逻辑基于这些结果。

顺便说一句,您可能对 Titanium[0] 感兴趣。我们正准备在下周左右发布一个大版本,这应该会使其更加有用[1]。

[0] http://titanium.clojurewerkz.org/

[1] http://blog.clojurewerkz.org/blog/2013/04/17/whats-going-on-with-titanium/

于 2013-04-22T14:05:50.210 回答