I wonder if you could use Apache Spark to do it?

 

Kenneth Brotman

 

From: Carl Mueller [mailto:carl.muel...@smartthings.com] 
Sent: Tuesday, February 27, 2018 9:22 AM
To: user@cassandra.apache.org
Subject: Re: Version Rollback

 

My speculation is that IF (bigif) the sstable formats are compatible between 
the versions, which probably isn't the case for major versions, then you could 
drop back. 

If the sstables changed format, then you'll probably need to figure out how to 
rewrite the sstables in the older format and then sstableloader them in the 
older-version cluster if need be. Alas, while there is an sstable upgrader, 
there isn't a downgrader AFAIK. 

And I don't have an intimate view of version-by-version sstable format changes 
and compatibilities. You'd probably need to check the upgrade instructions 
(which you presumably did if you're upgrading versions) to tell.

Basically, version rollback is pretty unlikely to be done.

The OTHER option:

1) build a new cluster with the new version, no new data. 

2) code your driver interfaces to interface with both clusters. Write to both, 
but read preferentially from the new, then fall through to the old. Yes, that 
gets hairy on multiple row queries. Port your data with sstable loading from 
the old to the new gradually. 

When you've done a full load of all the data from old to new, and you're 
satisfied with the new cluster stability, retire the old cluster.

For merging two multirow sets you'll probably need your multirow queries to 
return the partition hash value (or extract the code that generates the hash), 
and have two simulaneous java-driver ResultSets going, and merge their results, 
providing the illusion of a single database query. You'll need to pay attention 
to both the row key ordering and column key ordering to ensure the combined 
results are properly ordered.

Writes will be slowed by the double-writes, reads you'll be bound by the worse 
performing cluster.

 

On Tue, Feb 27, 2018 at 8:23 AM, Kenneth Brotman <kenbrot...@yahoo.com.invalid> 
wrote:

Could you tell us the size and configuration of your Cassandra cluster?

 

Kenneth Brotman

 

From: shalom sagges [mailto:shalomsag...@gmail.com] 
Sent: Tuesday, February 27, 2018 6:19 AM
To: user@cassandra.apache.org
Subject: Version Rollback

 

Hi All, 

I'm planning to upgrade my C* cluster to version 3.x and was wondering what's 
the best way to perform a rollback if need be. 

If I used snapshot restoration, I would be facing data loss, depends when I 
took the snapshot (i.e. a rollback might be required after upgrading half the 
cluster for example). 

If I add another DC to the cluster with the old version, then I could point the 
apps to talk to that DC if anything bad happens, but building it is really time 
consuming and requires a lot of resources. 

Can anyone provide recommendations on this matter? Any ideas on how to make the 
upgrade foolproof, or at least "really really safe"? 

 

Thanks!

 

 

Reply via email to