
Titanium – a Clojure graph library built on top of Titan - ifesdjeen
http://blog.clojurewerkz.org/blog/2013/02/11/introducing-titanium/
======
robertfw
Does anyone have experience working with Titan, either on the side or in
production? Is Titan production ready?

The flexible storage backends, clustering, and the open source license are all
very enticing. I've been looking for a graph database for an upcoming project
and have yet to find something that really matches what we're looking for.

~~~
m0nastic
I'm currently playing around with it for a large internal development project.
My only concern (and why I'm leaning towards using Neo4j at least initially)
is that I don't really yet have a good indication if I'm going to be dealing
with enough data to warrant a big distributed solution.

I'm actually right now mostly messing with TinkerGraph (an in memory graph
database that's part of the Tinkerpop utilities that the Titan guys make).

~~~
okram
With Titan/BerkeleyDB you will get blazing performance for a single-machine
distribution. One of the wonderful innovations of Titan is vertex-centric
indices that is even necessary at single-machine scale.

    
    
      http://thinkaurelius.com/2012/10/25/a-solution-to-the-supernode-problem/
    

Next, if you decide to scale horizontally, then you can simply change the
storage.backend=cassandra and thats that (of course, you need to do a bulk
data transfer from BerkeleyDB to Cassandra).

~~~
m0nastic
That's good to know actually; I think that'll probably be a good approach for
my application.

For what it's worth, it was seeing a video of you giving a talk about Titan
that made me start looking into it. It seems super neat.

------
devinus
Another Titan library for Clojure is Hermes:
<https://github.com/gameclosure/hermes>

~~~
sixwing
my team has made a ton of contributions to hermes - it's a pretty solid
library. that said, i'm happy to see more traction for clojure + titan,
especially from the clojurewerks crew.

------
DigitalTurk
Does anyone know if this supports (efficient) graph-rewriting?

I'm thinking of this kind of patterns:

If there are nodes n and n' such that

    
    
      - there's an edge from n to n' and
    
      - n has a label XY
    

then add label Y to n'

So what I'd want to do is match basic patterns and then add nodes, edges, and
labels.

~~~
zenogais
There is support for graph rewriting for a Titan-backed data-set using Faunus.
Titan does not support global graph operations. Therefore, Faunus was created
to allow you to perform offline graph operations much like the one you've
described.

~~~
DigitalTurk
thanks. that looks interesting.

------
espadrine
Bolth. Bolth? Bolth.

[https://github.com/clojurewerkz/titanium/blob/master/src/clo...](https://github.com/clojurewerkz/titanium/blob/master/src/clojure/clojurewerkz/titanium/conversion.clj#L26)

