Revision 81e9193ace9ee64e71732be6b490ad8b4b7a3c0e authored by Dan LaRocque on 18 April 2014, 23:38:39 UTC, committed by Dan LaRocque on 18 April 2014, 23:38:39 UTC
1 parent 6136a90
CHANGELOG.textile
Titan: Distributed Graph Database
"http://titan.thinkaurelius.com":http://titan.thinkaurelius.com
[[images/titan-globe.png|width=100px]]
h2. Titan 0.y.z
h3. Version 0.4.3 (April 21, 2014)
```xml
<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
h3. Version 0.4.2 (December 30, 2013)
```xml
<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
h3. Version 0.4.1 (November 24, 2013)
```xml
<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
h3. Version 0.4.0 (October 16, 2013)
```xml
<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 ("bdeggleston":https://github.com/bdeggleston)
* Erick Tryzelaar ("erickt":https://github.com/erickt)
* Zach Kinstner ("zachkinstner":https://github.com/zachkinstner)
* "jkschneider":https://github.com/jkschneider
* "gwhitehawk":https://github.com/gwhitehawk
* "mamccr":https://github.com/mamccr
* "akeffalas":https://github.com/akeffalas
h3. Version 0.3.2 (July 29, 2013)
```xml
<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.
h3. Version 0.3.1 (May 14, 2013)
```xml
<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.
==<hr/>==
h3. Version 0.3.0 (March 29, 2013)
```xml
<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
==<hr/>==
h3. Version 0.2.1 (March 22, 2013)
```xml
<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 ("xedin":https://github.com/xedin)
==<hr/>==
h3. Version 0.2.0 (December 24, 2012)
```xml
<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 ("zmaril":https://github.com/zmaril)
* Nicolas LaCasse ("nlacasse":https://github.com/nlacasse)
* Vadas Gintautas ("vadasg":https://github.com/vadasg)
==<hr/>==
h3. Version 0.1.0 (September 7, 2012)
```xml
<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 ("BinaryRage":https://github.com/BinaryRage)
* "jramsdale":https://github.com/jramsdale
* Cristofer ("crisweber":https://github.com/crisweber)
* "tedoc2000":https://github.com/tedoc2000
* Dan Forest-Barbier ("DPanth3r":https://github.com/DPanth3r)
* "jncorpron":https://github.com/jncorpron
* Marc Abramowitz ("msabramo":https://github.com/msabramo)
Computing file changes ...