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

Reply via email to