Hi,
We have a titan instance with HBase as the storage backend.
Titan version: 1.0.0
HBase/Hadoop version: Instantiated HBase compatibility layer supporting runtime HBase version 0.98.2-hadoop1 (from the logs)
Create Graph Instance logic
1. We create a .properties file with the following values:-
gremlin.graph=com.thinkaurelius.titan.core.TitanFactory
storage.hostname=<zk nodes>
storage.hbase.ext.zookeeper.znode.parent=/hbase-unsecure
storage.hbase.table=<graphInstanceName>
2. Call TitanFactory.open(<our-properties-file-from-above) and
3. Save the opened graph in global dictionary<graphName, graphInstance>
Cleanup Graph Instance logic
1. Delete properties file (corresponding to this graph instance)
2. Close the global instance (g = map.getGraph(graphName); g.close())
3. Remove from our global dictionary, map.remove(graphName)
4. Use HBaseAdmin to disableTable and deleteTable
However we notice that sometimes we get the below error:-
Caused by: org.apache.hadoop.hbase.ipc.RemoteWithExtrasException: org.apache.hadoop.hbase.regionserver.NoSuchColumnFamilyException: Column family m does not exist in region 5B3BFBC370F04BA9BEFC63E9307906A4,,1485182910656.c0fbe7e1de0f1c85e5e3d3d10a6c367c. in table '5B3BFBC370F04BA9BEFC63E9307906A4', {NAME => 's', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '0', VERSIONS => '1', COMPRESSION => 'GZ', TTL => 'FOREVER', MIN_VERSIONS => '0', KEEP_DELETED_CELLS => 'false', BLOCKSIZE => '65536', IN_MEMORY => 'false', BLOCKCACHE => 'true'}
It seems like we are ending up with a partial delete (because the HBase table has lot of more column families and only this one seems to be deleted). This results in a bunch of partial tables (as far as Titan is concerned) and our cleanup is not complete.
How can we make sure we are able to clean up our instance cleanly?
Pointers are much appreciated !
Thanks!