cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jonathan Ellis <jbel...@gmail.com>
Subject Re: Input on difficult migration issue from 0.7.4 to 0.8.2
Date Thu, 04 Aug 2011 03:06:40 GMT
You'd have to check ColumnFamilyStore.open to see for sure.  It might work
that way, but if it does it's an accident -- seems totally fair for it to
assume that there are no SSTables for a newly created CF.

On Wed, Aug 3, 2011 at 9:25 PM, Todd Nine <todd@spidertracks.com> wrote:

> **
> Hi Johnathan,
>   One more question.  I'm experimenting with the chef recipes for brisk.
> Upon the initial installation, the brisk recipe removes the existing system
> Keyspace if it's present.   The new cluster will not have the" Spidertracks"
> keyspace in it's meta data, and will be a completely vanilla installation.
>
> Can I leave the SSTable files in place, and create the keyspace and column
> families via the CLI without needing to restart the whole cluster?  I.E,
> when a CF is added to the schema, if an SSTable for that CF exists, is it
> merged with the commitlog in the next compaction, and used for reads or is
> it ignored?
>
> Thanks,
> Todd
>
>
>
>   On Tue, 2011-08-02 at 22:17 -0500, Jonathan Ellis wrote:
>
> 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 <todd@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 <todd@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

Mime
View raw message