标签: tinkerpop

Neo4j正在耗尽内存/ GC错误

我的学士论文的一部分是将.nt文件(海龟格式)加载到neo4j数据库中,在阅读它并寻找可能的实现后,我发现OpenRDF的SailRepositoryConnection实现应该像我需要的那样工作,但我遇到了沉重的OOM/GC问题.我使用的库: - 蓝图2.5 - OpenRDF Sesame 2.7.8 - Neo4j 2.0.3

我使用的系统: - Fedora 19 64位 - 4 Gb Ram - Java版本1.7.0_51

我的代码如下:

public void loadFile() throws SailException {
        //load file
        Neo4j2Graph neo4jGraph = new Neo4j2Graph(this.DB_DIRECTORY);
        BatchGraph<TransactionalGraph> neo = new BatchGraph<TransactionalGraph>(neo4jGraph, VertexIDType.NUMBER, 1);

    GraphSail sail = new GraphSail( neo4jGraph );
    sail.initialize();

    SailRepositoryConnection connection;
    try { 
        connection = new SailRepository( sail ).getConnection();

        URL url = f.toURI().toURL(); // getClass().getResource( this.f.getCanonicalPath() );
        // System.out.println( "Loading " + url + ": " );

        connection.add(url, null …
Run Code Online (Sandbox Code Playgroud)

garbage-collection out-of-memory neo4j tinkerpop

2
推荐指数
1
解决办法
507
查看次数

Tinkerpop - Titan/Cassandra 项目设置

我正在设置一个 Java Enterprise 1.7 项目,该项目将 TinkerPop 3 和 Titan 0.5 与 Cassandra 一起使用。

一般的想法是:

  1. 运行 Titan 0.5 的专用数据库服务器,
  2. Tinkerpop 3某处
  3. 运行与数据库服务器分离的 Java EE 7 应用程序的应用程序服务器。

我有很多悬而未决的问题,我想寻求最佳实践建议示例

  1. Tinkerpop 3 应该在哪里?在应用程序服务器中还是在数据库服务器中?
  2. Tinkerpop 如何与泰坦沟通?
  3. Tinkerpop with Titan 这种环境的最佳配置是什么?
  4. Java Enterprise 应用程序应该如何与 Tinkerpop 通信?
  5. Tinkerpop API 应该如何与 Java EE 集成?请记住同时多个用户和一般企业环境问题(缓存、交易、多次调用数据库等)
  6. 你有任何项目设置示例吗?

这个基本配置最终会放在 github ot bitbucket 中,为其他项目做好准备。

architecture cassandra titan tinkerpop jakarta-ee

2
推荐指数
1
解决办法
1804
查看次数

如何在TinkerPop 3中找到没有传入边的所有顶点?

如何编写遍历使用Gremlin TinkerPop 3来查找没有传入边的所有顶点?

作为后续跟踪,我还需要找到一个没有外边缘的顶点.

gremlin titan tinkerpop

2
推荐指数
1
解决办法
914
查看次数

查询以检查图中是否存在仅访问过一次边的循环

如何编写查询在我的图表上运行,如果没有路径只穿过每个边缘一次并返回起始点,则输出'false'.

graphic gremlin tinkerpop

2
推荐指数
1
解决办法
843
查看次数

获取与TinkerVertex属性中的键对应的值

在Gremlin-Groovy中,给定一个TinkerVertex对象,检索与其属性中的键对应的值的最清晰/最快的方法是什么,如果不存在则返回默认值(例如null)?

这就是我目前的做法:

def eval(vertex, field) {
    prop = vertex.property(field)
    prop.isPresent() ? prop.value() : null
}
Run Code Online (Sandbox Code Playgroud)

当顶点没有所需的字段时会vertex.property(field).value()产生异常,所以我不得不添加该条件.

即使它有点短,这个操作一直都在进行,这让我感到困惑,因为我还没有找到更多的"gremlinish"解决方案.

java groovy graph gremlin tinkerpop

2
推荐指数
1
解决办法
195
查看次数

有没有办法在TinkerGraph上定义架构约束?

我想知道是否有可能使用TinkerPop 3为内存中的TinkerGraph定义内存中的模式约束.因此,如果不允许某些内容,它将抛出像DSE Graph和Titan这样的异常.现在架构是由插入定义的,所以如果有可能为TinkerGraph提供可选的架构会很好

谢谢!

gremlin tinkerpop tinkerpop3

2
推荐指数
1
解决办法
334
查看次数

小鬼交叉操作

我正在使用 gremlin 控制台 v3.3.1。使用教程中的“现代”图:http : //tinkerpop.apache.org/docs/current/tutorials/getting-started/

用这个创建图形:

gremlin>graph = TinkerFactory.createModern()
gremlin>g = graph.traversal()
Run Code Online (Sandbox Code Playgroud)

我可以找到所有像这样知道“vadas”的人:

g.V().hasLabel('person').has('name', 'vadas').in('knows').hasLabel('person').valueMap()
Run Code Online (Sandbox Code Playgroud)

我可以找到所有创建“lop”软件的人:

g.V().hasLabel('software').has('name', 'lop').in('created').hasLabel('person').valueMap()
Run Code Online (Sandbox Code Playgroud)

我可以找到所有知道“vadas”或通过联合操作创建“lop”的人:

g.V().union(
g.V().hasLabel('person').has('name', 'vadas').in('knows').hasLabel('person'),
g.V().hasLabel('software').has('name','lop').in('created').hasLabel('person')
).dedup().valueMap()
Run Code Online (Sandbox Code Playgroud)

但我不知道如何找到所有知道“vadas”并创建“lop”的人。基本上我想要一个 INTERSECT 操作(我认为),但是我找不到这样的东西。

有什么帮助吗?

gremlin tinkerpop tinkerpop3

2
推荐指数
1
解决办法
1580
查看次数

gremlin_python中的自定义ID

可以在Gremlin控制台上将自定义ID提供给新顶点,如下所示:

gremlin> g.addV('person').property(id, 1234)next()
==>v[1234]
Run Code Online (Sandbox Code Playgroud)

在Java客户端中,可以按照以下步骤进行操作:

graph.addVertex(T.id, customId);
Run Code Online (Sandbox Code Playgroud)

(其中T为org.apache.tinkerpop.gremlin.structure.T

gremlin_python是否有与T.id等效的形式,以简化上述形式?

非常感谢。

python graph-databases gremlin tinkerpop

2
推荐指数
1
解决办法
618
查看次数

gremlin 获取与给定节点直接或间接连接的所有节点

我是小精灵的新手。

我正在尝试获取(直接或间接)连接到给定顶点的所有节点。
例如:图中的
一个这样的集群。
AD
AF
FB
BC
BG
GH
GI

第二个集群像这样在图中。
JK
JL

我的要求当我搜索节点“B”时,我只需要获取 B(无边方向)的所有连接顶点。
ex 输出:A、D、F、B、C、G、H、I

当我搜索 J.
ex outpu:J,k,L

任何帮助将不胜感激,提前致谢。

gremlin tinkerpop janusgraph amazon-neptune

2
推荐指数
1
解决办法
2009
查看次数

为什么 JanusGraph 的 addVertex() 比图遍历的 addV() 慢得多?

我正在使用 JanusGraph 将顶点添加到 cassandra 支持的数据库中,我注意到在添加顶点时存在很大的性能差异(1)JanusGraph java 库提供的 addVertex() 方法 vs (2) addV( ) gremlin 遍历函数。为什么会有这样的差异?

我使用JanusGraph版本0.2.0cql作为存储后端。我创建了一个测试,该测试使用三种方法比较将顶点添加和提交到图形所需的时间(以毫秒为单位):(1)addV()gremlin 函数,(2)addV()gremlin 函数,然后执行一个next()步骤来获取新创建的顶点,以及(3 ) JanusGraphaddVertex()方法。我从一个完全空的图形存储开始。我使用的代码可以在下面找到。

final Builder builder = JanusGraphFactory.build()
        .set("storage.backend", "cql")
        .set("storage.hostname", Config.get(CommonConfig.cassandra_host));

final JanusGraph graph = builder.open();

long nowMillis = TimeUtils.nowMillis();
graph.traversal().addV("myLabel");
graph.traversal().tx().commit();
System.out.println("(1) - Add vertex traversal only took " + (TimeUtils.nowMillis() - nowMillis) + " millis");

nowMillis = TimeUtils.nowMillis();
graph.traversal().addV("myLabel").next();
graph.traversal().tx().commit();
System.out.println("(2) - Add vertex traversal and next took …
Run Code Online (Sandbox Code Playgroud)

graph-databases gremlin tinkerpop janusgraph

2
推荐指数
1
解决办法
1327
查看次数