Russ Hatch created CASSANDRA-8130:
-------------------------------------

             Summary: upgrade tests should run upgradesstables less eagerly
                 Key: CASSANDRA-8130
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-8130
             Project: Cassandra
          Issue Type: Test
            Reporter: Russ Hatch


Currently the cassandra upgrade tests in cassandra-dtest are doing an upgrade 
then running upgradesstables soon after. We are missing some potential coverage 
with the current approach.

Instead of upgrading sstables "early", we should be waiting until absolutely 
necessary to run upgradesstables to test the guarantee that a version can read 
sstables from the previous version. This will give tests more time to interact 
with reading previous version sstables and hopefully increase chances of 
catching a bug.

Each version of cassandra should be able to read sstables from the previous 
version (so 2.1.x can read 2.0.x, but is not guaranteed to read 1.2.x), and 
therefore can work just fine reading and writing data. Writes of course will 
happen in the current sstable version, so old sstables may be supplanted by 
current ones over time (subject to write volume and compaction), potentially 
obviating the need for an sstable upgrade.

upgradesstables must be run before upgrading when the system could contain 
sstables from two versions back since read compatibility is not guaranteed (so 
we must run upgradesstables before upgrading to 2.1.x if there is a chance that 
sstables still exist from 1.2.x; because this is two versions back).

This is all a long-winded way of saying that we should keep track in the dtests 
if we are about to be 2 versions behind for an impending upgrade, and only run 
upgradesstables at that point.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to