https://github.com/thinkaurelius/titan
Raw File
Tip revision: 8fe9a1c640d24c82cd5da01aae30884b59c2459b authored by Dan LaRocque on 10 June 2015, 16:44:21 UTC
Update changelog and upgrades for 0.9.0-M2
Tip revision: 8fe9a1c
CHANGELOG.asc
[[changelog]]
[appendix]
Release Notes
-------------

Version 0.9.0-M2 (June 9, 2015)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

<dependency>
   <groupId>com.thinkaurelius.titan</groupId>
   <artifactId>titan-core</artifactId>
   <version>0.9.0-M2</version>
</dependency>

*Tested Compatibility:*

* Cassandra 2.0.8
* HBase 0.94.25, 0.96.2-hadoop2, 0.98.8-hadoop2
* BerkeleyJE 5.0.73
* Elasticsearch 1.5.1
* Lucene 4.10.4
* Solr 5.1.0
* Java 1.8

*Features:*

* The main feature of the 0.9.0 release is the implementation of the Tinkerpop 3 APIs in Titan. This entails some radical changes to the query language and query execution engine. Furthermore, large parts of the hadoop processing engine are now covered by Tinkerpop and Titan has been refactored accordingly.  Compared with 0.9.0-M1, this release upgrades from Tinkerpop 3.0.0.M6 to 3.0.0.M9.  This release also upgrades the ES, Lucene, and Solr dependency versions.

Note, that this is a milestone release which is considered experimental. Please use this only for exploration, testing, and feedback and DO NOT use in production.

Version 0.9.0-M1 (December 4, 2014)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[source, m2]
<dependency>
   <groupId>com.thinkaurelius.titan</groupId>
   <artifactId>titan-core</artifactId>
   <version>0.9.0-M1</version>
</dependency>

*Tested Compatibility:*

* Cassandra 2.0.8
* HBase 0.94.25, 0.96.2-hadoop2, 0.98.8-hadoop2
* BerkeleyJE 5.0.73
* Elasticsearch 1.2.1
* Lucene 4.8.1
* Solr 4.8.1
* Java 1.8

*Features:*

* The main feature of the 0.9.0 release is the implementation of the Tinkerpop 3 APIs in Titan. This entails some radical changes to the query language and query execution engine. Furthermore, large parts of the hadoop processing engine are now covered by Tinkerpop and Titan has been refactored accordingly.

Note, that this is a milestone release which is considered experimental. Please use this only for exploration, testing, and feedback and DO NOT use in production.

Version 0.5.3 (January 12, 2015)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

*Features:*

* Added regex support for Lucene
* Added optional customization of Elasticsearch index settings (e.g. shard count or refresh interval)
* Removed some internal uses of ThreadLocal and made remaining uses optional
* Gave the exception thrown when a held lock expires a more descriptive name (ExpiredLockException) and message

*Bugfixes:*

* Allowed index hostnames to be overwritten in a local configuration file
* hasNot with undefined key
* Using $timestamp in query constraints
* Filtering out null-values in vertex-centric index queries
* Queries now use deep Array equality when appropriate
* Schema reads on Cassandra now use QUORUM regardless of read-consistency-level (schema writes were already done at QUROUM)
* Removed obsolete precondition check causing spurious failures on some Contain.IN queries

Version 0.5.2 (November 24, 2014)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[source, m2]
<dependency>
   <groupId>com.thinkaurelius.titan</groupId>
   <artifactId>titan-core</artifactId>
   <version>0.5.2</version>
</dependency>

*Tested Compatibility:*

* Cassandra 2.0.8
* HBase 0.94.25, 0.96.2-hadoop2, 0.98.8-hadoop2
* BerkeleyJE 5.0.73
* Elasticsearch 1.2.1
* Lucene 4.8.1
* Solr 4.8.1
* Java 1.7 (partially compatible with Java 1.6)

*Features:*

* Added query optimizer support for Contain.IN conditions with multiple values
* Added Astyanax options controlling the host supplier and local datacenter
* Added titan.hadoop.output.location option similar to the old Faunus 0.4 output.location option
* Added titan.hadoop.mr.classpath-configurer to support replacing Titan's builtin Hadoop DistributedCache and MapReduce job-jar behavior
* Added log statements that dump the complete job sequence compiled by Titan-Hadoop prior to job execution and each again just prior to execution
* Changed return type of HadoopPipeline.submit to an int signaling whether the job chain completed successfully (previously void)
* Replaced schema-related IllegalArgumentExceptions with more specific SchemaViolationExceptions
* Restored gremlin.sh's optional groovy-bootstrap-script-path argument

*Bugfixes:*

* Fixed Titan-Hadoop NullPointerException caused by reading Titan graph schema
* Fixed Titan-Hadoop failing to set OutputFormat when executing a single job with one or more mapper(s) and no reducers on Hadoop 2
* Changed Elasticsearch backend's version check to log a warning instead of throwing an exception when downgrading the client to an ES runtime version older than that used to compile Titan
* Made StandardTitanGraph's JVM shutdown hook never attempt to remove itself to avoid potential IllegalStateException
* Made the Cassandra daemon started by titan.sh interpret the paths to its data and logfiles relative to the directory containing titan.sh, not the working directory when the script was invoked
* Added broader catch block around some ReflectiveConfigOptionLoader logic to prevent dependencies with class linkage errors from causing exceptions at startup
* Eliminated an ExceptionInInitializerError that could be triggered when using TitanFactory's shorthand argument syntax, e.g. `TitanFactory.open('berkeleyje:/tmp/scratch')`, right after JVM startup
* Reduced log level on some harmless messages set to an unintentionally high threshold in previous releases

Version 0.5.1 (October 10, 2014)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[source, m2]
<dependency>
   <groupId>com.thinkaurelius.titan</groupId>
   <artifactId>titan-core</artifactId>
   <version>0.5.1</version>
</dependency>

*Tested Compatibility:*

* Cassandra 2.0.8
* HBase 0.94.21, 0.96.1.1-hadoop2, 0.98.3-hadoop2
* BerkeleyJE 5.0.73
* Elasticsearch 1.2.1
* Lucene 4.8.1
* Solr 4.8.1
* Java 1.7 (partially compatible with Java 1.6)

*Features:*

* Added an experimental Solr indexing adapter
* Reimplemented incremental loading in Titan-Hadoop
* Substantially expanded ES configuration options, including support for custom transports
* Optimized ReflectiveConfigOptionLoader for quicker graph startup and added options to configure or disable it
* Titan now warns when settings in its config file are overridden by the storage-hosted global configuration
* Titan-Hadoop on Hadoop 2 now supports HBase's DIGEST-MD5 auth token mechanism for running MR jobs against Kerberized HBase

*Bugfixes:*

* Fixed a stack overflow involving stale graph elements
* Fixed a regression that caused custom Cassandra read/write consistency level settings to be ignored (defaulting to QUORUM)
* Fixed SSL in the cassandrathrift backend
* Attempts to create a partitioned vertex label with cluster.partition=false are now detected during earlier schema definition instead of later during vertex creation
* Made the Gremlin console explicitly call System.exit just prior to the main thread's termination; this makes the shell more aggressive about terminating on quit/exit even if there are background non-daemon threads which haven't been cleanly stopped
* Fixed outdated config keys in GraphOfTheGodsFactory.create
* Miscellaneous documentation bugfixes

Version 0.5.0 (August 15, 2014)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[source, m2]
<dependency>
   <groupId>com.thinkaurelius.titan</groupId>
   <artifactId>titan-core</artifactId>
   <version>0.5.0</version>
</dependency>

*Tested Compatibility:*

* Cassandra 2.0.8
* HBase 0.94.21, 0.96.1.1-hadoop2, 0.98.3-hadoop2
* BerkeleyJE 5.0.73
* Elasticsearch 1.2.1
* Lucene 4.8.1
* Java 1.7 (partially compatible with Java 1.6)

*Features:*

* Separating schema definitions from index building thus supporting index building after definition, global re-indexing, and multiple indexes for one schema element
* Support for a transaction write-ahead log and transaction recovery process to detect and fix inconsistencies due to system failure
* Global graph configuration system to coordinate graph-wide configuration options
* Better consistency checking and completeness checking of configuration options
* Support for transaction logging and a log processing framework to implement triggers and downstream system updates
* Support for vertex labels
* Better support for global graph partitioning through edge cut minimization
* Support for vertex cut partitioning to enable graph partitioning on graphs with very skewed degree distributions
* Support for multi-properties with SET cardinality
* Support for indexing of multi-properties
* Support for time-to-live (TTL) on edges and vertices
* Dedicated serialization engine that can detect byte order requirements and chooses the most efficient serializer and only uses Kryo for backup where needed.
* Support for Blueprints 2.5.0
* Introduction of Decimal and Precision data types
* Compressed string serialization by default
* More efficient memory footprint of Titan transactions
* More robust error handling and transation processing
* Changed Titan's data layout to support adjacency queries and faster edge queries
* Consolidated time handling across the entire Titan codebase
* Using faster hash functions and centralized hash function library
* Using upsert methods for ES mutations to improve performance
* Support for additional configuration options in Cassandra connector
* Support for configuring the isolation level in BerkeleyDB
* Removed FullDouble and FullFloat: Double and Float are now serialized as full precision floating points. Introduced Decimal and Precision with a fixed number of decimals and order preserving binary representation
* Migrated Faunus to a new package in Titan named Titan/Hadoop
  * Isolated HadoopElement serialization into HadoopSerializer
  * All HadoopVertex and HadoopEdge construction leverages Hadoop Configuration for deserialization rules
  * Removed pathEnabled boolean from element serialization (now part of Configuration as trackPaths)
  * Added state tracking for loaded, new, and deleted elements/properties (in Configuration via trackState)
  * HadoopCompiler updates HadoopGraph configurations with global pipeline requirements
  * Removed HadoopVertex.reuse() in support of short-lived HadoopVertex objects
  * Updated ScriptInputFormat to use HadoopVertex.setId(long) to "reuse" vertices
  * PropertyMapMap now includes Edge.getLabel() in the returned property map (via _label)
  * Added TitanGraphOutputMapReduce@ to support Titan-specific features (e.g. multi-properties on vertices)
  * TitanGraphOutputMapReduce respects state tracking and get/create/delete in outputting TitanGraph
  * Added JUnit test support for executing local (non-pseudo-cluster) MapReduce jobs
  * Provided MapReduce-based integration testing between Titan and Titan/Hadoop
  * Provided MapReduce-based integration testing around HadoopPipeline
  * Added error handling for invalid RDF parameters
  * Added support for incremental edge loading with BlueprintsGraphOutputMapReduce



*Bugfixes:*

* Fixed potential inconsistency issue in the locking protocol due to usage of non-key consistent storage transactions.
* Fixed name collision in index backends
* Fixed error in ES mutate logic
* Support for Blueprints wrappers on Titan transactions
* Fixed shutdown hook
* Improved robustness of the id allocation process
* Fixed data balance issues with Hbase
* Changed serialization order for Date.class - the byte serialization now matches Comparable
* Fixed a SideEffectMap bug around edge processing (only out edges were being processed)
* See all GitHub issues associated with Milestone 0.5.0


*Acknowledgements:*

* http://fortytwo.net/[Joshua Shinavier] significantly contributed to the TTL implementation


Version 0.4.4 (April 22, 2014)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[source, m2]
<dependency>
   <groupId>com.thinkaurelius.titan</groupId>
   <artifactId>titan-core</artifactId>
   <version>0.4.4</version>
</dependency>

*Tested Compatibility:*

* Cassandra 1.2.2
* HBase 0.94.12
* BerkeleyJE 5.0.73
* Elasticsearch 0.90.5
* Lucene 4.4.0
* Persistit 3.3.0
* Java 1.7+ (partially compatible with Java 1.6)

*Bugfixes:*

Added 0.4.2 to compatible-version string (and 0.4.3)

Version 0.4.3 (April 21, 2014)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[source, m2]
<dependency>
   <groupId>com.thinkaurelius.titan</groupId>
   <artifactId>titan-core</artifactId>
   <version>0.4.3</version>
</dependency>

*Tested Compatibility:*

* Cassandra 1.2.2
* HBase 0.94.12
* BerkeleyJE 5.0.73
* Elasticsearch 0.90.5
* Lucene 4.4.0
* Persistit 3.3.0
* Java 1.7+ (partially compatible with Java 1.6)

*Features:*

* Can configure the serializer for strings to get better string compression. ONLY ENABLE THIS IF STRINGS ARE NOT USED AS SORT KEYS since the sort order is no longer guaranteed.
* Added Blueprints RDF dependency

*Bugfixes:*

* Use all hosts for establishing thrift connection to Cassandra
* A number of bug fixes and improvements for the Cassandra adapter
* A number of bug fixes and improvements for the HBase adapter
* Fixed background pool thread size
* Improved ID Allocation


Version 0.4.2 (December 30, 2013)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[source, m2]
<dependency>
   <groupId>com.thinkaurelius.titan</groupId>
   <artifactId>titan-core</artifactId>
   <version>0.4.2</version>
</dependency>

*Tested Compatibility:*

* Cassandra 1.2.2
* HBase 0.94.12
* BerkeleyJE 5.0.73
* Elasticsearch 0.90.5
* Lucene 4.4.0
* Persistit 3.3.0
* Java 1.7+ (partially compatible with Java 1.6)

*Features:*

* Finer-grained Thrift connection pooling that gracefully handles failure to close result iterators
* Optionally silently ignore unrecognized fields on index queries instead of throwing an exception
* Configurable Astyanax RetryBackoffStrategy
* Allow comparison of heterogeneous numeric types
* Added Codahale-Metrics coverage for query, locker, and get-vertex-by-id activity

*Bugfixes:*

* Deleting edges with multiple properties
* Deleting edges labeled with a reverse-ordered sort key
* Avoid NullPointerException during graph shutdown when running without a Backend threadpool
* Shell portability improvement and shutdown race condition fix in titan.sh

Version 0.4.1 (November 24, 2013)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[source, m2]
<dependency>
   <groupId>com.thinkaurelius.titan</groupId>
   <artifactId>titan-core</artifactId>
   <version>0.4.1</version>
</dependency>

*Tested Compatibility:*

* Cassandra 1.2.2
* HBase 0.94.12
* BerkeleyJE 5.0.73
* Elasticsearch 0.90.5
* Lucene 4.4.0
* Persistit 3.3.0
* 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` option.
* 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().setMetricsPrefix(String)`
* Metrics Ganglia and Graphite support
* Improvements to the internal memory structures and algorithms of a Titan transaction which lead to much improved traversal times (a lot of credit goes to Pavel for these optimizations!!)
* Added database level cache for lower latency query answering against warm data. Enable via `cache.db-cache`. Learn more about [[Database Cache]].
* Better caching implementation for relations (RelationCache) to provide faster de-serialization performance
* Addition of a new query optimizer that can significantly speed up a subset of traversals
* Support for reverse ordering in vertex centric queries by defining: makeLabel(..).sortKey(..).sortOrder(Order.DESC).make()
* Support for index configuration parameters passed into KeyMaker.indexed(String, Class, Parameter...) to change the default indexing behavior of an indexing backend.
* Support for TEXT and STRING mapping of strings in both Lucene and ElasticSearch configurable as a parameter. Learn more about [[Full Text and String Search]]
* Refactored Text.REGEX/PREFIX to Text.CONTAINS_REGEX/CONTAINS_PREFIX to accurately reflect their semantics. Added Text.REGEX/PREFIX for full string matching. See [[Indexing Backend Overview]]
* Added support for scaling the id allocation to hundreds of parallel Titan instances through additional configuration options. See [[Bulk Loading]].

*Bugfixes:*

* Fixed multiQuery() for specific has() conditions. Added support for multiQuery(Collection).
* Fixed limit adjustment issue for unconstraint IN/OUT queries
* Fixed packaging issues
* Fixed cache misses due to wrong limit interpretation

Version 0.4.0 (October 16, 2013)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[source, m2]
<dependency>
   <groupId>com.thinkaurelius.titan</groupId>
   <artifactId>titan-core</artifactId>
   <version>0.4.0</version>
</dependency>

*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 (https://github.com/bdeggleston[bdeggleston])
* Erick Tryzelaar (https://github.com/erickt[erickt])
* Zach Kinstner (https://github.com/zachkinstner[zachkinstner])
* https://github.com/jkschneider[jkschneider]
* https://github.com/gwhitehawk[gwhitehawk]
* https://github.com/mamccr[mamccr]
* https://github.com/akeffalas[akeffalas]

Version 0.3.2 (July 29, 2013)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[source, m2]
<dependency>
   <groupId>com.thinkaurelius.titan</groupId>
   <artifactId>titan-core</artifactId>
   <version>0.3.2</version>
</dependency>

*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:*

* Support for multiple standard index conditions in queries

*Bugfixes:*

* Fixed potential transaction leak when using thread-bound transactions
* Let vertex.removeProperty(...) kill multivalued properties as the javadoc says
* Avoided two spurious cases of "timestamp mismatch" exception
* Removed unchecked cast in AbstractElement.equals(...)
* Adjusted default Astyanax exponential backoff settings to avoid integer overflow against a dead peer
* Fixed Astyanax config regression that caused node discovery and connection pool type to be ignored
* Fixed double-checked locking on StandardVertex's added relations

Check the issue tracker for a full list of fixed issues.

Version 0.3.1 (May 14, 2013)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[source, m2]
<dependency>
   <groupId>com.thinkaurelius.titan</groupId>
   <artifactId>titan-core</artifactId>
   <version>0.3.1</version>
</dependency>

*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.

Version 0.3.0 (March 29, 2013)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[source, m2]
<dependency>
   <groupId>com.thinkaurelius.titan</groupId>
   <artifactId>titan-core</artifactId>
   <version>0.3.0</version>
</dependency>

*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

Version 0.2.1 (March 22, 2013)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[source, m2]
<dependency>
   <groupId>com.thinkaurelius.titan</groupId>
   <artifactId>titan-core</artifactId>
   <version>0.2.1</version>
</dependency>

*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 (https://github.com/xedin[xedin])

Version 0.2.0 (December 24, 2012)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[source, m2]
<dependency>
   <groupId>com.thinkaurelius.titan</groupId>
   <artifactId>titan</artifactId>
   <version>0.2.0</version>
</dependency>

*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:*

* Zack Maril (https://github.com/zmaril[zmaril])
* Nicolas LaCasse (https://github.com/nlacasse[nlacasse])
* Vadas Gintautas (https://github.com/vadasg[vadasg])

Version 0.1.0 (September 7, 2012)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[source, m2]
<dependency>
   <groupId>com.thinkaurelius.titan</groupId>
   <artifactId>titan</artifactId>
   <version>0.1.0</version>
</dependency>

*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:*

* Danny Thomas (https://github.com/BinaryRage[BinaryRage])
* https://github.com/jramsdale[jramsdale]
* Cristofer (https://github.com/crisweber[crisweber])
* https://github.com/tedoc2000[tedoc2000]
* Dan Forest-Barbier (https://github.com/DPanth3r[DPanth3r])
* https://github.com/jncorpron[jncorpron]
* Marc Abramowitz (https://github.com/msabramo[msabramo])
back to top