OVERVIEW
Titan is one piece of the Aurelius Graph Cluster, which also includes Faunus and Fulgora.
Titan is an OLTP distributed graph database capable of supporting tens of thousands of concurrent users interacting with a single massive-scale graph represented over a cluster of machines. The current distribution’s pluggable storage architecture provides connectivity to Apache Cassandra, Apache HBase, and Oracle’s BerkeleyDB. Titan is a native Blueprints enabled graph database and as such, it supports the full TinkerPop stack of technologies.
Faunus is an OLAP analytics engine for processing property graphs using Hadoop. Graphs are analyzed using a MapReduce implementation of the Gremlin graph traversal language. General use-cases include computing graph derivations/transformations and global graph statistics. Faunus can be extended with new operations written using MapReduce and Blueprints. Titan connectivity is provided to allow for the global analysis of Titan graphs.
Fulgora is a compression-based, transaction-less, in-memory graph processor capable of storing billions of edges within the memory confines of a single machine. Fulgora is optimized for the execution of massively threaded, global graph algorithms. Algorithms are written using the Blueprints graph API. [coming end of winter 2012]
QUICKSTART
Get Titan up and running on your local computer in 4 easy steps.
To download Titan, unzip it, and start Titan Server on the localhost
, execute the following 4 shell commands:
$ wget http://s3.thinkaurelius.com/downloads/titan/titan-cassandra-0.3.0.zip $ unzip titan-cassandra-0.3.0.zip $ cd titan-cassandra-0.3.0 $ sudo bin/titan.sh config/titan-server-rexster.xml config/titan-server-cassandra.properties ... 13/03/27 12:40:35 INFO server.RexProRexsterServer: RexPro serving on port: [8184] 13/03/27 12:40:35 INFO server.HttpRexsterServer: Rexster Server running on: [http://localhost:8182] 13/03/27 12:40:35 INFO server.ShutdownManager: Bound shutdown socket to /127.0.0.1:8183. Starting listener thread for shutdown requests. ...
Titan Server embeds both Cassandra and a lightweight version of Rexster within the same JVM. You can connect to Titan from any programming language because Titan Server exposes the following language-agnostic endpoints:
- A HTTP RESTful endpoint available at http://localhost:8182/graphs CRUD operations can be enacted via HTTP and JSON.
- A RexPro binary protocol endpoint available on port 8184.
Arbitrarily complex Gremlin read/write operations can be enacted via MessagePack.
See the Titan Wiki for the complete manual, including the Getting Started Guide and the Titan introduction video presented by Matthias.
AURELIUS
Aurelius is the team of computer scientists and world-class software engineers behind Titan and the Aurelius Graph Cluster.
-
Dr. Matthias Broecheler is the lead developer of the distributed graph database Titan and has researched large scale graph database systems for more than 5 years. His award-winning research includes high performance index structures and query answering algorithms for graph structured data. In addition, he developed the Probabilistic Similarity Logic (PSL) machine learning framework to analyze and reason about multi-relational data. Matthias holds a Ph.D. in Computer Science from the University of Maryland.
-
Stephen Mallette has been developing commercial software for about fifteen years, with most of those years focused on healthcare-based applications. He is a primary contributor to the TinkerPop stack and the lead developer of Rexster, a graph server. Stephen also maintains the GremlinDocs website, which offers learn-by-example documentation of the Gremlin graph traversal language. He received his Bachelor of Science in Management Information Systems and Decision Sciences from George Mason University.
-
Dr. Marko Rodriguez has focused his academic and commercial career on graph theory, network science, and graph-system architecture and development. He is a TinkerPop co-founder and serves as the lead developer of the Gremlin graph traversal language. Marko received his Bachelors in Cognitive Science from UC San Diego, his Masters and Ph.D. in Computer Science from UC Santa Cruz and was a Director’s Fellow at the Center for Nonlinear Studies of the Los Alamos National Laboratory.
Contact Aurelius to find out about its support offerings.
TINKERPOP
TinkerPop is a developers group that has built much of the open-source software stack for the emerging graph database landscape.
The TinkerPop toolkit is a sophisticated suite of graph-based technologies to which many of the members of Aurelius contribute. The TinkerPop stack is utilized in all of the Aurelius-specific products.
COMMUNITY
The graph-database ecosystem is growing fast.
Here a few things to check out.
TinkerPop Core Contributors
-
alexaverbuch Alex Averbuch
-
bdeggleston Blake Eggleston
-
espeed James Thornton
-
joshsh Joshua Shinavier
-
mbroecheler Matthias Broecheler
-
okram Marko A. Rodriguez
-
pangloss Darrick Wiebe
-
peterneubauer Peter Neubauer
-
pierredewilde Pierre De Wilde
-
spmallette Stephen Mallette
-
xedin Pavel Yaskevich
-
lvca Luca Garulli
Videos
- Marko Rodriguez Interview @ YOW! 2012
- Titan - Big Graph Data With Cassandra
- Gremlin Screencast Demo
- Graph Traversal Programming Pattern
- Pathology of Graph Databases
- What can Facebook, Amazon and Google teach us about society and about ourselves?
- Perspectives on Social Phenomena in Online Networks
- Cascading Behavior in Complex Networks
- Discrete Math (ArsDigita University)
- Algorithms: Design and Analysis (Stanford)
- Algorithms, Part I (Coursera)
- Algorithms, Part II (Coursera)
- Probabilistic Graphical Models (Coursera)
Books
- Networks, Crowds, and Markets
by David Easley and Jon Kleinberg - Networks: An Introduction
by Mark Newman - Network Analysis: Methodological Foundations
by Thomas Erlebach - Graph Algorithms in the Language of Linear Algebra
by Jeremy Kepner and John Gilbert - Algorithmic Graph Theory (GPL)
by David Joyner, Minh Van Nguyen, and David Phillips -
Graph Theory
by J.A. Bondy and U.S.R. Murty
-
Graph Theory with Applications
by J.A. Bondy and U.S.R. Murty
- Graph Theory, 4th Ed.
- Algorithm Design
by Jon Kleinberg and Éva Tardos - Probabilistic Graphical Models
by Daphne Koller and Nir Friedman
Papers
Blog Posts
- Titan Server: From a Single Server to a Highly Available Cluster
- Polyglot Persistence and Query with Gremlin
- On Graph Computing
- Big Graph Data on Hortonworks Data Platform
- Faunus Provides Big Graph Data Analytics
- A Solution to the Supernode Problem
- Deploying the Aurelius Graph Cluster
- Titan Provides Real-Time Big Graph Data
- Structural Abstractions in Brains and Graphs
- Loopy Lattices
- Multitenant Graph Applications
- Understanding the World Using Tables & Graphs
- Exploring WikiPedia with Gremlin Graph Traversals
- Graph Degree Distributions Using R Over Hadoop
- Graph Theory and Network Science
- A Graph-Based Movie Recommender Engine
- On the Nature of Pipes
- Local and Distributed Traversal Engines
- Global vs. Local Graph Ranking
- Knowledge Representation and Reasoning with Graph Databases
- Property Graph Algorithms
Supported Datastores
Clients
- Bulbs (Python)
- Thunderdome (Python)
- RexPro-Python (Python)
- RexPro-Java (Java)
- Hermes (Clojure)