cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Todd Nine <t...@spidertracks.com>
Subject Input on difficult migration issue from 0.7.4 to 0.8.2
Date Wed, 03 Aug 2011 01:06:32 GMT
Hi all,
  I seem to have backed myself into a corner and I cannot easily upgrade
from a custom 0.7.4 installation to the default 0.8.2.  Any help I could
get would be greatly appreciated.  Below is an outline of the problem.

Current installation:
0.7.4 with Ed Anuff's custom composite comparators.
https://github.com/riptano/hector-composite/commit/74407df3ef97c3fa90eae9f68d84b50be3d9938e
CF Comprator Type : "DynamicComposite"


New installation:
0.8.2 with Casasndra's native DynamicComposite column time.
CF Comparator Type:
"DynamicComposite(a=>AsciiType,b=>BytesType,i=>IntegerType,x=>LexicalUUIDType,l=>LongType,t=>TimeUUIDType,s=>UTF8Type,u=>UUIDType,A=>AsciiType(reversed=true),B=>BytesType(reversed=true),I=>IntegerType(reversed=true),X=>LexicalUUIDType(reversed=true),L=>LongType(reversed=true),T=>TimeUUIDType(reversed=true),S=>UTF8Type(reversed=true),U=>UUIDType(reversed=true))"


I cannot simply upgrade Cassandra, this fails because the comparator is
incorrectly defined for version 0.8.1 and on.  My issue is that the
column family definition has changed, the bytes that are stored are
compatible, I simply need to re-define the CF and migrate the column
data over. 


Initially I was thinking I could perform a read from the rows and
columns from a single 0.7 node, then insert them into the 0.8 cluster,
however I cannot have 2 different versions of the thrift API running in
the same java JVM due to namespace conflicts.


Idea is to perform the following steps, if anyone has any better
suggestions, they would be greatly appreciated.

1. Back up all my CFs that use the dynamic composite, and copy the
SSTable out of my Keyspace's data directory to tmp
2. Drop all CFs that use dynamic composite
3. Re-create the CFs with the new comparator definition
4. Using an external program directly read the 0.7 SSTables (without
starting the cassandra daemon) and insert the rows and columns into the
0.8 cluster via thrift.


Can anyone point me at a good example for reading rows and columns
directly from the SSTables without using the thrift api?

Thanks,
Todd

Mime
View raw message