Please follow these instructions when upgrading from an older Titan release.
From 0.3.0
Titan 0.3.1 is compatible with 0.3.0 and no special upgrade is necessary unless Elasticsearch is used as a storage backend. Titan 0.3.1 uses Elasticsearch 0.90.0 whereas Titan 0.3.0 uses Elasticsearch 0.20.6.
If you are using Elasticsearch, please follow the upgrade instructions for Elasticsearch which are summarized as follows:
- Elasticsearch 0.90.0 is the first stable release based on Lucene 4. We recommend testing the upgrade before doing it in production.
- Upgrading from 0.20.x requires a full cluster restart.
- In order to be able to downgrade, stop indexing new data, issue a flush request, do the upgrade and only enable indexing of new data once you are certain that you no longer need to downgrade. Once new data has been indexed, downgrading is no longer possible. To be extra safe, back up your data before upgrading.
Note, that these instructions apply to the Elasticsearch cluster only and not the Titan cluster or the Titan storage cluster.
From prior versions
Titan 0.3.1 is incompatible with earlier versions of Titan. Read below for more information.
From prior versions
Titan 0.3.0 is incompatible with prior version of Titan. The upgrade process is in development and not yet available.
When upgrading to Titan 0.3.0, please note the following interface changes:
- In
TypeMaker
,functional()
has been replaced byunique(Direction.OUT)
. Likewise,functional(boolean)
has been replaced byunique(Direction.OUT, UniquenessConsistency)
, where the argumenttrue
corresponds toUniquenessConsistency.LOCK
andfalse
corresponds toUniquenessConsistency.NO_LOCK
. - In
TypeMaker
,unique()
for property keys has been replaced byunique(Direction.IN)
. - In
TypeMaker
,indexed()
takes additional arguments because Titan now supports vertex and edge indexing. Useindexed(Class<? extends Element>)
to create a standard index for the key. Useindexed(String,Class<? extends Element>)
to create an external index for the key. - In
TypeMaker
,simple()
is no longer available. Simply remove it. - In
TitanFactory
,openInMemoryGraph()
is no longer available. Instead, useopen(Configuration)
where the configuration setsstorage.backend=inmemory
. - In
AttributeSerializer
,writeObjectData()
now usesDataOutput
to write elements instead ofByteBuffer
. A simple replace in any particular implementation ofAttributeSerializer
should do the trick.
From Version 0.2.0
No special upgrade necessary. Since 0.2.1 has upgraded to Blueprints 2.3.0, there are some incompatible interface changes. In particular, Graph.startTransaction()
has been renamed to Graph.newTransaction()
. Please refer to the Blueprints documentation for more information.
From prior versions
Upgrade to 0.2.0 first as described below.
From Version 0.1.0
- Shut down all running instances of Titan. If the storage backend is Cassandra or HBase, do not shut down the respective storage backend but leave it running. So, only terminate the Titan processes.
- Create a backup of the storage backend. For BerkeleyDB, simply archive the contents of the storage directory. For Cassandra and HBase, follow the directions for the respective backup functionalities. Store the backup in a secure place.
- Download and unzip Titan 0.2.0 on the (or one of the) machines that has been running Titan previously.
- Execute the upgrade010to020.sh/bat script in the bin directory of Titan 0.2.0 with the file name of the Titan configuration file (i.e. the argument passed into
TitanFactory.open()
) as the only argument. Follow the instructions. If asked to confirm the id block size, please ensure that the displayed value matches your configuration. If you did not configure this value, simply enter yes. Ensure that the script completes successfully. - Install Titan 0.2.0 on all machines. Start Titan 0.2.0. Only use the 0.2.0 version of Titan from this point on.
From Version 0.1-SNAPSHOT
- Shut down all running instances of Titan prior to upgrading ALL instances to the current release to avoid data corruption.