Uploaded image for project: 'Cassandra'
  1. Cassandra
  2. CASSANDRA-15292

Point-in-time recovery ignoring timestamp of static column updates

    XMLWordPrintableJSON

    Details

      Description

      During point-in-time recovery org.apache.cassandra.db.partitions.PartitionUpdate#maxTimestamp is checked to see if any write timestamps in the update exceed the recovery point. If any of the timestamps do exceed this point the the commit log replay is stopped.

      Currently maxTimestamp only iterates over the regular rows in the update and doesn't check for any included updates to static columns. If a ParitionUpdate only contains updates to static columns then maxTimestamp will return Long.MIN_VALUE and always be replayed. 

      This generally isn't much of an issue, except for non-dense compact storage tables which are implemented in the 3.x storage engine in large part with static columns. In this case the commit log will always continue applying updates to them past the recovery point until it hits an update to a different table with regular columns or reaches the end of the commit logs.

       

      Patch
      3.11
      Trunk

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              VincentWhite Vincent White
              Authors:
              Vincent White
              Reviewers:
              Michael Semb Wever
            • Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: