Another Word For It Patrick Durusau on Topic Maps and Semantic Diversity

June 14, 2012

Titan: The Rise of Big Graph Data [SLF4J conflicts] + Solution to Transaction issue

Filed under: BigData,Graphs,Titan — Patrick Durusau @ 3:14 pm

Titan: The Rise of Big Graph Data by Marko O. Rodriguez and Matthias Broecheler.

Description:

A graph is a data structure composed of vertices/dots and edges/lines. A graph database is a software system used to persist and process graphs. The common conception in today’s database community is that there is a tradeoff between the scale of data and the complexity/interlinking of data. To challenge this understanding, Aurelius has developed Titan under the liberal Apache 2 license. Titan supports both the size of modern data and the modeling power of graphs to usher in the era of Big Graph Data. Novel techniques in edge compression, data layout, and vertex-centric indices that exploit significant orders are used to facilitate the representation and processing of a single atomic graph…

Some minor corrections:

Correct: http://thinkaurelius/titan.zip to: https://github.com/thinkaurelius/titan (slide 109)

Correct: titan/ to: titan-0.1-apha/

Another clash with Ontopia, multiple SLF4J bindings (recalling that I had to put slf4j-log4j2-1.5.11.jar explicitly in my class path, Ontopia 5.2.1 and the CLASSPATH). Clashes with :/home/patrick/working/titan-0.1-alpha/lib/slf4j-log4j12-1.6.1.jar.

Fixed that, need a solution to easily switch classpaths.

It did startup after that fix.

I got to slide 116, trying to load ‘data/graph-of-the-gods.xml’ when Titan started returning error messages. Send messages + stack trace to Marko.

Will report back when I find where i went wrong or the software has that bug fixed.

This is a very exciting project so I suggest that you take a look it sooner rather than later.


Update: (I should get this sort of response time from commercial vendors):

From Matthias:

there is a bit of a transactional hickup in Titan/Blueprints right now. In Titan, every operation on the graph occurs in the context of a transaction. In Blueprints, calling startTransaction requires that no other transaction is currently running for that thread. loadGraphML calls “startTransaction”. Putting all of those together you get the exception below.

So, to get around it, you would have to call “stopTransaction(SUCCESS)” before loading the data. We should add that to the slides.

However, we are hoping that this situation is temporary, meaning having to call stopTransaction explicitly.

One proposal is to have startTransaction automatically “attach” to the previous transaction since this is completely acceptable behavior in most if not all situations. This is currently in the pipeline.

So, the slides read:

[Incorrect]
gremlin> g.createKeyIndex(‘name’, Vertex.class)
==>null
gremlin> g.loadGraphML(‘data/graph-of-the-gods.xml’)
==>null

Should read:

[Correct]
gremlin> g.createKeyIndex(‘name’, Vertex.class)
==>null
gremlin> g.stopTransaction(SUCCESS)
==>null

The Getting Started page for Titan appears to be more accurate than the slides (at least so far). 😉

No Comments

No comments yet.

RSS feed for comments on this post.

Sorry, the comment form is closed at this time.

Powered by WordPress