[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: upgrading from 2.x TWCS to 3.x TWCS

That wasn't horrible at all.  After testing, provided all goes well I can submit this back to the main TWCS repo if you think it's worth it.  

Either way do you mind just reviewing briefly for obvious mistakes?


On Fri, Nov 2, 2018 at 7:24 PM Brian Spindler <brian.spindler@xxxxxxxxx> wrote:
I hope I can do as you suggest and leapfrog to 3.11 rather than two stepping it from 3.7->3.11

Just having TWCS has saved me lots of hassle so it’s all good, thanks for all you do for our community.


On Fri, Nov 2, 2018 at 3:54 PM Jeff Jirsa <jjirsa@xxxxxxxxx> wrote:
I'm sincerely sorry for the hassle, but for various reasons beyond, it's unlikely I'll update my repo (at least me, personally). One fix is likely to grab the actual java classes from the apache repo, pull them in and fix the package names, and compile (essentially making your own 3.11 branch). 

I suppose you could also disable compaction, switch to something else (stcs), do the upgrade, then alter it back to the official TWCS. Whether or not this is viable depends on how quickly you write, and how long it'll take you to upgrade.

On Fri, Nov 2, 2018 at 11:57 AM Brian Spindler <brian.spindler@xxxxxxxxx> wrote:
you are right, it won't even compile: 

[INFO] -------------------------------------------------------------
[INFO] -------------------------------------------------------------
[ERROR] /Users/bspindler/src/github/twcs/src/main/java/com/jeffjirsa/cassandra/db/compaction/[110,90] cannot find symbol
  symbol:   method getOverlappingSSTables(org.apache.cassandra.db.lifecycle.SSTableSet,java.util.Set<>)
  location: variable cfs of type org.apache.cassandra.db.ColumnFamilyStore
[ERROR] /Users/bspindler/src/github/twcs/src/main/java/com/jeffjirsa/cassandra/db/compaction/[150,99] cannot find symbol
  symbol:   class SizeComparator
  location: class
[ERROR] /Users/bspindler/src/github/twcs/src/main/java/com/jeffjirsa/cassandra/db/compaction/[330,59] cannot find symbol
  symbol:   class SizeComparator
  location: class
[ERROR] /Users/bspindler/src/github/twcs/src/main/java/com/jeffjirsa/cassandra/db/compaction/[104,67] cannot find symbol
  symbol:   class SizeComparator
  location: class
[INFO] 4 errors

On Fri, Nov 2, 2018 at 2:52 PM Jeff Jirsa <jjirsa@xxxxxxxxx> wrote:
There’s a chance it will fail to work - possible method signatures changed between 3.0 and 3.11. Try it in a test cluster before prod

Jeff Jirsa

On Nov 2, 2018, at 11:49 AM, Brian Spindler <brian.spindler@xxxxxxxxx> wrote:

Nevermind, I spoke to quickly.  I can change the cass version in the pom.xml and re compile, thanks! 

On Fri, Nov 2, 2018 at 2:38 PM Brian Spindler <brian.spindler@xxxxxxxxx> wrote:

On Fri, Nov 2, 2018 at 2:34 PM Jeff Jirsa <jjirsa@xxxxxxxxx> wrote:
Easiest approach is to build the 3.11 jar from my repo, upgrade, then ALTER table to use the official TWCS (org.apache.cassandra) jar

Sorry for the headache. I hope I have a 3.11 branch for you.

Jeff Jirsa

On Nov 2, 2018, at 11:28 AM, Brian Spindler <brian.spindler@xxxxxxxxx> wrote:

Hi all, we're planning an upgrade from 2.1.5->3.11.3 and currently we have several column families configured with twcs class 'com.jeffjirsa.cassandra.db.compaction.TimeWindowCompactionStrategy' and with 3.11.3 we need to set it to 'TimeWindowCompactionStrategy'  

Is that a safe operation?  Will cassandra even start if the column family has a compaction strategy defined with a classname it cannot resolve?  
How to deal with different versioned nodes and different class names during the upgrade of the binaries throughout the cluster?  

Thank you for any guidance,