Titan: Distributed Graph Database
http://titan.thinkaurelius.com
[[https://raw.github.com/thinkaurelius/titan/master/doc/images/titan-globe.png|width=100px]]
```xml
com.thinkaurelius.titan
titan-core
0.4.1-SNAPSHOT
```
Tested Compatibility:
- Cassandra 1.2.2
- HBase 0.94.7
- BerkeleyJE 5.0.73
- Elasticsearch 0.90.5
- Lucene 4.4.0
- Persistit 3.3.0
- Hazelcast 3.0.2
- Java 1.7+ (partially compatible with Java 1.6)
Features:
- Property pre-fetching to speed up multiple property lookups per vertex. Configurable through “fast-property”
- Shortened HBase column-family names to reduce the HBase storage footprint. This feature is disabled by default for backwards-compatibility. Enable it via
storage.short-cf-names
- Metrics per Transaction: Gathering measurements on the transaction level and group them by transaction template name configurable through graph.buildTransaction()
- Metrics Ganglia and Graphite support
Bugfixes:
- Fixed multiQuery() for specific has() conditions. Added support for multiQuery(Collection).
```xml
com.thinkaurelius.titan
titan-core
0.4.0
```
Tested Compatibility:
- Cassandra 1.2.2
- HBase 0.94.7
- BerkeleyJE 5.0.73
- Elasticsearch 0.90.5
- Lucene 4.4.0
- Persistit 3.3.0
- Hazelcast 3.0.2
- Java 1.7+ (partially compatible with Java 1.6)
Features:
- Initial Fulgora (alpha) release: Added CacheStore interface and adapter as well as a specific implementation based on the Hazelcast distributed data grid
- Configurable LRU transaction cache for all data loaded into a transaction which allows rolling transactions without memory exceptions
- MultiQuery which allows combining multiple queries into one request to speed up deep traversals by orders of magnitude against remote backends
- Completely refactored query optimization and execution framework which makes query answering faster
- GraphQuery optimizer combines multiple indexing backends to determine the result set most efficiently
- Support for ordering in GraphQuery
- Persistit storage adapter for local graph storage
- Metrics integration for monitoring
- Support for regular expressions in GraphQuery
- Refactoring and improvement of the locking protocol
- Renaming of type definition methods to reduce the confusion surrounding this topic (see UPGRADE for more detail)
- Re-implemented scanning operations in storage backends to make getVertices() and getEdges() more efficient and functionally correct
- Added performance test suite and automatic benchmark execution framework
- Refactored attribute handling and made it explicit
- Transactions are configurable by the user
- Titan interprets relative paths in configuration files relative to the directory containing said configuration file (instead of the directory from which e.g. Gremlin was invoked)
- Attribute Handling has been refactored and extended to allow custom converters and data type checkers
Bugfixes:
- Cassandra compression
- Resolution of elements across transaction boundaries
- Tokenization of strings for full text search
- Explicit mapping of elasticsearch elements
- Changed index format to ensure uniqueness
- Correct limit behavior for queries
- Fixed incorrect query caching behavior
- Correct string serialization
- Correct handling of hybrid GraphQuery
- Better handling of data degradation issues
Check the issue tracker for a full list of fixed issues.
Special Thanks to:
- Blake Eggleston (bdeggleston)
- Erick Tryzelaar (erickt)
- Zach Kinstner (zachkinstner)
- jkschneider
- gwhitehawk
- mamccr
- akeffalas
```xml
com.thinkaurelius.titan
titan-core
0.3.1
```
Tested Compatibility:
- Cassandra 1.2.2
- HBase 0.94.1
- BerkeleyJE 5.0.73
- Elasticsearch 0.90.0
- Lucene 4.1.0
- Java 1.6+
Features:
- Improved in-transaction index handling for equality matches
- Support for Lucene 4 throughout
- Storage backend compression enabled by default where applicable
- Removed RexsterTitanClient since all the functionality has been rolled into RexsterClient
- Automatic type-casting of most primitive types and Geoshape where possible
- Refactored to using immutable data structures for storage backend communication
- Re-implemented InMemory storage backend for better performance
Bugfixes:
- Launching multiple Titan servers in one cluster with RF>1
- Updated and improved the Astyanax adapter for Cassandra
- Improved robustness of ID allocation
- Vertex iteration in embedded Cassandra with BoP
- Updated Titan server scripts and configuration files
- Fixed issues around automatic transaction migration of vertices and edges
- Fixed BerkeleyJE concurrency clean-up issue
- Cleaned up and trimmed storage backend interfaces
- Fixed ghost vertex issue when iterating over vertices
- Fixed datatype conversion issues
Check the issue tracker for a full list of fixed issues.
```xml
com.thinkaurelius.titan
titan-core
0.3.0
```
Tested Compatibility:
- Cassandra 1.2.2
- HBase 0.94
- BerkeleyJE 5.0.73
Features:
- Geo, numeric range, and full-text indexing supporting multiple index backends
- Edge Indexing
- Refactoring of Titan-core for enhanced performance due to selective de-serialization
- New query optimizer for vertex-centric and graph queries
- Vertex centric query caching for selective queries
- InMemoryGraph implementation
- IdGraph support
- Relaxed transactional scope requirement for vertices
- Edge no longer extends Vertex
- Updated to Kryo 2
Bugfixes:
- Cassandra Thrift Max-Message-Size issue
- JMX settings for Titan Server
- Out-unique edges
- Modified state in global graph operations
- see issue tracker for a full list
```xml
com.thinkaurelius.titan
titan-core
0.2.1
```
Tested Compatibility:
- Cassandra 1.2.0
- HBase 0.94
- BerkeleyJE 5.0.58
Features:
- Refactored POM into multi-module project
- Support for global vertex (g.V) and edge (g.E) iteration for cassandra and hbase backends
- Compatible with Cassandra 1.2.0 for all three storage adapters: embedded, thrift, astyanax
- Improved HBase adapter:
- Automatic Master launch for testing
- Refactored batch mutation and reading
- Optimized HBase operations
- Updated to Blueprints 2.3.0
- Better integration with Rexster Rexpro
- Automatic directory creation for local storage backends
- Internal Titan version handling and compatibility checks
- Added additional performance tests
Bugfixes:
- Resolved issues around Java 1.7
- Shutdown error in astyanax adapter
- Made thrift frame and message size configurable for cassandra adapters
- see issue tracker for a full list
Special Thanks to:
- Pavel Yaskevich (xedin)
```xml
com.thinkaurelius.titan
titan
0.2.0
```
Tested Compatibility:
- Cassandra 1.1.3 & 1.1.4
- HBase 0.94.1
- BerkeleyDB 5.0.58
- TinkerPop (Blueprints, Gremlin, Rexster) 2.2.0
- This version is incompatible with the previous version of Titan. Please follow the [[Upgrade Instructions]] to switch to the new version.
Features:
- Embedded Cassandra: Titan can be embedded with Cassandra, that means, Titan starts a Cassandra node in the same JVM and uses efficient in process communication to store and retrieve data.
- [[Titan Server]]: Titan comes with a light-weight Gremlin query server.
- Streamlined configuration settings. Please review the new configuration options if you are upgrading from an older version of Titan.
- Many small performance improvements throughout the code. Please review the issue tracker and the commit log for more details.
Bugfixes:
- Fixed edge sorting bug which caused edges to be returned in a random order even when a vertex centric index was defined.
- Fixed id allocation bug that causes Titan to read the entire row during id allocation which can lead to id allocation failures.
- Completely refactored diskstorage package for better code quality and performance.
- Fixed edge caching bug for composite primary keys on edges.
- Fixed a number of smaller bugs. Please review the issue tracker and the commit log for more details.
Special Thanks to:
```xml
com.thinkaurelius.titan
titan
0.1.0
```
Tested Compatibility:
- Cassandra 1.1.3 & 1.1.4
- HBase 0.94.1
- BerkeleyDB 5.0.58
Features:
- The focus of the initial Titan release was on building a stable and robust graph database as well as incorporating community feature suggestions and feedback from early adopters of Titan.
Bugfixes:
- Fixed concurrency and synchronization issues
Special Thanks to: