Cassandra
  1. Cassandra
  2. CASSANDRA-4203

Fix descriptor versioning for bloom filter changes

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Fix Version/s: 1.2.0 beta 1
    • Component/s: Core
    • Labels:
      None

      Description

      CASSANDRA-2975 introduced changes to the Data component, breaking stream compatibility

      1. 0001-CASSANDRA-4203-v2.patch
        4 kB
        Vijay
      2. 4203.txt
        1 kB
        Jonathan Ellis

        Activity

        Hide
        Sylvain Lebresne added a comment -

        Agreed on not burning versions during development. If we start trying to keep compatibility between changes to trunk it'll be a mess. I'm fine with starting being careful about such things once we release a first beta (even though the point of doing betas and rcs is that this shouldn't really be a requirement even then) but before that all bets are off imo.

        Show
        Sylvain Lebresne added a comment - Agreed on not burning versions during development. If we start trying to keep compatibility between changes to trunk it'll be a mess. I'm fine with starting being careful about such things once we release a first beta (even though the point of doing betas and rcs is that this shouldn't really be a requirement even then) but before that all bets are off imo.
        Hide
        Vijay added a comment -

        Committed Thanks!

        Show
        Vijay added a comment - Committed Thanks!
        Hide
        Jonathan Ellis added a comment -

        +1 on v2

        Show
        Jonathan Ellis added a comment - +1 on v2
        Hide
        Jonathan Ellis added a comment -

        One thing to note is that folks who build from trunk are out of luck they have to wipe the data...

        That would be a problem, but hopefully it's blazingly obvious that running trunk in production is insane. Especially at the beginning of a dev cycle.

        I don't see a good alternative, if we continue chewing through major revisions the way we did in 0.7 we're kind of screwed. We started at the wrong end of the ascii table; we don't even have the luxury of using upper case characters. ("A" < "a")

        Show
        Jonathan Ellis added a comment - One thing to note is that folks who build from trunk are out of luck they have to wipe the data... That would be a problem, but hopefully it's blazingly obvious that running trunk in production is insane. Especially at the beginning of a dev cycle. I don't see a good alternative, if we continue chewing through major revisions the way we did in 0.7 we're kind of screwed. We started at the wrong end of the ascii table; we don't even have the luxury of using upper case characters. ("A" < "a")
        Hide
        Vijay added a comment -

        Attached patch adds yuki's comments and fixes the test accordingly.
        Attachement also makes streaming to be always be the latest version.
        One thing to note is that folks who build from trunk are out of luck they have to wipe the data...

        Not sure if we need CASSANDRA-4196 anymore.

        Show
        Vijay added a comment - Attached patch adds yuki's comments and fixes the test accordingly. Attachement also makes streaming to be always be the latest version. One thing to note is that folks who build from trunk are out of luck they have to wipe the data... Not sure if we need CASSANDRA-4196 anymore.
        Hide
        Yuki Morishita added a comment -

        I think you mean CASSANDRA-2319 broke compatibility. +1 on change in isStreamingCompatible.

        And I'm ok with sticking with "ia", but you also need to fix here: https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/io/sstable/Descriptor.java#L113

        Show
        Yuki Morishita added a comment - I think you mean CASSANDRA-2319 broke compatibility. +1 on change in isStreamingCompatible . And I'm ok with sticking with "ia", but you also need to fix here: https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/io/sstable/Descriptor.java#L113
        Hide
        Jonathan Ellis added a comment -

        2975 introduced version "ib", but as noted in Descriptor comments, "Minor versions must be forward-compatible" (which in practice means, "only additions to the metadata are allowed").

        We'll run out of version letters if we keep bumping the major version in trunk, so rather than turn this into version j, I suggest we stick with ia until 1.2.0 is released.

        This patch also updates the streaming compatibility version to i.

        Show
        Jonathan Ellis added a comment - 2975 introduced version "ib", but as noted in Descriptor comments, "Minor versions must be forward-compatible" (which in practice means, "only additions to the metadata are allowed"). We'll run out of version letters if we keep bumping the major version in trunk, so rather than turn this into version j, I suggest we stick with ia until 1.2.0 is released. This patch also updates the streaming compatibility version to i.

          People

          • Assignee:
            Vijay
            Reporter:
            Jonathan Ellis
            Reviewer:
            Yuki Morishita
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development