https://github.com/thinkaurelius/titan
Revision cc41723e9c02b0f022a90653a7b95e9a410130fe authored by Dan LaRocque on 09 September 2015, 01:37:09 UTC, committed by Dan LaRocque on 09 September 2015, 01:37:09 UTC
2 parent s 8646206 + 97f8431
Raw File
Tip revision: cc41723e9c02b0f022a90653a7b95e9a410130fe authored by Dan LaRocque on 09 September 2015, 01:37:09 UTC
Merge branch 'issue_1142' into titan05
Tip revision: cc41723
CHANGELOG.asc
[[changelog]]
[appendix]
Release Notes
-------------

Version 0.5.4 (February 13, 2015)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

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

*Features:*

* Optimized away an unnecessary property read in certain property overwrite cases
* Added gremlin commands `set tp-(olap|oltp)-result-peek <number>`: controls max # of result elements shown

*Bugfixes:*

* Interacting with Edge properties of type Long no longer fails when `storage.meta.edgestore.timestamps=true`
* Fixed a titan-hadoop bug triggered when reading unidirectional edges from Titan
* Fixed a Solr query string composer bug
* Fixed titan-hadoop fragmenting vertices when cassandra.input.widerows=true

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

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

*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