Yes, that should work. For better/worse, CF metadata is stored in the system schema, not individual sstables.
On Tue, Aug 2, 2011 at 10:00 PM, Todd Nine <t...@spidertracks.com> wrote: > Hi Johnathan. Are these the correct steps for the upgrade? > > 1. Copy SSTable from 0.7.4 snapshot > 2. Drop CFS in all nodes in 0.7.4 cluster > 3. Upgrade to 0.8.2 and start cluster (with no clients connected) > 4. Create CFs using cli in cluster > 5. Shutdown all nodes > 6. Move the SSTables into place on all the nodes > 7. Restart the nodes > > This would definitely be my preferred approach, however I wasn't sure if > SSTables stored the CF meta data. > > Thanks, > Todd > > > On Tue, 2011-08-02 at 21:34 -0500, Jonathan Ellis wrote: > > If the bytes are compatible why not just use the existing sstable > files after redefining the schema? > > On Tue, Aug 2, 2011 at 8:06 PM, Todd Nine <t...@spidertracks.com> wrote: >> 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 > > > > -- Jonathan Ellis Project Chair, Apache Cassandra co-founder of DataStax, the source for professional Cassandra support http://www.datastax.com