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

            Unassigned Unassigned
            VincentWhite Vincent White
            Vincent White
            Michael Semb Wever
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: