https://github.com/thinkaurelius/titan
Revision d94d616f34c1cad14323931b14715c4b4eee697f authored by Dan LaRocque on 20 December 2013, 21:09:14 UTC, committed by Dan LaRocque on 20 December 2013, 21:09:14 UTC
`titan.sh stop` now waits up to 60 seconds by default (though this is
configurable through an environment variable) for Rexster to disappear
from the jps process table before attempting to kill Cassandra.  This
addresses issue 2 of 2 in #538.
1 parent c67ed62
Raw File
Tip revision: d94d616f34c1cad14323931b14715c4b4eee697f authored by Dan LaRocque on 20 December 2013, 21:09:14 UTC
titan.sh: kill Cassandra only after Rexster dies
Tip revision: d94d616
CHANGELOG.textile
Titan: Distributed Graph Database
"http://titan.thinkaurelius.com":http://titan.thinkaurelius.com

[[https://raw.github.com/thinkaurelius/titan/master/doc/images/titan-globe.png|width=100px]]

h2. Titan 0.y.z

h3. Version 0.4.1 (November 24, 2013)

```xml
<dependency>
   <groupId>com.thinkaurelius.titan</groupId>
   <artifactId>titan-core</artifactId>
   <version>0.4.1-SNAPSHOT</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:*

* 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
* 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 (disabled by default)
* Better caching implementation for relations (RelationCache) to provide better 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
* Refactored Text.REGEX/PREFIX to Text.CONTAINS_REGEX/CONTAINS_PREFIX to accurately reflect their semantics. Added Text.REGEX/PREFIX for full string matching
* Added support for scaling the id allocation to hundreds of parallel Titan instances through additional configuration options
* Support for secure access to storage backend through username/password authentication in Cassandra

*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.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)
back to top