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

Don't skip entire sstables when reading backwards with mixed clustering column order

    XMLWordPrintableJSON

Details

    • Normal

    Description

      In 2.x, if a table has clustering columns in DESC order, any SSTable that doesn’t have any static rows in it will be skipped altogether when iterated in reverse.

      This occurs due to the logic in ColumnSlice.compare() errorneusly sorting any empty ByteBuffer after non-empty values due to the way ReversedType operates. In case that empty ByteBuffer is coming from a static Composite, however, the logic breaks down. Static Composite components must always sort before any non-empty value, no matter the table’s comparator.

      2.0, 2.1, and 2.2 are all affected. 3.0 isn’t, but only because we skip slice intersection logic entirely if static rows are present in the filter.

      Introduced by CASSANDRA-8502.

      Attachments

        Activity

          People

            aleksey Aleksey Yeschenko
            aleksey Aleksey Yeschenko
            Aleksey Yeschenko
            Alex Petrov
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: