Skip to content
mbroecheler edited this page Jun 14, 2012 · 5 revisions

There are various limitations and “gotchas” that one should be aware of when using Titan. Some of these limitations are necessary design choices and others are issues that will be rectified as Titan development continues.





Design Limitations

Global Graph Operations

Titan is a scalable OLTP graph database focused on handling a large number of concurrent transactions against a single graph. Titan does not support global graph operations, like retrieving all vertices or edges, because such work loads cannot be reasonably handled within the context of a single transaction. We are working on a Hadoop adapter to process such OLAP work loads.

Temporary Limitations

Key Index Must Be Created Prior to Key Being Used

Before a key is used as a vertex property, a key index must be created for it if indexing is desired. This pitfall will be fixed in a future release.

Unable to Drop Key Indices

Once an index has been created for a key, it can never be removed. This pitfall will be fixed in a future release.

Types Can Not Be Changed Once Created

This pitfall constrains the graph schema. While the graph schema can be extended, previous declarations can not be changed. This pitfall will be fixed in a future release.

Batch Loading Speed

Titan provides a batch loading mode that can be enabled through the configuration. However, this batch mode only facilitates faster loading into the storage backend, it does not use storage backend specific batch loading techniques that prepare the data in memory for disk storage. As such, batch loading in Titan is currently slower than batch loading modes provided by single machine databases.
Another limitation related to batch loading is the failure to load millions of edges into a single vertex at once or in a short time of period. Such supernode loading can fail for some storage backends. This limitation also applies to dense index entries. For more information, please refer to the ticket