The Distributed Graph Database Titan Provides Real-Time Big Graph Data
1–10 of 21 posts
Re: The Distributed Graph Database Titan Provides Real-Time Big Graph Data
#2See https://groups.google.com/d/msg/gremlin-users/6GYiHn3QR8g/81...
Re: The Distributed Graph Database Titan Provides Real-Time Big Graph Data
#3Re: The Distributed Graph Database Titan Provides Real-Time Big Graph Data
#4I'm liking the Apache license which pulls me away from Neo4j. Can anyone please layout a comparison between Neo4j and Titan?
Titan has pluggable storage options: Cassandra, HBase, Berkeley DB, and some have been working on adapters for DynamoDB and App Engine Datastore. However, it's not clear how well App Engine and DynamoDB will work with the upcoming Titan changes which will move the traversal engine into the cluster's JVM.
Both Neo4j and Titan support Blueprints, and you can run Gremlin (https://github.com/tinkerpop/gremlin/wiki) on both. Marko Rodriguez (http://markorodriguez.com/), the creator of Gremlin, is one of the principals behind Titan.
See "The Benefits of Titan": https://github.com/thinkaurelius/titan/wiki/The-Benefits-of-...
Re: The Distributed Graph Database Titan Provides Real-Time Big Graph Data
#5Hadoop, Solr/Lucene, and now Blueprints/Grapb DB operations are all available on the same Cassandra cluster, in addition to the stuff Cassandra does quote-unquote natively. Add Zookeeper for the few times you need an honest-to-goodness transaction and it's just crazy how good the tech has gotten on the backend in the last 10 years. :-)
Re: The Distributed Graph Database Titan Provides Real-Time Big Graph Data
#6I'm liking the Apache license which pulls me away from Neo4j. Can anyone please layout a comparison between Neo4j and Titan?
Titan is distributed and has much higher write performance (5000 transactions/sec). In the words of Matthias Broecheler, the creator of Titan, you would use Titan to implement a social network ( https://twitter.com/MBroecheler/statuses/213350753031569409 ). Titan has pluggable storage options: Cassandra, HBase, Berkeley DB, and some have been working on adapters for DynamoDB and App Engine Datastore. However, it's no…
"Titan's performance under normal (5,900 transactions per second) and peak (10,200 transactions per second) load..."
Re: The Distributed Graph Database Titan Provides Real-Time Big Graph Data
#7I'd like to see a few other details that aren't mentioned:
- What's the following distribution end up looking like? Does it have a similar fraction of 'celebrity' users with huge follower counts? Or more technically, does the russian roulette against the recommendation sampling end up producing a network similar to a scale free graph grown via preferential attachment (Barabási–Albert model)? It looks like your mean fanout is about 20, which is smaller than what twitter has published, but I'd be more interested in knowing how many 10k+ follower users are in the graph.
- What's the write amplification like? ~1.6 Billion per tweet per follower edges stored daily seems like it could burn a lot of capacity quickly, though most of it will grow cold quickly and could be pushed to archive. Making a rough guess from your disk write monitoring line graph, it looks like you'd be putting down about 16GB a day? It'd be interesting to see a comparison between this run and one done where streams are built indirectly via follower links alone.
Re: The Distributed Graph Database Titan Provides Real-Time Big Graph Data
#8For graph queries, linearity can be definitely achieved on parallel systems with tens of thousands of compute nodes using the state-of-the-art algorithms. However, Titan does not use any of those algorithms and will be very lucky to exhibit linearity at a couple dozen nodes. Not to take away from the implementation but people looking for a scalable graph database will not be satisfied with Titan.
As an aside, the best algorithms and data structures for doing massively parallel graph operations are not published but obviously exist. The fastest system in the Graph500 benchmark uses a half million cores on a trillion edge graph. That is a several order of magnitude gap between what the best open source systems can do and what systems developed by closed research organizations can do as published in public benchmarks.
(Disclosure: I invented one of the aforementioned families of massively parallel graph processing algorithms in 2009, and not the first. The published literature has not even caught up with the first generation of such algorithms. A significant portion of advanced computer science research is no longer published.)
Re: The Distributed Graph Database Titan Provides Real-Time Big Graph Data
#9This looks like a very nice implementation of a graph database. However a 6-machine cluster barely qualifies as "distributed" for the purposes of a graph database. You will experience almost no sub-linearity at this scale no matter how poorly the algorithms distribute. I am not intimately familiar with the transactional implementation but the graph processing algorithms described in Titan are not significantly distri…
Re: The Distributed Graph Database Titan Provides Real-Time Big Graph Data
#10This looks like a very nice implementation of a graph database. However a 6-machine cluster barely qualifies as "distributed" for the purposes of a graph database. You will experience almost no sub-linearity at this scale no matter how poorly the algorithms distribute. I am not intimately familiar with the transactional implementation but the graph processing algorithms described in Titan are not significantly distri…
Why is it that they aren't published? Competitive advantage?
I've done work in other algorithm areas where the situation is similar. It often costs millions of dollars to develop major computer science advances but the best way to recover that investment is to leverage it without publishing it. Reverse engineering a thoroughly obfuscated technology takes a lot longer than when someone publishes the blueprints.
I will add that a lot of these algorithms are not at all obvious until you understand how they work. While knowing something is possible helps, it still requires a fair amount of theoretical computer science cleverness.